diff --git a/.389-ds-base.metadata b/.389-ds-base.metadata index 9b061ba..67cbf12 100644 --- a/.389-ds-base.metadata +++ b/.389-ds-base.metadata @@ -1,2 +1,2 @@ -abfa28fe644157d06d78f0b2c573d5720d6198b0 SOURCES/389-ds-base-2.2.4.tar.bz2 +09d78ce7b3e2f3d5d28c889cabd56720a573ade3 SOURCES/389-ds-base-2.3.6.tar.bz2 1c8f2d0dfbf39fa8cd86363bf3314351ab21f8d4 SOURCES/jemalloc-5.3.0.tar.bz2 diff --git a/.gitignore b/.gitignore index 0b11ded..9c09797 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/389-ds-base-2.2.4.tar.bz2 +SOURCES/389-ds-base-2.3.6.tar.bz2 SOURCES/jemalloc-5.3.0.tar.bz2 diff --git a/SOURCES/0001-Issue-5848-Fix-condition-and-add-a-CI-test-5916.patch b/SOURCES/0001-Issue-5848-Fix-condition-and-add-a-CI-test-5916.patch new file mode 100644 index 0000000..101a551 --- /dev/null +++ b/SOURCES/0001-Issue-5848-Fix-condition-and-add-a-CI-test-5916.patch @@ -0,0 +1,119 @@ +From d9784b09531b19f6541602a31cfd49c9878ef2ca Mon Sep 17 00:00:00 2001 +From: Simon Pichugin +Date: Thu, 31 Aug 2023 11:19:05 -0700 +Subject: [PATCH] Issue 5848 - Fix condition and add a CI test (#5916) + +Description: Add a "positive" test for the issue and fix the condition +to make sure that 65535 and no --replica-id are correctly accepted. + +Related: https://github.com/389ds/389-ds-base/issues/5848 + +Reviewed by: @mreynolds389 @tbordaz (Thanks!) +--- + dirsrvtests/tests/suites/clu/dsconf_test.py | 34 ++++++++++++++++++++- + src/lib389/lib389/cli_conf/replication.py | 23 ++++++++------ + 2 files changed, 47 insertions(+), 10 deletions(-) + +diff --git a/dirsrvtests/tests/suites/clu/dsconf_test.py b/dirsrvtests/tests/suites/clu/dsconf_test.py +index eb3c426c7..4f7da0b58 100644 +--- a/dirsrvtests/tests/suites/clu/dsconf_test.py ++++ b/dirsrvtests/tests/suites/clu/dsconf_test.py +@@ -99,7 +99,7 @@ def test_dsconf_with_ldaps(topology_st, enable_config, config_type): + + + @pytest.mark.parametrize('instance_role', ('consumer', 'hub')) +-def test_check_replica_id_rejected (instance_role): ++def test_check_replica_id_rejected_hub_consumer(instance_role): + """Test dsconf CLI does not accept replica-id parameter for comsumer and hubs + + :id: 274b47f8-111a-11ee-8321-98fa9ba19b65 +@@ -129,3 +129,35 @@ def test_check_replica_id_rejected (instance_role): + log.info(f'output message : {msg}') + assert "Replication successfully enabled for" not in msg, f"Test Failed: --replica-id option is accepted....It shouldn't for {instance_role}" + log.info(f"Test PASSED: --replica-id option is NOT accepted for {instance_role}.") ++ ++ ++@pytest.mark.parametrize('instance_role, replica_id', ++ [('consumer', None), ('hub', None), ('consumer', "65535"), ('hub', "65535")]) ++def test_check_replica_id_accepted_hub_consumer(topology_st, instance_role, replica_id): ++ """Test dsconf CLI accepts 65535 replica-id parameter for comsumer and hubs ++ ++ :id: e0a1a1e6-11c1-40e6-92fe-cb550fb2170d ++ :parametrized: yes ++ :customerscenario: True ++ :setup: Create DS instance ++ :steps: ++ 1. Create ldap instance ++ 2. Use dsconf cli to create replica and don't specify replica id for a consumer or hub ++ 3. Use dsconf cli to create replica and specify replica id for a consumer or hub ++ :expectedresults: ++ 1. Success ++ 2. Success ++ 3. Success ++ """ ++ print("DN_DM {}".format(DN_DM)) ++ cmdline = ['/usr/sbin/dsconf', 'standalone1', '-D', DN_DM, '-w', 'password', 'replication', 'enable', '--suffix', DEFAULT_SUFFIX, '--role', instance_role] ++ if replica_id is not None: ++ cmdline.append(f'--replica-id={replica_id}') ++ log.info(f'Command used : {cmdline}') ++ proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE) ++ ++ msg = proc.communicate() ++ msg = msg[0].decode('utf-8') ++ log.info(f'output message : {msg}') ++ assert "Replication successfully enabled for" in msg ++ log.info(f"Test PASSED: --replica-id option is accepted for {instance_role}.") +diff --git a/src/lib389/lib389/cli_conf/replication.py b/src/lib389/lib389/cli_conf/replication.py +index a75774ca0..2e2803ced 100644 +--- a/src/lib389/lib389/cli_conf/replication.py ++++ b/src/lib389/lib389/cli_conf/replication.py +@@ -154,6 +154,17 @@ def enable_replication(inst, basedn, log, args): + # error - unknown type + raise ValueError(f"Unknown replication role ({role}), you must use \"supplier\", \"hub\", or \"consumer\"") + ++ if args.replica_id is not None: ++ # is it a number? ++ try: ++ rid_num = int(rid) ++ except ValueError: ++ raise ValueError("--replica-id expects a number between 1 and 65535") ++ ++ # Is it in range? ++ if rid_num < 1 or rid_num > 65535: ++ raise ValueError("--replica-id expects a number between 1 and 65535") ++ + # Start the propeties and update them as needed + repl_properties = { + 'cn': 'replica', +@@ -170,15 +181,9 @@ def enable_replication(inst, basedn, log, args): + # Error, supplier needs a rid TODO + raise ValueError('You must specify the replica ID (--replica-id) when enabling a \"supplier\" replica') + +- # is it a number? +- try: +- rid_num = int(rid) +- except ValueError: +- raise ValueError("--replica-id expects a number between 1 and 65534") +- + # Is it in range? + if rid_num < 1 or rid_num > 65534: +- raise ValueError("--replica-id expects a number between 1 and 65534") ++ raise ValueError("--replica-id expects a number between 1 and 65534 for supplier role") + + # rid is good add it to the props + repl_properties['nsDS5ReplicaId'] = args.replica_id +@@ -186,9 +191,9 @@ def enable_replication(inst, basedn, log, args): + # Validate consumer and hub settings + elif role == "consumer" or role == "hub": + # Check Replica ID +- if args.replica_id is not None or args.replica_id != 65535: ++ if args.replica_id is not None and rid_num != 65535: + # Error, Replica ID cannot be specified for consumer and hub roles +- raise ValueError('Replica ID cannot be specified for consumer and hub roles') ++ raise ValueError('Replica ID other than 65535 cannot be specified for consumer and hub roles') + + # Bind DN or Bind DN Group? + if args.bind_group_dn: +-- +2.41.0 + diff --git a/SOURCES/0001-Update-cargo-toml-file b/SOURCES/0001-Update-cargo-toml-file deleted file mode 100644 index 977daf7..0000000 --- a/SOURCES/0001-Update-cargo-toml-file +++ /dev/null @@ -1,84 +0,0 @@ -diff --git a/src/librnsslapd/Cargo.toml b/src/librnsslapd/Cargo.toml -index c18ab7fc8..11bb9afe7 100644 ---- a/src/librnsslapd/Cargo.toml -+++ b/src/librnsslapd/Cargo.toml -@@ -2,7 +2,6 @@ - name = "librnsslapd" - version = "0.1.0" - authors = ["William Brown "] --rust-version = "1.70" - edition = "2018" - build = "build.rs" - -diff --git a/src/librslapd/Cargo.toml b/src/librslapd/Cargo.toml -index fb445c251..15c00a47b 100644 ---- a/src/librslapd/Cargo.toml -+++ b/src/librslapd/Cargo.toml -@@ -2,7 +2,6 @@ - name = "librslapd" - version = "0.1.0" - authors = ["William Brown "] --rust-version = "1.70" - edition = "2018" - build = "build.rs" - -diff --git a/src/plugins/entryuuid/Cargo.toml b/src/plugins/entryuuid/Cargo.toml -index f0d8e9f2a..c43d7a771 100644 ---- a/src/plugins/entryuuid/Cargo.toml -+++ b/src/plugins/entryuuid/Cargo.toml -@@ -2,7 +2,6 @@ - name = "entryuuid" - version = "0.1.0" - authors = ["William Brown "] --rust-version = "1.70" - edition = "2018" - - # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -diff --git a/src/plugins/entryuuid_syntax/Cargo.toml b/src/plugins/entryuuid_syntax/Cargo.toml -index d80b59bf1..f7d3d64c9 100644 ---- a/src/plugins/entryuuid_syntax/Cargo.toml -+++ b/src/plugins/entryuuid_syntax/Cargo.toml -@@ -2,7 +2,6 @@ - name = "entryuuid_syntax" - version = "0.1.0" - authors = ["William Brown "] --rust-version = "1.70" - edition = "2018" - - # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -diff --git a/src/plugins/pwdchan/Cargo.toml b/src/plugins/pwdchan/Cargo.toml -index 3cda69f22..40d8a54aa 100644 ---- a/src/plugins/pwdchan/Cargo.toml -+++ b/src/plugins/pwdchan/Cargo.toml -@@ -2,7 +2,6 @@ - name = "pwdchan" - version = "0.1.0" - authors = ["William Brown "] --rust-version = "1.70" - edition = "2018" - - # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -diff --git a/src/slapd/Cargo.toml b/src/slapd/Cargo.toml -index 39b6fdd1d..a18cb7626 100644 ---- a/src/slapd/Cargo.toml -+++ b/src/slapd/Cargo.toml -@@ -2,7 +2,6 @@ - name = "slapd" - version = "0.1.0" - authors = ["William Brown "] --rust-version = "1.70" - edition = "2018" - - # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -diff --git a/src/slapi_r_plugin/Cargo.toml b/src/slapi_r_plugin/Cargo.toml -index 024bd464a..9d197ec85 100644 ---- a/src/slapi_r_plugin/Cargo.toml -+++ b/src/slapi_r_plugin/Cargo.toml -@@ -2,7 +2,6 @@ - name = "slapi_r_plugin" - version = "0.1.0" - authors = ["William Brown "] --rust-version = "1.70" - edition = "2018" - build = "build.rs" - diff --git a/SPECS/389-ds-base.spec b/SPECS/389-ds-base.spec index d679d60..eca02d0 100644 --- a/SPECS/389-ds-base.spec +++ b/SPECS/389-ds-base.spec @@ -46,9 +46,9 @@ ExcludeArch: i686 Summary: 389 Directory Server (base) Name: 389-ds-base -Version: 2.2.4 -Release: 5%{?dist} -License: GPLv3+ and (ASL 2.0 or MIT) +Version: 2.3.6 +Release: 3%{?dist} +License: GPLv3+ and MIT and ASL 2.0 URL: https://www.port389.org Conflicts: selinux-policy-base < 3.9.8 Conflicts: freeipa-server < 4.0.3 @@ -67,7 +67,7 @@ Provides: bundled(crate(autocfg)) = 1.1.0 Provides: bundled(crate(backtrace)) = 0.3.68 Provides: bundled(crate(base64)) = 0.13.1 Provides: bundled(crate(bitflags)) = 1.3.2 -Provides: bundled(crate(bitflags)) = 2.4.0 +Provides: bundled(crate(bitflags)) = 2.3.3 Provides: bundled(crate(byteorder)) = 1.4.3 Provides: bundled(crate(cbindgen)) = 0.9.1 Provides: bundled(crate(cc)) = 1.0.82 @@ -114,7 +114,7 @@ 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.12 +Provides: bundled(crate(pin-project-lite)) = 0.2.11 Provides: bundled(crate(pkg-config)) = 0.3.27 Provides: bundled(crate(ppv-lite86)) = 0.2.17 Provides: bundled(crate(proc-macro-hack)) = 0.5.20+deprecated @@ -127,7 +127,7 @@ Provides: bundled(crate(rand_core)) = 0.6.4 Provides: bundled(crate(redox_syscall)) = 0.2.16 Provides: bundled(crate(redox_syscall)) = 0.3.5 Provides: bundled(crate(rustc-demangle)) = 0.1.23 -Provides: bundled(crate(rustix)) = 0.38.8 +Provides: bundled(crate(rustix)) = 0.38.7 Provides: bundled(crate(ryu)) = 1.0.15 Provides: bundled(crate(scopeguard)) = 1.2.0 Provides: bundled(crate(serde)) = 1.0.183 @@ -141,7 +141,7 @@ Provides: bundled(crate(syn)) = 1.0.109 Provides: bundled(crate(syn)) = 2.0.28 Provides: bundled(crate(tempfile)) = 3.7.1 Provides: bundled(crate(textwrap)) = 0.11.0 -Provides: bundled(crate(tokio)) = 1.30.0 +Provides: bundled(crate(tokio)) = 1.29.1 Provides: bundled(crate(tokio-macros)) = 2.1.0 Provides: bundled(crate(toml)) = 0.5.11 Provides: bundled(crate(unicode-ident)) = 1.0.11 @@ -165,7 +165,6 @@ Provides: bundled(crate(windows_x86_64_gnullvm)) = 0.48.0 Provides: bundled(crate(windows_x86_64_msvc)) = 0.48.0 Provides: bundled(crate(zeroize)) = 1.6.0 Provides: bundled(crate(zeroize_derive)) = 1.4.2 - ##### Bundled cargo crates list - END ##### BuildRequires: nspr-devel >= 4.32 @@ -295,7 +294,8 @@ Source2: %{name}-devel.README Source3: https://github.com/jemalloc/%{jemalloc_name}/releases/download/%{jemalloc_ver}/%{jemalloc_name}-%{jemalloc_ver}.tar.bz2 %endif Source4: 389-ds-base.sysusers -Patch01: 0001-Update-cargo-toml-file + +Patch1: 0001-Issue-5848-Fix-condition-and-add-a-CI-test-5916.patch %description 389 Directory Server is an LDAPv3 compliant server. The base package includes @@ -375,8 +375,8 @@ Requires: python%{python3_pkgversion}-dateutil Requires: python%{python3_pkgversion}-argcomplete Requires: python%{python3_pkgversion}-libselinux Requires: python%{python3_pkgversion}-setuptools -%{?python_provide:%python_provide python%{python3_pkgversion}-lib389} Requires: python%{python3_pkgversion}-cryptography +%{?python_provide:%python_provide python%{python3_pkgversion}-lib389} %description -n python%{python3_pkgversion}-lib389 This module contains tools and libraries for accessing, testing, @@ -556,6 +556,8 @@ fi # reload to pick up any changes to systemd files /bin/systemctl daemon-reload >$output 2>&1 || : +# https://fedoraproject.org/wiki/Packaging:UsersAndGroups#Soft_static_allocation +# Soft static allocation for UID and GID # sysusers.d format https://fedoraproject.org/wiki/Changes/Adopting_sysusers.d_format %sysusers_create_compat %{SOURCE4} @@ -735,10 +737,33 @@ exit 0 %endif %changelog -* Mon Aug 14 2023 Mark Reynolds - 2.2.4-5 -- Bump version to 2.2.4-5 +* Thu Sep 7 2023 Simon Pichugin - 2.3.6-3 +- Bump version to 2.3.6-3 +- Resolves: rhbz#2236163 - Regression: replication can't be enabled for consumer or hub role + +* Tue Aug 8 2023 Mark Reynolds - 2.3.6-2 +- Bump version to 2.3.6-2 +- Resolves: rhbz#2225532 - 389-ds-base FTBFS with rust-1.71.0 +- Resolves: rhbz#2218209 - useradd: invalid user ID '389:389': installing 389-ds-base in container fails to create the dirsrv user +- Resolves: rhbz#2207691 - python3-lib389: Python tarfile extraction needs change to avoid a warning +- Resolves: rhbz#2179278 - dirsrv failed to start after reboot because "dirsrv" did not have access on /run/dirsrv + +* Mon Jul 24 2023 Mark Reynolds - 2.3.4-3 +- Bump version to 2.3.4-3 +- Resolves: rhbz#2189954 - RFE Improve reponse time to filters containing 'nsrole' +- Resolves: rhbz#2189946 - RFE support of slapi_memberof for plugins/core server - Resolves: rhbz#1974242 - Paged search impacts performance -- Resolves: rhbz#2224503 - dsconf ERROR: Error: name 'log' is not defined + +* Fri May 19 2023 Mark Reynolds - 2.3.4-2 +- Bump version to 2.3.4-2 +- Resolves: rhbz#2188627 - Fix license + +* Thu May 18 2023 Mark Reynolds - 2.3.4-1 +- Bump version to 2.3.4-1 +- Resolves: rhbz#2188627 - Rebase 389-ds-base-2.3 in RHEL 9.3 + +* Wed Mar 08 2023 Simon Pichugin - 2.2.4-4 +- Resolves: rhbz#2095366 - [RFE] 389-ds-base systemd-sysusers * Tue Dec 13 2022 Mark Reynolds - 2.2.4-3 - Bump version to 2.2.4-3