import 389-ds-base-1.3.11.1-1.el7_9

This commit is contained in:
CentOS Sources 2023-03-07 09:25:23 +00:00
parent 83ce07ddd8
commit 5b4a29be4f
7 changed files with 7920 additions and 6 deletions

View file

@ -1 +1,2 @@
5ea563775de60788f87373327d90c09ce37a574b SOURCES/389-ds-base-1.3.10.2.tar.bz2
ba6a0490a0a944d3499a7af5dccb4d929869d1c5 SOURCES/389-ds-base-1.3.11.1.tar.bz2
da11897b8eb16e7d0c52c9a3aa5db471b1e91d94 SOURCES/vendor-1.3.11.1-1.tar.gz

3
.gitignore vendored
View file

@ -1 +1,2 @@
SOURCES/389-ds-base-1.3.10.2.tar.bz2
SOURCES/389-ds-base-1.3.11.1.tar.bz2
SOURCES/vendor-1.3.11.1-1.tar.gz

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,221 @@
From 053fb02f73220be53d1fb93511684a6f7aa3226f Mon Sep 17 00:00:00 2001
From: Thierry Bordaz <tbordaz@redhat.com>
Date: Thu, 10 Nov 2022 16:54:40 +0100
Subject: [PATCH 3/5] Issue 5440 - memberof is slow on update/fixup if there
are several 'groupattr' (#5455)
Bug description:
When there are several groupattr (attr_1, attr_2,..) in memberof config
To fixup entry 'e1', memberof does an internal search
"(|(attr_1=e1)(attr_2=e1)...(attr_n=e1))"
This is not valid regarding membership relation and in
addition it prevents the server to bypass the filter evaluation.
Fix description:
To fixup an entry iterate several internal searches
"(attr_1=e1)" , then "(attr_2=e1)", then "(attr_n=e1)"
relates: #5440
Reviewed by: Pierre Rogier, Mark Reynolds, Simon Pichugin (Thanks)
---
ldap/servers/plugins/memberof/memberof.c | 155 +++++++++++------------
1 file changed, 73 insertions(+), 82 deletions(-)
diff --git a/ldap/servers/plugins/memberof/memberof.c b/ldap/servers/plugins/memberof/memberof.c
index b54eb3977..541b27250 100644
--- a/ldap/servers/plugins/memberof/memberof.c
+++ b/ldap/servers/plugins/memberof/memberof.c
@@ -704,8 +704,6 @@ memberof_call_foreach_dn(Slapi_PBlock *pb __attribute__((unused)), Slapi_DN *sdn
char *filter_str = NULL;
char *cookie = NULL;
int all_backends = config->allBackends;
- int types_name_len = 0;
- int num_types = 0;
int dn_len = slapi_sdn_get_ndn_len(sdn);
int free_it = 0;
int rc = 0;
@@ -744,107 +742,100 @@ memberof_call_foreach_dn(Slapi_PBlock *pb __attribute__((unused)), Slapi_DN *sdn
#if MEMBEROF_CACHE_DEBUG
slapi_log_err(SLAPI_LOG_PLUGIN, MEMBEROF_PLUGIN_SUBSYSTEM, "memberof_call_foreach_dn: Ancestors of %s not cached\n", ndn);
#endif
- /* Count the number of types. */
- for (num_types = 0; types && types[num_types]; num_types++) {
- /* Add up the total length of all attribute names.
- * We need to know this for building the filter. */
- types_name_len += strlen(types[num_types]);
- }
/* Escape the dn, and build the search filter. */
escaped_filter_val = slapi_escape_filter_value((char *)slapi_sdn_get_dn(sdn), dn_len);
if (escaped_filter_val) {
- dn_len = strlen(escaped_filter_val);
free_it = 1;
} else {
escaped_filter_val = (char *)slapi_sdn_get_dn(sdn);
}
- if (num_types > 1) {
- int bytes_out = 0;
- int filter_str_len = types_name_len + (num_types * (3 + dn_len)) + 4;
-
- /* Allocate enough space for the filter */
- filter_str = slapi_ch_malloc(filter_str_len);
-
- /* Add beginning of filter. */
- bytes_out = snprintf(filter_str, filter_str_len - bytes_out, "(|");
-
- /* Add filter section for each type. */
- for (i = 0; types[i]; i++) {
- bytes_out += snprintf(filter_str + bytes_out, filter_str_len - bytes_out,
- "(%s=%s)", types[i], escaped_filter_val);
- }
-
- /* Add end of filter. */
- snprintf(filter_str + bytes_out, filter_str_len - bytes_out, ")");
- } else if (num_types == 1) {
- filter_str = slapi_ch_smprintf("(%s=%s)", types[0], escaped_filter_val);
- }
-
- if (free_it)
- slapi_ch_free_string(&escaped_filter_val);
+ for (i = 0; types[i]; i++) {
+ /* Triggers one internal search per membership attribute.
+ * Assuming the attribute is indexed (eq), the search will
+ * bypass the evaluation of the filter (nsslapd-search-bypass-filter-test)
+ * against the candidates. This is important to bypass the filter
+ * because on large valueset (static group) it is very expensive
+ */
+ filter_str = slapi_ch_smprintf("(%s=%s)", types[i], escaped_filter_val);
- if (filter_str == NULL) {
- return rc;
- }
+ be = slapi_get_first_backend(&cookie);
+ while (be) {
+ PRBool do_suffix_search = PR_TRUE;
- search_pb = slapi_pblock_new();
- be = slapi_get_first_backend(&cookie);
- while (be) {
- Slapi_DN *scope_sdn = NULL;
+ if (!all_backends) {
+ be = slapi_be_select(sdn);
+ if (be == NULL) {
+ break;
+ }
+ }
+ if ((base_sdn = (Slapi_DN *) slapi_be_getsuffix(be, 0)) == NULL) {
+ if (!all_backends) {
+ break;
+ } else {
+ /* its ok, goto the next backend */
+ be = slapi_get_next_backend(cookie);
+ continue;
+ }
+ }
- if (!all_backends) {
- be = slapi_be_select(sdn);
- if (be == NULL) {
- break;
+ search_pb = slapi_pblock_new();
+ if (config->entryScopes || config->entryScopeExcludeSubtrees) {
+ if (memberof_entry_in_scope(config, base_sdn)) {
+ /* do nothing, entry scope is spanning
+ * multiple suffixes, start at suffix */
+ } else if (config->entryScopes) {
+ for (size_t i = 0; config->entryScopes[i]; i++) {
+ if (slapi_sdn_issuffix(config->entryScopes[i], base_sdn)) {
+ /* Search each include scope */
+ slapi_search_internal_set_pb(search_pb, slapi_sdn_get_dn(config->entryScopes[i]),
+ LDAP_SCOPE_SUBTREE, filter_str, 0, 0, 0, 0,
+ memberof_get_plugin_id(), 0);
+ slapi_search_internal_callback_pb(search_pb, callback_data, 0, callback, 0);
+ /* We already did the search for this backend, don't
+ * do it again when we fall through */
+ do_suffix_search = PR_FALSE;
+ }
+ }
+ } else if (!all_backends) {
+ slapi_pblock_destroy(search_pb);
+ break;
+ } else {
+ /* its ok, goto the next backend */
+ be = slapi_get_next_backend(cookie);
+ slapi_pblock_destroy(search_pb);
+ continue;
+ }
}
- }
- if ((base_sdn = (Slapi_DN *)slapi_be_getsuffix(be, 0)) == NULL) {
- if (!all_backends) {
- break;
- } else {
- /* its ok, goto the next backend */
- be = slapi_get_next_backend(cookie);
- continue;
+
+ if (do_suffix_search) {
+ slapi_search_internal_set_pb(search_pb, slapi_sdn_get_dn(base_sdn),
+ LDAP_SCOPE_SUBTREE, filter_str, 0, 0, 0, 0,
+ memberof_get_plugin_id(), 0);
+ slapi_search_internal_callback_pb(search_pb, callback_data, 0, callback, 0);
+ slapi_pblock_get(search_pb, SLAPI_PLUGIN_INTOP_RESULT, &rc);
+ if (rc != LDAP_SUCCESS) {
+ slapi_pblock_destroy(search_pb);
+ break;
+ }
}
- }
- if (config->entryScopes || config->entryScopeExcludeSubtrees) {
- if (memberof_entry_in_scope(config, base_sdn)) {
- /* do nothing, entry scope is spanning
- * multiple suffixes, start at suffix */
- } else if ((scope_sdn = memberof_scope_is_child_of_dn(config, base_sdn))) {
- /* scope is below suffix, set search base */
- base_sdn = scope_sdn;
- } else if (!all_backends) {
+ if (!all_backends) {
+ slapi_pblock_destroy(search_pb);
break;
- } else {
- /* its ok, goto the next backend */
- be = slapi_get_next_backend(cookie);
- continue;
}
- }
-
- slapi_search_internal_set_pb(search_pb, slapi_sdn_get_dn(base_sdn),
- LDAP_SCOPE_SUBTREE, filter_str, 0, 0, 0, 0, memberof_get_plugin_id(), 0);
- slapi_search_internal_callback_pb(search_pb, callback_data, 0, callback, 0);
- slapi_pblock_get(search_pb, SLAPI_PLUGIN_INTOP_RESULT, &rc);
- if (rc != LDAP_SUCCESS) {
- break;
- }
- if (!all_backends) {
- break;
+ be = slapi_get_next_backend(cookie);
+ slapi_pblock_destroy(search_pb);
}
- slapi_pblock_init(search_pb);
- be = slapi_get_next_backend(cookie);
+ slapi_ch_free((void **)&cookie);
+ slapi_ch_free_string(&filter_str);
}
- slapi_pblock_destroy(search_pb);
- slapi_ch_free((void **)&cookie);
- slapi_ch_free_string(&filter_str);
-
+ if (free_it) {
+ slapi_ch_free_string(&escaped_filter_val);
+ }
return rc;
}
--
2.39.1

View file

@ -0,0 +1,294 @@
From 36660f00bf11f89c632f581d6f82b7383b1aa190 Mon Sep 17 00:00:00 2001
From: Mark Reynolds <mreynolds@redhat.com>
Date: Thu, 26 Jan 2023 08:16:49 -0500
Subject: [PATCH 4/5] Issue 5497 - boolean attributes should be case
insensitive
Description: Boolean values are supposed to be case insensitive, but in our
code it is senstiive even though the code is in the "cis" file.
relates: https://github.com/389ds/389-ds-base/issues/5497
Reviewed by: spichugi(Thanks!)
---
.../tests/suites/syntax/acceptance_test.py | 248 ++++++++++++++++++
ldap/servers/plugins/syntaxes/cis.c | 4 +-
2 files changed, 250 insertions(+), 2 deletions(-)
create mode 100644 dirsrvtests/tests/suites/syntax/acceptance_test.py
diff --git a/dirsrvtests/tests/suites/syntax/acceptance_test.py b/dirsrvtests/tests/suites/syntax/acceptance_test.py
new file mode 100644
index 000000000..807936892
--- /dev/null
+++ b/dirsrvtests/tests/suites/syntax/acceptance_test.py
@@ -0,0 +1,248 @@
+# --- BEGIN COPYRIGHT BLOCK ---
+# Copyright (C) 2023 Red Hat, Inc.
+# All rights reserved.
+#
+# License: GPL (version 3 or any later version).
+# See LICENSE for details.
+# --- END COPYRIGHT BLOCK ---
+
+import ldap
+import pytest
+import os
+from lib389.schema import Schema
+from lib389.config import Config
+from lib389.idm.user import UserAccounts
+from lib389.idm.group import Group, Groups
+from lib389._constants import DEFAULT_SUFFIX
+from lib389.topologies import log, topology_st as topo
+
+pytestmark = pytest.mark.tier0
+
+log = log.getChild(__name__)
+
+
+@pytest.fixture(scope="function")
+def validate_syntax_off(topo, request):
+ config = Config(topo.standalone)
+ config.replace("nsslapd-syntaxcheck", "off")
+
+ def fin():
+ config.replace("nsslapd-syntaxcheck", "on")
+ request.addfinalizer(fin)
+
+
+def test_valid(topo, validate_syntax_off):
+ """Test syntax-validate task with valid entries
+
+ :id: ec402a5b-bfb1-494d-b751-71b0d31a4d83
+ :setup: Standalone instance
+ :steps:
+ 1. Set nsslapd-syntaxcheck to off
+ 2. Clean error log
+ 3. Run syntax validate task
+ 4. Assert that there are no errors in the error log
+ 5. Set nsslapd-syntaxcheck to on
+ :expectedresults:
+ 1. It should succeed
+ 2. It should succeed
+ 3. It should succeed
+ 4. It should succeed
+ 5. It should succeed
+ """
+
+ inst = topo.standalone
+
+ log.info('Clean the error log')
+ inst.deleteErrorLogs()
+
+ schema = Schema(inst)
+ log.info('Attempting to add task entry...')
+ validate_task = schema.validate_syntax(DEFAULT_SUFFIX)
+ validate_task.wait()
+ exitcode = validate_task.get_exit_code()
+ assert exitcode == 0
+ error_lines = inst.ds_error_log.match('.*Found 0 invalid entries.*')
+ assert (len(error_lines) == 1)
+ log.info('Found 0 invalid entries - Success')
+
+
+def test_invalid_uidnumber(topo, validate_syntax_off):
+ """Test syntax-validate task with invalid uidNumber attribute value
+
+ :id: 30fdcae6-ffa6-4ec4-8da9-6fb138fc1828
+ :setup: Standalone instance
+ :steps:
+ 1. Set nsslapd-syntaxcheck to off
+ 2. Clean error log
+ 3. Add a user with uidNumber attribute set to an invalid value (string)
+ 4. Run syntax validate task
+ 5. Assert that there is corresponding error in the error log
+ 6. Set nsslapd-syntaxcheck to on
+ :expectedresults:
+ 1. It should succeed
+ 2. It should succeed
+ 3. It should succeed
+ 4. It should succeed
+ 5. It should succeed
+ 6. It should succeed
+ """
+
+ inst = topo.standalone
+
+ log.info('Clean the error log')
+ inst.deleteErrorLogs()
+
+ users = UserAccounts(inst, DEFAULT_SUFFIX)
+ users.create_test_user(uid="invalid_value")
+
+ schema = Schema(inst)
+ log.info('Attempting to add task entry...')
+ validate_task = schema.validate_syntax(DEFAULT_SUFFIX)
+ validate_task.wait()
+ exitcode = validate_task.get_exit_code()
+ assert exitcode == 0
+ error_lines = inst.ds_error_log.match('.*uidNumber: value #0 invalid per syntax.*')
+ assert (len(error_lines) == 1)
+ log.info('Found an invalid entry with wrong uidNumber - Success')
+
+
+def test_invalid_dn_syntax_crash(topo):
+ """Add an entry with an escaped space, restart the server, and try to delete
+ it. In this case the DN is not correctly parsed and causes cache revert to
+ to dereference a NULL pointer. So the delete can fail as long as the server
+ does not crash.
+
+ :id: 62d87272-dfb8-4627-9ca1-dbe33082caf8
+ :setup: Standalone Instance
+ :steps:
+ 1. Add entry with leading escaped space in the RDN
+ 2. Restart the server so the entry is rebuilt from the database
+ 3. Delete the entry
+ 4. The server should still be running
+ :expectedresults:
+ 1. Success
+ 2. Success
+ 3. Success
+ 4. Success
+ """
+
+ # Create group
+ groups = Groups(topo.standalone, DEFAULT_SUFFIX)
+ group = groups.create(properties={'cn': ' test'})
+
+ # Restart the server
+ topo.standalone.restart()
+
+ # Delete group
+ try:
+ group.delete()
+ except ldap.NO_SUCH_OBJECT:
+ # This is okay in this case as we are only concerned about a crash
+ pass
+
+ # Make sure server is still running
+ groups.list()
+
+
+@pytest.mark.parametrize("props, rawdn", [
+ ({'cn': ' leadingSpace'}, "cn=\\20leadingSpace,ou=Groups,dc=example,dc=com"),
+ ({'cn': 'trailingSpace '}, "cn=trailingSpace\\20,ou=Groups,dc=example,dc=com")])
+def test_dn_syntax_spaces_delete(topo, props, rawdn):
+ """Test that an entry with a space as the first character in the DN can be
+ deleted without error. We also want to make sure the indexes are properly
+ updated by repeatedly adding and deleting the entry, and that the entry cache
+ is properly maintained.
+
+ :id: b993f37c-c2b0-4312-992c-a9048ff98965
+ :customerscenario: True
+ :parametrized: yes
+ :setup: Standalone Instance
+ :steps:
+ 1. Create a group with a DN that has a space as the first/last
+ character.
+ 2. Delete group
+ 3. Add group
+ 4. Modify group
+ 5. Restart server and modify entry
+ 6. Delete group
+ 7. Add group back
+ 8. Delete group using specific DN
+ :expectedresults:
+ 1. Success
+ 2. Success
+ 3. Success
+ 4. Success
+ 5. Success
+ 6. Success
+ 7. Success
+ 8. Success
+ """
+
+ # Create group
+ groups = Groups(topo.standalone, DEFAULT_SUFFIX)
+ group = groups.create(properties=props.copy())
+
+ # Delete group (verifies DN/RDN parsing works and cache is correct)
+ group.delete()
+
+ # Add group again (verifies entryrdn index was properly updated)
+ groups = Groups(topo.standalone, DEFAULT_SUFFIX)
+ group = groups.create(properties=props.copy())
+
+ # Modify the group (verifies dn/rdn parsing is correct)
+ group.replace('description', 'escaped space group')
+
+ # Restart the server. This will pull the entry from the database and
+ # convert it into a cache entry, which is different than how a client
+ # first adds an entry and is put into the cache before being written to
+ # disk.
+ topo.standalone.restart()
+
+ # Make sure we can modify the entry (verifies cache entry was created
+ # correctly)
+ group.replace('description', 'escaped space group after restart')
+
+ # Make sure it can still be deleted (verifies cache again).
+ group.delete()
+
+ # Add it back so we can delete it using a specific DN (sanity test to verify
+ # another DN/RDN parsing variation).
+ groups = Groups(topo.standalone, DEFAULT_SUFFIX)
+ group = groups.create(properties=props.copy())
+ group = Group(topo.standalone, dn=rawdn)
+ group.delete()
+
+
+def test_boolean_case(topo):
+ """Test that we can a boolean value in any case
+
+ :id: 56777c1d-b058-41e1-abd5-87a6f1512db2
+ :customerscenario: True
+ :setup: Standalone Instance
+ :steps:
+ 1. Create test user
+ 2. Add boolean attribute value that is lowercase "false"
+ :expectedresults:
+ 1. Success
+ 2. Success
+ """
+ inst = topo.standalone
+ users = UserAccounts(inst, DEFAULT_SUFFIX)
+ user = users.create_test_user(uid=1011)
+
+ user.add('objectclass', 'extensibleObject')
+ user.add('pamsecure', 'false')
+ user.replace('pamsecure', 'FALSE')
+ user.replace('pamsecure', 'true')
+ user.replace('pamsecure', 'TRUE')
+
+ # Test some invalid syntax
+ with pytest.raises(ldap.INVALID_SYNTAX):
+ user.replace('pamsecure', 'blah')
+
+
+if __name__ == '__main__':
+ # Run isolated
+ # -s for DEBUG mode
+ CURRENT_FILE = os.path.realpath(__file__)
+ pytest.main("-s %s" % CURRENT_FILE)
diff --git a/ldap/servers/plugins/syntaxes/cis.c b/ldap/servers/plugins/syntaxes/cis.c
index e1242e3f4..c9274f37f 100644
--- a/ldap/servers/plugins/syntaxes/cis.c
+++ b/ldap/servers/plugins/syntaxes/cis.c
@@ -853,12 +853,12 @@ boolean_validate(
*/
if (val != NULL) {
if (val->bv_len == 4) {
- if (strncmp(val->bv_val, "TRUE", 4) != 0) {
+ if (strncasecmp(val->bv_val, "TRUE", 4) != 0) {
rc = 1;
goto exit;
}
} else if (val->bv_len == 5) {
- if (strncmp(val->bv_val, "FALSE", 5) != 0) {
+ if (strncasecmp(val->bv_val, "FALSE", 5) != 0) {
rc = 1;
goto exit;
}
--
2.39.1

833
SOURCES/Cargo.lock generated Normal file
View file

@ -0,0 +1,833 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "ahash"
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
dependencies = [
"getrandom",
"once_cell",
"version_check",
]
[[package]]
name = "ansi_term"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
dependencies = [
"winapi",
]
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi",
"libc",
"winapi",
]
[[package]]
name = "autocfg"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "base64"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "byteorder"
version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "cbindgen"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9daec6140ab4dcd38c3dd57e580b59a621172a526ac79f1527af760a55afeafd"
dependencies = [
"clap",
"log",
"proc-macro2",
"quote",
"serde",
"serde_json",
"syn",
"tempfile",
"toml",
]
[[package]]
name = "cc"
version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
dependencies = [
"jobserver",
]
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "2.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
dependencies = [
"ansi_term",
"atty",
"bitflags",
"strsim",
"textwrap",
"unicode-width",
"vec_map",
]
[[package]]
name = "concread"
version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcc9816f5ac93ebd51c37f7f9a6bf2b40dfcd42978ad2aea5d542016e9244cf6"
dependencies = [
"ahash",
"crossbeam",
"crossbeam-epoch",
"crossbeam-utils",
"lru",
"parking_lot",
"rand",
"smallvec",
"tokio",
]
[[package]]
name = "crossbeam"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
dependencies = [
"cfg-if",
"crossbeam-channel",
"crossbeam-deque",
"crossbeam-epoch",
"crossbeam-queue",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-channel"
version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
dependencies = [
"cfg-if",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-deque"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
dependencies = [
"cfg-if",
"crossbeam-epoch",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-epoch"
version = "0.9.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"
dependencies = [
"autocfg",
"cfg-if",
"crossbeam-utils",
"memoffset",
"scopeguard",
]
[[package]]
name = "crossbeam-queue"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
dependencies = [
"cfg-if",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
dependencies = [
"cfg-if",
]
[[package]]
name = "fastrand"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
dependencies = [
"instant",
]
[[package]]
name = "fernet"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93804560e638370a8be6d59ce71ed803e55e230abdbf42598e666b41adda9b1f"
dependencies = [
"base64",
"byteorder",
"getrandom",
"openssl",
"zeroize",
]
[[package]]
name = "foreign-types"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
dependencies = [
"foreign-types-shared",
]
[[package]]
name = "foreign-types-shared"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
[[package]]
name = "getrandom"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
dependencies = [
"cfg-if",
"libc",
"wasi",
]
[[package]]
name = "hashbrown"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
dependencies = [
"ahash",
]
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "instant"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
dependencies = [
"cfg-if",
]
[[package]]
name = "itoa"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
[[package]]
name = "jobserver"
version = "0.1.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b"
dependencies = [
"libc",
]
[[package]]
name = "libc"
version = "0.2.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
[[package]]
name = "librnsslapd"
version = "0.1.0"
dependencies = [
"cbindgen",
"libc",
"slapd",
]
[[package]]
name = "librslapd"
version = "0.1.0"
dependencies = [
"cbindgen",
"concread",
"libc",
"slapd",
]
[[package]]
name = "lock_api"
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
dependencies = [
"autocfg",
"scopeguard",
]
[[package]]
name = "log"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
dependencies = [
"cfg-if",
]
[[package]]
name = "lru"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a"
dependencies = [
"hashbrown",
]
[[package]]
name = "memoffset"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
dependencies = [
"autocfg",
]
[[package]]
name = "once_cell"
version = "1.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
[[package]]
name = "openssl"
version = "0.10.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1"
dependencies = [
"bitflags",
"cfg-if",
"foreign-types",
"libc",
"once_cell",
"openssl-macros",
"openssl-sys",
]
[[package]]
name = "openssl-macros"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "openssl-sys"
version = "0.9.80"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7"
dependencies = [
"autocfg",
"cc",
"libc",
"pkg-config",
"vcpkg",
]
[[package]]
name = "parking_lot"
version = "0.11.2"
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",
"smallvec",
"winapi",
]
[[package]]
name = "paste"
version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
dependencies = [
"paste-impl",
"proc-macro-hack",
]
[[package]]
name = "paste-impl"
version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
dependencies = [
"proc-macro-hack",
]
[[package]]
name = "pin-project-lite"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
[[package]]
name = "pkg-config"
version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
[[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"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]]
name = "proc-macro2"
version = "1.0.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"
dependencies = [
"unicode-ident",
]
[[package]]
name = "pwdchan"
version = "0.1.0"
dependencies = [
"base64",
"cc",
"libc",
"openssl",
"paste",
"slapi_r_plugin",
"uuid",
]
[[package]]
name = "quote"
version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
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",
]
[[package]]
name = "remove_dir_all"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
dependencies = [
"winapi",
]
[[package]]
name = "ryu"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "serde"
version = "1.0.152"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.152"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"
dependencies = [
"itoa",
"ryu",
"serde",
]
[[package]]
name = "slapd"
version = "0.1.0"
dependencies = [
"fernet",
]
[[package]]
name = "slapi_r_plugin"
version = "0.1.0"
dependencies = [
"libc",
"paste",
"uuid",
]
[[package]]
name = "smallvec"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
[[package]]
name = "strsim"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "syn"
version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "synstructure"
version = "0.12.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
dependencies = [
"proc-macro2",
"quote",
"syn",
"unicode-xid",
]
[[package]]
name = "tempfile"
version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
dependencies = [
"cfg-if",
"fastrand",
"libc",
"redox_syscall",
"remove_dir_all",
"winapi",
]
[[package]]
name = "textwrap"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
dependencies = [
"unicode-width",
]
[[package]]
name = "tokio"
version = "1.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af"
dependencies = [
"autocfg",
"pin-project-lite",
"tokio-macros",
"windows-sys",
]
[[package]]
name = "tokio-macros"
version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "toml"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
dependencies = [
"serde",
]
[[package]]
name = "unicode-ident"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
[[package]]
name = "unicode-width"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
[[package]]
name = "unicode-xid"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
[[package]]
name = "uuid"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
dependencies = [
"getrandom",
]
[[package]]
name = "vcpkg"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "vec_map"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]]
name = "version_check"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-sys"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
[[package]]
name = "windows_aarch64_msvc"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
[[package]]
name = "windows_i686_gnu"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
[[package]]
name = "windows_i686_msvc"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
[[package]]
name = "windows_x86_64_gnu"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
[[package]]
name = "windows_x86_64_msvc"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
[[package]]
name = "zeroize"
version = "1.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
dependencies = [
"zeroize_derive",
]
[[package]]
name = "zeroize_derive"
version = "1.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c"
dependencies = [
"proc-macro2",
"quote",
"syn",
"synstructure",
]

View file

@ -14,6 +14,7 @@
# This is used in certain builds to help us know if it has extra features.
%global variant base
%global use_asan 0
%global use_rust 1
%if %{use_asan}
%global use_tcmalloc 0
@ -25,6 +26,7 @@
%global use_tcmalloc 0
%endif
%endif
%global rust_version 1.62
# fedora 15 and later uses tmpfiles.d
# otherwise, comment this out
@ -38,8 +40,8 @@
Summary: 389 Directory Server (%{variant})
Name: 389-ds-base
Version: 1.3.10.2
Release: %{?relprefix}17%{?prerel}%{?dist}
Version: 1.3.11.1
Release: %{?relprefix}1%{?prerel}%{?dist}
License: GPLv3+
URL: https://www.port389.org/
Group: System Environment/Daemons
@ -75,6 +77,13 @@ BuildRequires: systemd-devel
%if %{use_asan}
BuildRequires: libasan
%endif
# If rust is enabled
%if %{use_rust}
BuildRequires: scl-utils
BuildRequires: rust-toolset-%{rust_version}
BuildRequires: rust-toolset-%{rust_version}-cargo
BuildRequires: rust-toolset-%{rust_version}-rust
%endif
# Needed to support regeneration of the autotool artifacts.
BuildRequires: autoconf
BuildRequires: automake
@ -145,6 +154,10 @@ Requires: gperftools-libs
Source0: https://releases.pagure.org/389-ds-base/%{name}-%{version}%{?prerel}.tar.bz2
Source1: %{name}-git.sh
Source2: %{name}-devel.README
%if %{use_rust}
Source3: vendor-%{version}-1.tar.gz
Source4: Cargo.lock
%endif
Patch00: 0000-Issue-50800-wildcards-in-rootdn-allow-ip-attribute-a.patch
Patch01: 0001-Issue-49437-Fix-memory-leak-with-indirect-COS.patch
Patch02: 0002-Ticket-50905-intermittent-SSL-hang-with-rhds.patch
@ -152,7 +165,7 @@ Patch03: 0003-Issue-51029-Add-db_home_dir-defaults.inf.patch
Patch04: 0004-Ticket-51068-deadlock-when-updating-the-schema.patch
Patch05: 0005-Issue-50745-ns-slapd-hangs-during-CleanAllRUV-tests.patch
Patch06: 0006-Issue-51095-abort-operation-if-CSN-can-not-be-genera.patch
Patch07: 0007-Issue-51132-Winsync-setting-winSyncWindowsFilter-not.patch
Patch07: 0007-Issue-51132-Winsync-setting-winSyncWindowsFilter-not.patch
Patch08: 0008-Issue-4389-errors-log-with-incorrectly-formatted-mes.patch
Patch09: 0009-Issue-4297-On-ADD-replication-URP-issue-internal-sea.patch
Patch10: 0010-Issue-4379-allow-more-than-1-empty-AttributeDescript.patch
@ -186,6 +199,9 @@ Patch37: 0037-Issue-5155-RFE-Provide-an-option-to-abort-an-Auto-Me.patc
Patch38: 0038-Issue-5221-User-with-expired-password-can-still-logi.patch
Patch39: 0039-Issue-5098-Multiple-issues-around-replication-and-CI.patch
Patch40: 0040-Issue-5418-Sync_repl-may-crash-while-managing-invali.patch
Patch41: 0041-Issue-5565-Change-default-password-storage-scheme-to.patch
Patch42: 0042-Issue-5440-memberof-is-slow-on-update-fixup-if-there.patch
Patch43: 0043-Issue-5497-boolean-attributes-should-be-case-insensi.patch
%description
@ -255,6 +271,10 @@ The lib389 CI tests that can be run against the Directory Server.
%prep
%autosetup -p1 -n %{name}-%{version}%{?prerel}
%if %{use_rust}
tar xvzf %{SOURCE3}
cp %{SOURCE4} src/
%endif
cp %{SOURCE2} README.devel
%build
@ -271,6 +291,14 @@ TCMALLOC_FLAGS="--enable-tcmalloc"
ASAN_FLAGS="--enable-asan --enable-debug"
%endif
%if %{use_rust}
RUST_FLAGS="--enable-rust --enable-rust-offline"
set +e
source scl_source enable rust-toolset-%{rust_version}
set -e
%endif
# Rebuild the autotool artifacts now.
autoreconf -fiv
@ -279,7 +307,7 @@ autoreconf -fiv
--with-systemdsystemconfdir=%{_sysconfdir}/systemd/system \
--with-perldir=/usr/bin \
--with-systemdgroupname=%{groupname} $NSSARGS \
--with-systemd --enable-cmocka $TCMALLOC_FLAGS $ASAN_FLAGS
--with-systemd --enable-cmocka $RUST_FLAGS $TCMALLOC_FLAGS $ASAN_FLAGS
# Generate symbolic info for debuggers
export XCFLAGS=$RPM_OPT_FLAGS
@ -540,6 +568,12 @@ fi
%{_sysconfdir}/%{pkgname}/dirsrvtests
%changelog
* Tue Feb 21 2023 Simon Pichugin <spichugi@redhat.com> - 1.3.11.1-1
- Bump version to 1.3.11.1-1
- Resolves: Bug 2170224 - Backport Rust password storage PBKDF2 schemes
- Resolves: Bug 2170221 - Boolean attributes should be case insensitive
- Resolves: Bug 2170218 - Slow memberof fixup task for large static groups, high CPU use
* Fri Sep 30 2022 Mark Reynolds <mreynolds@redhat.com> - 1.3.10-2-17
- Bump version to 1.3.10.2-17
- Resolves: Bug 2113056 - Import may break replication because changelog starting csn may not be created