public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Viktor Ashirov <vashirov@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/389-ds-base] f44: Bump version to 3.2.3
Date: Mon, 07 Sep 2026 13:35:14 GMT	[thread overview]
Message-ID: <178878811483.1.15674295468499662104.rpms-389-ds-base-8880d88869d1@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/389-ds-base
Branch : f44
Commit : 8880d88869d1c5444b8f4101f08f2752ce43f763
Author : Viktor Ashirov <vashirov@redhat.com>
Date   : 2026-09-07T15:14:58+02:00
Stats  : +235/-177 in 3 file(s)
URL    : https://src.fedoraproject.org/rpms/389-ds-base/c/8880d88869d1c5444b8f4101f08f2752ce43f763?branch=f44

Log:
Bump version to 3.2.3

---
diff --git a/389-ds-base.spec b/389-ds-base.spec
index d683264..8695140 100644
--- a/389-ds-base.spec
+++ b/389-ds-base.spec
@@ -1,6 +1,6 @@
 %global pkgname dirsrv
 
-# Exclude i686 bit arches
+# Exclude i686 architecture
 ExcludeArch: i686
 
 %bcond bundle_jemalloc 1
@@ -10,11 +10,7 @@ ExcludeArch: i686
 %global __provides_exclude ^libjemalloc\\.so.*$
 %endif
 
-%bcond bundle_libdb 0
-%if 0%{?rhel} >= 10
-%bcond bundle_libdb 1
-%endif
-
+%bcond bundle_libdb %{defined rhel}
 %if %{with bundle_libdb}
 %global libdb_version 5.3
 %global libdb_base_version db-%{libdb_version}.28
@@ -28,13 +24,21 @@ ExcludeArch: i686
 %endif
 %endif
 
-%bcond libbdb_ro 0
+%bcond repl_reports 0
+%if 0%{?fedora} >= 40 && 0%{?fedora} < 44
+%bcond repl_reports 1
+%endif
+
 %if 0%{?fedora} >= 43
 %bcond libbdb_ro 1
+%else
+%bcond libbdb_ro 0
 %endif
 
 # This is used in certain builds to help us know if it has extra features.
 %global variant base
+%global prerel %{nil}
+
 # This enables a sanitized build.
 %bcond asan 0
 %bcond msan 0
@@ -57,20 +61,34 @@ ExcludeArch: i686
 %endif
 
 # Build cockpit plugin
+# Enabled on Fedora and EPEL community builds.
+# Disabled on RHEL/CentOS Stream unless RHDS (distribution contains "dsrv").
+%if 0%{?rhel} && !0%{?epel}
+%bcond cockpit %(echo "%{?distribution}" | grep -q dsrv && echo 1 || echo 0)
+%else
 %bcond cockpit 1
+%endif
+
+# HIBP password breach checking
+%bcond hibp 1
 
-# Build HIBP password breach checking (requires libcurl)
-%bcond hibp 0
+%bcond usdt 1
 
-# fedora 15 and later uses tmpfiles.d
-# otherwise, comment this out
-%{!?with_tmpfiles_d: %global with_tmpfiles_d %{_sysconfdir}/tmpfiles.d}
+# Perl log analyzer (logconv.pl)
+# Disabled on Fedora >= 46 and RHEL >= 11, use logconv.py instead
+%if 0%{?fedora} >= 46 || 0%{?rhel} >= 11
+%bcond logconvpl 0
+%else
+%bcond logconvpl 1
+%endif
 
 # systemd support
 %global groupname %{pkgname}.target
 
 # Filter argparse-manpage from autogenerated package Requires
 %global __requires_exclude ^python.*argparse-manpage
+# Filter perl auto-dep from jemalloc's jeprof profiler script
+%global __requires_exclude_from %{_libdir}/%{pkgname}/bin/jeprof
 
 # Force to require nss version greater or equal as the version available at the build time
 # See bz1986327
@@ -78,25 +96,22 @@ ExcludeArch: i686
 
 Summary:          389 Directory Server (%{variant})
 Name:             389-ds-base
-Version:          3.2.2
+Version:          3.2.3%{?prerel}
 Release:          %{autorelease -n %{?with_asan:-e asan}}%{?dist}
-License:          GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (CC-BY-4.0 AND MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR Unlicense) AND 0BSD AND Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MIT AND ISC AND MPL-2.0 AND Zlib
+License:          GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT) AND Unicode-3.0 AND (CC-BY-4.0 AND MIT) AND (MIT OR Unlicense) AND 0BSD AND Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MIT AND ISC AND MPL-2.0 AND Zlib
 URL:              https://www.port389.org
-Obsoletes:        %{name}-legacy-tools < 1.4.4.6
-Obsoletes:        %{name}-legacy-tools-debuginfo < 1.4.4.6
-Provides:         ldif2ldbm >= 0
 
 ##### Bundled cargo crates list - START #####
 Provides:  bundled(crate(allocator-api2)) = 0.2.21
 Provides:  bundled(crate(anyhow)) = 1.0.102
 Provides:  bundled(crate(atty)) = 0.2.14
-Provides:  bundled(crate(autocfg)) = 1.5.1
-Provides:  bundled(crate(base64)) = 0.13.1
-Provides:  bundled(crate(bitflags)) = 2.12.1
-Provides:  bundled(crate(bumpalo)) = 3.20.3
+Provides:  bundled(crate(autocfg)) = 1.5.0
+Provides:  bundled(crate(base64)) = 0.23.0
+Provides:  bundled(crate(bitflags)) = 2.11.0
+Provides:  bundled(crate(bumpalo)) = 3.20.2
 Provides:  bundled(crate(byteorder)) = 1.5.0
 Provides:  bundled(crate(cbindgen)) = 0.26.0
-Provides:  bundled(crate(cc)) = 1.2.63
+Provides:  bundled(crate(cc)) = 1.2.56
 Provides:  bundled(crate(cfg-if)) = 1.0.4
 Provides:  bundled(crate(clap)) = 3.2.25
 Provides:  bundled(crate(clap_lex)) = 0.2.4
@@ -106,74 +121,70 @@ 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.14
-Provides:  bundled(crate(fastrand)) = 2.4.1
+Provides:  bundled(crate(fastrand)) = 2.3.0
 Provides:  bundled(crate(fernet)) = 0.1.4
 Provides:  bundled(crate(find-msvc-tools)) = 0.1.9
 Provides:  bundled(crate(foldhash)) = 0.2.0
 Provides:  bundled(crate(foreign-types)) = 0.3.2
 Provides:  bundled(crate(foreign-types-shared)) = 0.1.1
-Provides:  bundled(crate(futures-core)) = 0.3.32
-Provides:  bundled(crate(futures-task)) = 0.3.32
-Provides:  bundled(crate(futures-util)) = 0.3.32
-Provides:  bundled(crate(getrandom)) = 0.4.2
-Provides:  bundled(crate(hashbrown)) = 0.17.1
+Provides:  bundled(crate(getrandom)) = 0.4.1
+Provides:  bundled(crate(hashbrown)) = 0.16.1
 Provides:  bundled(crate(heck)) = 0.5.0
 Provides:  bundled(crate(hermit-abi)) = 0.1.19
 Provides:  bundled(crate(id-arena)) = 2.3.0
-Provides:  bundled(crate(indexmap)) = 2.14.0
-Provides:  bundled(crate(itoa)) = 1.0.18
+Provides:  bundled(crate(indexmap)) = 2.13.0
+Provides:  bundled(crate(itoa)) = 1.0.17
 Provides:  bundled(crate(jobserver)) = 0.1.34
-Provides:  bundled(crate(js-sys)) = 0.3.99
+Provides:  bundled(crate(js-sys)) = 0.3.95
 Provides:  bundled(crate(leb128fmt)) = 0.1.0
-Provides:  bundled(crate(libc)) = 0.2.186
-Provides:  bundled(crate(linux-raw-sys)) = 0.12.1
-Provides:  bundled(crate(log)) = 0.4.32
-Provides:  bundled(crate(lru)) = 0.16.4
-Provides:  bundled(crate(memchr)) = 2.8.1
-Provides:  bundled(crate(once_cell)) = 1.21.4
-Provides:  bundled(crate(openssl)) = 0.10.80
+Provides:  bundled(crate(libc)) = 0.2.182
+Provides:  bundled(crate(linux-raw-sys)) = 0.11.0
+Provides:  bundled(crate(log)) = 0.4.29
+Provides:  bundled(crate(lru)) = 0.16.3
+Provides:  bundled(crate(memchr)) = 2.8.0
+Provides:  bundled(crate(once_cell)) = 1.21.3
+Provides:  bundled(crate(openssl)) = 0.10.79
 Provides:  bundled(crate(openssl-macros)) = 0.1.1
-Provides:  bundled(crate(openssl-sys)) = 0.9.116
+Provides:  bundled(crate(openssl-sys)) = 0.9.115
 Provides:  bundled(crate(os_str_bytes)) = 6.6.1
 Provides:  bundled(crate(paste)) = 1.0.15
-Provides:  bundled(crate(pin-project-lite)) = 0.2.17
-Provides:  bundled(crate(pkg-config)) = 0.3.33
+Provides:  bundled(crate(pin-project-lite)) = 0.2.16
+Provides:  bundled(crate(pkg-config)) = 0.3.32
 Provides:  bundled(crate(prettyplease)) = 0.2.37
 Provides:  bundled(crate(proc-macro2)) = 1.0.106
-Provides:  bundled(crate(quote)) = 1.0.45
-Provides:  bundled(crate(r-efi)) = 6.0.0
-Provides:  bundled(crate(rustix)) = 1.1.4
+Provides:  bundled(crate(quote)) = 1.0.44
+Provides:  bundled(crate(r-efi)) = 5.3.0
+Provides:  bundled(crate(rustix)) = 1.1.3
 Provides:  bundled(crate(rustversion)) = 1.0.22
-Provides:  bundled(crate(semver)) = 1.0.28
+Provides:  bundled(crate(semver)) = 1.0.27
 Provides:  bundled(crate(serde)) = 1.0.228
 Provides:  bundled(crate(serde_core)) = 1.0.228
 Provides:  bundled(crate(serde_derive)) = 1.0.228
-Provides:  bundled(crate(serde_json)) = 1.0.150
-Provides:  bundled(crate(shlex)) = 2.0.1
-Provides:  bundled(crate(slab)) = 0.4.12
+Provides:  bundled(crate(serde_json)) = 1.0.149
+Provides:  bundled(crate(shlex)) = 1.3.0
 Provides:  bundled(crate(smallvec)) = 1.15.1
 Provides:  bundled(crate(sptr)) = 0.3.2
 Provides:  bundled(crate(strsim)) = 0.10.0
 Provides:  bundled(crate(syn)) = 2.0.117
-Provides:  bundled(crate(tempfile)) = 3.27.0
+Provides:  bundled(crate(tempfile)) = 3.25.0
 Provides:  bundled(crate(termcolor)) = 1.4.1
 Provides:  bundled(crate(textwrap)) = 0.16.2
-Provides:  bundled(crate(tokio)) = 1.52.3
+Provides:  bundled(crate(tokio)) = 1.49.0
 Provides:  bundled(crate(toml)) = 0.5.11
 Provides:  bundled(crate(tracing)) = 0.1.44
 Provides:  bundled(crate(tracing-attributes)) = 0.1.31
 Provides:  bundled(crate(tracing-core)) = 0.1.36
 Provides:  bundled(crate(unicode-ident)) = 1.0.24
 Provides:  bundled(crate(unicode-xid)) = 0.2.6
-Provides:  bundled(crate(uuid)) = 1.23.2
+Provides:  bundled(crate(uuid)) = 1.23.1
 Provides:  bundled(crate(vcpkg)) = 0.2.15
 Provides:  bundled(crate(wasi)) = 0.11.1+wasi_snapshot_preview1
-Provides:  bundled(crate(wasip2)) = 1.0.3+wasi_0.2.9
+Provides:  bundled(crate(wasip2)) = 1.0.2+wasi_0.2.9
 Provides:  bundled(crate(wasip3)) = 0.4.0+wasi_0.3.0_rc_2026_01_06
-Provides:  bundled(crate(wasm-bindgen)) = 0.2.122
-Provides:  bundled(crate(wasm-bindgen-macro)) = 0.2.122
-Provides:  bundled(crate(wasm-bindgen-macro-support)) = 0.2.122
-Provides:  bundled(crate(wasm-bindgen-shared)) = 0.2.122
+Provides:  bundled(crate(wasm-bindgen)) = 0.2.118
+Provides:  bundled(crate(wasm-bindgen-macro)) = 0.2.118
+Provides:  bundled(crate(wasm-bindgen-macro-support)) = 0.2.118
+Provides:  bundled(crate(wasm-bindgen-shared)) = 0.2.118
 Provides:  bundled(crate(wasm-encoder)) = 0.244.0
 Provides:  bundled(crate(wasm-metadata)) = 0.244.0
 Provides:  bundled(crate(wasmparser)) = 0.244.0
@@ -183,7 +194,7 @@ Provides:  bundled(crate(winapi-util)) = 0.1.11
 Provides:  bundled(crate(winapi-x86_64-pc-windows-gnu)) = 0.4.0
 Provides:  bundled(crate(windows-link)) = 0.2.1
 Provides:  bundled(crate(windows-sys)) = 0.61.2
-Provides:  bundled(crate(wit-bindgen)) = 0.57.1
+Provides:  bundled(crate(wit-bindgen)) = 0.51.0
 Provides:  bundled(crate(wit-bindgen-core)) = 0.51.0
 Provides:  bundled(crate(wit-bindgen-rust)) = 0.51.0
 Provides:  bundled(crate(wit-bindgen-rust-macro)) = 0.51.0
@@ -295,7 +306,8 @@ Provides:  bundled(npm(victory-voronoi-container)) = 37.3.6
 Provides:  bundled(npm(victory-zoom-container)) = 37.3.6
 ##### Bundled cargo crates list - END #####
 
-# Attach the buildrequires to the top level package:
+
+# BuildRequires for the main package:
 BuildRequires:    nspr-devel
 BuildRequires:    nss-devel >= 3.34
 BuildRequires:    openldap-clients
@@ -308,6 +320,7 @@ BuildRequires:    pcre2-devel
 BuildRequires:    cracklib-devel
 BuildRequires:    json-c-devel
 BuildRequires:    libxcrypt-devel
+BuildRequires:    zlib-devel
 %if %{with clang}
 BuildRequires:    libatomic
 BuildRequires:    clang
@@ -332,35 +345,39 @@ BuildRequires:    libdb-devel
 %endif
 %endif
 
-# The following are needed to build the snmp ldap-agent
+# For SNMP ldap-agent
 BuildRequires:    net-snmp-devel
 BuildRequires:    bzip2-devel
 BuildRequires:    openssl-devel
+# For HIBP password breach checking
 %if %{with hibp}
 BuildRequires:    libcurl-devel
 %endif
-# the following is for the pam passthru auth plug-in
+# For PAM passthru auth plug-in
 BuildRequires:    pam-devel
 BuildRequires:    systemd-units
 BuildRequires:    systemd-devel
 BuildRequires:    systemd-rpm-macros
 %{?sysusers_requires_compat}
+%if %{with usdt}
+BuildRequires:    systemtap-sdt-devel
+%endif
 BuildRequires:    cargo
 BuildRequires:    rust
 BuildRequires:    pkgconfig
 BuildRequires:    pkgconfig(systemd)
 BuildRequires:    pkgconfig(krb5)
 BuildRequires:    pkgconfig(libpcre2-8)
-# Needed to support regeneration of the autotool artifacts.
+# For autotools regeneration
 BuildRequires:    autoconf
 BuildRequires:    automake
 BuildRequires:    libtool
 BuildRequires:    make
-# For our documentation
+# For doxygen documentation
 BuildRequires:    doxygen
-# For tests!
+# For cmocka unit tests
 BuildRequires:    libcmocka-devel
-# For lib389 and related components.
+# For lib389
 BuildRequires:    python%{python3_pkgversion}-devel
 
 # For cockpit
@@ -370,29 +387,36 @@ BuildRequires:    /usr/bin/npm
 BuildRequires:    /usr/bin/node
 %endif
 
-# For autosetup -S git
-BuildRequires:    git
-
+# Runtime requires for the main package
 Requires:         %{name}-libs = %{version}-%{release}
 Requires:         python%{python3_pkgversion}-lib389 = %{version}-%{release}
 
-# this is needed for using semanage from our setup scripts
+# For semanage in setup scripts
 Requires:         policycoreutils-python-utils
 Requires:         libsemanage-python%{python3_pkgversion}
-# the following are needed for some of our scripts
+# NoNewPrivileges support in dirsrv service units requires
+# selinux-policy with init_nnp_daemon_domain for dirsrv_t.
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=2457951
+%if 0%{?rhel} == 10
+Requires:         selinux-policy >= 42.1.22-1
+%endif
+%if 0%{?fedora} == 43
+Requires:         selinux-policy >= 43.7-1
+%endif
+%if 0%{?fedora} == 44
+Requires:         selinux-policy >= 44.1-1
+%endif
+# For CLI scripts
 Requires:         openldap-clients
 Requires:         acl
-# this is needed to setup SSL if you are not using the
-# administration server package
+# For SSL/TLS setup
 Requires:         nss-tools
 %dirsrv_requires_ge nss
-# these are not found by the auto-dependency method
-# they are required to support the mandatory LDAP SASL mechs
+# Mandatory LDAP SASL mechanisms
 Requires:         cyrus-sasl-gssapi
 Requires:         cyrus-sasl-md5
-# This is optionally supported by us, as we use it in our tests
 Requires:         cyrus-sasl-plain
-# this is needed for backldbm
+# For back-ldbm
 %if %{with libbdb_ro}
 Requires:         %{name}-robdb-libs = %{version}-%{release}
 %else
@@ -401,44 +425,41 @@ Requires:         libdb
 %endif
 %endif
 Requires:         lmdb-libs
-# Needed by logconv.pl
-%if %{without libbdb_ro}
-%if %{without bundle_libdb}
-Requires:         perl-DB_File
-%endif
-%endif
-Requires:         perl-Archive-Tar
-%if 0%{?fedora} >= 33 || 0%{?rhel} >= 9
-Requires:         perl-debugger
-Requires:         perl-sigtrap
-%endif
+
 # Needed for password dictionary checks
 Requires:         cracklib-dicts
 Requires:         json-c
-# Log compression
-Requires:         zlib-devel
 # logconv.py, MIME type
 Requires:         python3-file-magic
 # Picks up our systemd deps.
 %{?systemd_requires}
+# Ensure sysusers are created
+%{?sysusers_requires_compat}
+
+%if %{with usdt}
+# Optional eBPF tracer for the shipped USDT bpftrace scripts.
+# Use Suggests so it is not installed by default (debug-only, pulls in gcc).
+Suggests:         bpftrace
+%endif
+
 
-Source0:          https://github.com/389ds/%{name}/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2
+Source0:          %{name}-%{version}.tar.bz2
 Source2:          %{name}-devel.README
 %if %{with bundle_jemalloc}
 Source3:          https://github.com/jemalloc/%{jemalloc_name}/releases/download/%{jemalloc_ver}/%{jemalloc_name}-%{jemalloc_ver}.tar.bz2
-Source10:          jemalloc-5.3.0_throw_bad_alloc.patch
-%endif
-Source4:          389-ds-base.sysusers
-%if %{with bundle_libdb}
-Source5:          https://fedorapeople.org/groups/389ds/libdb-5.3.28-59.tar.bz2
+Source5:          jemalloc-5.3.0_throw_bad_alloc.patch
 %endif
+Source4:          https://fedorapeople.org/groups/389ds/libdb-5.3.28-59.tar.bz2
 
-Source6:          vendor-%{version}-1.tar.gz
-Source7:          Cargo-%{version}-1.lock
-Source8:          cockpit_dist-%{version}-1.tar.bz2
+# To override vendor/Cargo.lock/cockpit_dist from the upstream tarball
+# with separately uploaded sources
+# uncomment and replace double percent with a single one
+#Source6:          vendor-%%{version}-1.tar.gz
+#Source7:          Cargo-%%{version}-1.lock
+#Source8:          cockpit_dist-%%{version}-1.tar.bz2
 
 %description
-389 Directory Server is an LDAPv3 compliant server.  The base package includes
+389 Directory Server is an LDAPv3 compliant server. The base package includes
 the LDAP server and command line utilities for server administration.
 %if %{with asan}
 WARNING! This build is linked to Address Sanitisation libraries. This probably
@@ -449,7 +470,7 @@ Please see http://seclists.org/oss-sec/2016/q1/363 for more information.
 %if %{with libbdb_ro}
 %package        robdb-libs
 Summary:        Read-only Berkeley Database Library
-License:          GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (CC-BY-4.0 AND MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR Unlicense) AND 0BSD AND Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MIT AND ISC AND MPL-2.0 AND Zlib
+License:          GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT) AND Unicode-3.0 AND (CC-BY-4.0 AND MIT) AND (MIT OR Unlicense) AND 0BSD AND Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MIT AND ISC AND MPL-2.0 AND Zlib
 
 %description    robdb-libs
 The %{name}-robdb-lib package contains a library derived from rpm
@@ -460,16 +481,13 @@ some basic functions to search and read Berkeley Database records
 
 %package          libs
 Summary:          Core libraries for 389 Directory Server (%{variant})
-Provides:         svrcore = 4.1.4
-Obsoletes:        svrcore <= 4.1.3
-Conflicts:        svrcore
 %dirsrv_requires_ge nss
 Requires:         nspr
 Requires:         openldap
 Requires:         systemd-libs
-# Pull in sasl
+# SASL
 Requires:         cyrus-sasl-lib
-# KRB
+# Kerberos
 Requires:         krb5-libs
 %if %{with clang}
 Requires:         llvm
@@ -493,60 +511,90 @@ package to be installed with just the -libs package and without the main package
 
 %package          devel
 Summary:          Development libraries for 389 Directory Server (%{variant})
-Provides:         svrcore-devel = 4.1.4
-Obsoletes:        svrcore-devel <= 4.1.3
-Conflicts:        svrcore-devel
 Requires:         %{name}-libs = %{version}-%{release}
 Requires:         pkgconfig
 Requires:         nspr-devel
 Requires:         nss-devel >= 3.34
 Requires:         openldap-devel
-# systemd-libs contains the headers iirc.
+# For systemd headers
 Requires:         systemd-libs
 
 %description      devel
 Development Libraries and headers for the 389 Directory Server base package.
 
+
 %package          snmp
 Summary:          SNMP Agent for 389 Directory Server
 Requires:         %{name} = %{version}-%{release}
 
-Obsoletes:        %{name} <= 1.4.0.0
-
 %description      snmp
 SNMP Agent for the 389 Directory Server base package.
 
+%if %{with logconvpl}
+%package          logconv-perl
+Summary:          Legacy Perl log analyzer for 389 Directory Server
+Requires:         %{name} = %{version}-%{release}
+%if %{without libbdb_ro}
+%if %{without bundle_libdb}
+Requires:         perl-DB_File
+%endif
+%endif
+Requires:         perl-Archive-Tar
+Requires:         perl-debugger
+Requires:         perl-sigtrap
+Provides:         deprecated()
+
+%description      logconv-perl
+Legacy Perl log analyzer (logconv.pl) for 389 Directory Server.
+This tool is deprecated, use logconv.py instead.
+%endif
+
 %if %{with bundle_libdb}
 %package          bdb
 Summary:          Berkeley Database backend for 389 Directory Server
-%description      bdb
-Berkeley Database backend for 389 Directory Server
-Warning! This backend is deprecated in favor of lmdb and its support
-may be removed in future versions.
 
 Requires:         %{name} = %{version}-%{release}
+Requires:         %{name}-libs = %{version}-%{release}
 # Berkeley DB database libdb was marked as deprecated since F40:
 # https://fedoraproject.org/wiki/Changes/389_Directory_Server_3.0.0
 # because libdb was marked as deprecated since F33
 # https://fedoraproject.org/wiki/Changes/Libdb_deprecated
 Provides:         deprecated()
-%endif
 
+%description      bdb
+Berkeley Database backend for 389 Directory Server
+Warning! This backend is deprecated in favor of lmdb and its support
+may be removed in future versions.
+%endif
 
 %package -n python%{python3_pkgversion}-lib389
 Summary:  A library for accessing, testing, and configuring the 389 Directory Server
 BuildArch:        noarch
 Requires: %{name} = %{version}-%{release}
 Requires: openssl
-# This is for /usr/bin/c_rehash tool, only needed for openssl < 1.1.0
-Requires: openssl-perl
 Requires: iproute
 Requires: python%{python3_pkgversion}-libselinux
 Recommends: bash-completion
 
 %description -n python%{python3_pkgversion}-lib389
 This module contains tools and libraries for accessing, testing,
- and configuring the 389 Directory Server.
+and configuring the 389 Directory Server.
+
+%if %{with repl_reports}
+%package -n python%{python3_pkgversion}-lib389-repl-reports
+Summary: HTML and PNG report generation for 389 Directory Server replication monitoring tools
+BuildArch: noarch
+Requires: python%{python3_pkgversion}-lib389 = %{version}-%{release}
+Requires: python%{python3_pkgversion}-plotly
+Requires: python%{python3_pkgversion}-matplotlib
+
+%description -n python%{python3_pkgversion}-lib389-repl-reports
+Extended reporting capabilities for 389 Directory Server replication analysis.
+This package provides additional report formats (HTML and PNG) with interactive
+visualizations and graphs for replication lag analysis. These formats require
+additional dependencies and are optional - the base package supports CSV
+reports without this extension.
+%endif
 
 %if %{with cockpit}
 %package -n cockpit-389-ds
@@ -568,7 +616,7 @@ cd src/lib389
 %pyproject_buildrequires -g test
 
 %prep
-%autosetup -S git -p1 -n %{name}-%{version}
+%autosetup -p1 -n %{name}-%{version}
 %if %{defined SOURCE6}
 rm -rf vendor
 tar xzf %{SOURCE6}
@@ -582,7 +630,7 @@ cp %{SOURCE7} src/Cargo.lock
 %endif
 
 %if %{with bundle_libdb}
-%setup -q -n %{name}-%{version} -T -D -b 5
+%setup -q -n %{name}-%{version} -T -D -b 4
 %endif
 
 %if %{defined SOURCE8}
@@ -593,15 +641,10 @@ tar xvjf %{SOURCE8} -C src/cockpit/389-console
 cp %{SOURCE2} README.devel
 
 %build
-# Workaround until https://github.com/389ds/389-ds-base/issues/6476 is fixed
-export CFLAGS="%{optflags} -std=gnu17"
-
 %if %{with clang}
 CLANG_FLAGS="--enable-clang"
 %endif
 
-%{?with_tmpfiles_d: TMPFILES_FLAG="--with-tmpfiles-d=%{with_tmpfiles_d}"}
-
 %if %{with asan}
 ASAN_FLAGS="--enable-asan --enable-debug"
 %endif
@@ -624,6 +667,12 @@ RUST_FLAGS="--enable-rust --enable-rust-offline"
 COCKPIT_FLAGS="--disable-cockpit"
 %endif
 
+%if %{with usdt}
+USDT_FLAGS="--enable-usdt"
+%else
+USDT_FLAGS="--disable-usdt"
+%endif
+
 %if %{with bundle_jemalloc}
 # Override page size, bz #1545539
 # 4K
@@ -644,7 +693,7 @@ COCKPIT_FLAGS="--disable-cockpit"
 
 # Build jemalloc
 pushd ../%{jemalloc_name}-%{jemalloc_ver}
-patch -p1 -F3 < %{SOURCE10}
+patch -p1 -F3 < %{SOURCE5}
 %configure \
         --libdir=%{_libdir}/%{pkgname}/lib \
         --bindir=%{_libdir}/%{pkgname}/bin \
@@ -657,14 +706,16 @@ popd
 %if %{with bundle_libdb}
 mkdir -p ../%{libdb_base_version}
 pushd ../%{libdb_base_version}
-tar -xjf  %{_topdir}/SOURCES/%{libdb_full_version}.tar.bz2
+tar -xjf %{_topdir}/SOURCES/%{libdb_full_version}.tar.bz2
 mv %{libdb_full_version} SOURCES
+%if 0%{?fedora}
 sed -i -e '/^CFLAGS=/s/-fno-strict-aliasing/& -std=gnu99/' %{_builddir}/%{name}-%{version}/rpm/bundle-libdb.spec.in
+%endif
 rpmbuild  --define "_topdir $PWD" -bc %{_builddir}/%{name}-%{version}/rpm/bundle-libdb.spec.in
 popd
 %endif
 
-# Rebuild the autotool artifacts now.
+# Rebuild autotools artifacts
 autoreconf -fiv
 
 %configure \
@@ -676,26 +727,15 @@ autoreconf -fiv
 %if %{with bundle_libdb}
            --with-bundle-libdb=%{_builddir}/%{libdb_base_version}/BUILD/%{libdb_base_dir}/dist/dist-tls \
 %endif
-           --with-selinux $TMPFILES_FLAG \
+           --with-selinux \
            --with-systemd \
-           --with-systemdsystemunitdir=%{_unitdir} \
-           --with-systemdsystemconfdir=%{_sysconfdir}/systemd/system \
-           --with-systemdgroupname=%{groupname} \
-           --libexecdir=%{_libexecdir}/%{pkgname} \
-           $ASAN_FLAGS $MSAN_FLAGS $TSAN_FLAGS $UBSAN_FLAGS $RUST_FLAGS $CLANG_FLAGS $COCKPIT_FLAGS \
-%if 0%{?fedora} >= 34 || 0%{?rhel} >= 9
+           $ASAN_FLAGS $MSAN_FLAGS $TSAN_FLAGS $UBSAN_FLAGS $RUST_FLAGS $CLANG_FLAGS $COCKPIT_FLAGS $USDT_FLAGS \
            --with-libldap-r=no \
-%endif
 %if %{with hibp}
-	  --enable-hibp \
+           --enable-hibp \
 %endif
            --enable-cmocka
 
-# Avoid "Unknown key name 'XXX' in section 'Service', ignoring." warnings from systemd on older releases
-%if 0%{?rhel} && 0%{?rhel} < 9
-  sed -r -i '/^(Protect(Home|Hostname|KernelLogs)|PrivateMounts)=/d' %{_builddir}/%{name}-%{version}/wrappers/*.service.in
-%endif
-
 # lib389
 pushd ./src/lib389
 %{python3} validate_version.py --update
@@ -703,7 +743,7 @@ pushd ./src/lib389
 popd
 
 # Generate symbolic info for debuggers
-export XCFLAGS=$RPM_OPT_FLAGS
+export XCFLAGS="%{optflags}"
 
 %make_build
 
@@ -726,11 +766,16 @@ sed -i -e "/libback-bdb/d" plugins.list
 %endif
 
 # Copy in our docs from doxygen.
-cp -r %{_builddir}/%{name}-%{version}/man/man3 $RPM_BUILD_ROOT/%{_mandir}/man3
+cp -r %{_builddir}/%{name}-%{version}/man/man3 %{buildroot}/%{_mandir}/man3
 
 # lib389
 pushd src/lib389
 %pyproject_install
+%if 0%{?fedora} <= 41 || (0%{?rhel} && 0%{?rhel} <= 10)
+for clitool in dsconf dscreate dsctl dsidm openldap_to_ds; do
+    mv %{buildroot}%{_bindir}/$clitool %{buildroot}%{_sbindir}/
+done
+%endif
 %pyproject_save_files -l lib389
 popd
 
@@ -741,26 +786,25 @@ do
     install -p -m 0644 -D -t '%{buildroot}%{bash_completions_dir}' "${clitool}"
 done
 
-mkdir -p $RPM_BUILD_ROOT/var/log/%{pkgname}
-mkdir -p $RPM_BUILD_ROOT/var/lib/%{pkgname}
-mkdir -p $RPM_BUILD_ROOT/var/lock/%{pkgname} \
-    && chmod 770 $RPM_BUILD_ROOT/var/lock/%{pkgname}
+mkdir -p %{buildroot}/var/log/%{pkgname}
+mkdir -p %{buildroot}/var/lib/%{pkgname}
+mkdir -p %{buildroot}/var/lock/%{pkgname} \
+    && chmod 770 %{buildroot}/var/lock/%{pkgname}
 
-# for systemd
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/%{groupname}.wants
-install -p -D -m 0644 %{SOURCE4} %{buildroot}%{_sysusersdir}/389-ds-base.conf
+# For systemd
+mkdir -p %{buildroot}%{_sysconfdir}/systemd/system/%{groupname}.wants
 
-#remove libtool and static libs
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{pkgname}/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{pkgname}/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{pkgname}/plugins/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{pkgname}/plugins/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/libsvrcore.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/libsvrcore.la
+# Remove libtool and static libs
+rm -f %{buildroot}%{_libdir}/%{pkgname}/*.a
+rm -f %{buildroot}%{_libdir}/%{pkgname}/*.la
+rm -f %{buildroot}%{_libdir}/%{pkgname}/plugins/*.a
+rm -f %{buildroot}%{_libdir}/%{pkgname}/plugins/*.la
+rm -f %{buildroot}%{_libdir}/libsvrcore.a
+rm -f %{buildroot}%{_libdir}/libsvrcore.la
 
 %if %{with bundle_jemalloc}
 pushd ../%{jemalloc_name}-%{jemalloc_ver}
-make DESTDIR="$RPM_BUILD_ROOT" install_lib install_bin
+make DESTDIR="%{buildroot}" install_lib install_bin
 cp -pa COPYING ../%{name}-%{version}/COPYING.jemalloc
 cp -pa README ../%{name}-%{version}/README.jemalloc
 popd
@@ -773,7 +817,7 @@ libdbdestdir=$PWD/../%{name}-%{version}
 cp -pa $libdbbuilddir/LICENSE $libdbdestdir/LICENSE.libdb
 cp -pa $libdbbuilddir/README $libdbdestdir/README.libdb
 cp -pa $libdbbuilddir/lgpl-2.1.txt $libdbdestdir/lgpl-2.1.txt.libdb
-cp -pa $libdbbuilddir/dist/dist-tls/.libs/%{libdb_bundle_name} $RPM_BUILD_ROOT%{_libdir}/%{pkgname}/%{libdb_bundle_name}
+cp -pa $libdbbuilddir/dist/dist-tls/.libs/%{libdb_bundle_name} %{buildroot}%{_libdir}/%{pkgname}/%{libdb_bundle_name}
 popd
 %endif
 
@@ -794,12 +838,12 @@ popd
 %endif
 
 %check
-# This checks the code, if it fails it prints why, then re-raises the fail to shortcircuit the rpm build.
+# Run cmocka unit tests
 %if %{with tsan}
 export TSAN_OPTIONS=print_stacktrace=1:second_deadlock_stack=1:history_size=7
 %endif
 %if %{without asan} && %{without msan}
-if ! make DESTDIR="$RPM_BUILD_ROOT" check; then cat ./test-suite.log && false; fi
+if ! make DESTDIR="%{buildroot}" check; then cat ./test-suite.log && false; fi
 %endif
 
 # Check import for lib389 modules
@@ -808,19 +852,17 @@ if ! make DESTDIR="$RPM_BUILD_ROOT" check; then cat ./test-suite.log && false; f
 %post
 if [ -n "$DEBUGPOSTTRANS" ] ; then
     output=$DEBUGPOSTTRANS
-    output2=${DEBUGPOSTTRANS}.upgrade
 else
     output=/dev/null
-    output2=/dev/null
 fi
 
-# reload to pick up any changes to systemd files
+# Reload to pick up any changes to systemd files
 /bin/systemctl daemon-reload >$output 2>&1 || :
 
-# Reload our sysctl before we restart (if we can)
-sysctl --system &> $output; true
+# Reload sysctl before restarting instances
+sysctl --system &> "$output"; true
 
-# Gather running instances, stop them, run index-check, then restart
+# Gather running instances, stop and restart them
 instbase="%{_sysconfdir}/%{pkgname}"
 instances=""
 ninst=0
@@ -831,7 +873,6 @@ for dir in "$instbase"/slapd-* ; do
     case "$dir" in *.removed) continue ;; esac
     basename=$(basename "$dir")
     inst="%{pkgname}@${basename#slapd-}"
-    inst_name="${basename#slapd-}"
     echo "found instance $inst - getting status" >> "$output" 2>&1 || :
     if /bin/systemctl -q is-active "$inst" ; then
        echo "instance $inst is running - stopping for upgrade" >> "$output" 2>&1 || :
@@ -874,6 +915,7 @@ fi
 %postun snmp
 %systemd_postun_with_restart %{pkgname}-snmp.service
 
+
 %files -f plugins.list
 %if %{with bundle_jemalloc}
 %doc LICENSE LICENSE.GPLv3+ LICENSE.openssl README.jemalloc
@@ -886,7 +928,7 @@ fi
 %config(noreplace)%{_sysconfdir}/%{pkgname}/schema/*.ldif
 %dir %{_sysconfdir}/%{pkgname}/config
 %dir %{_sysconfdir}/systemd/system/%{groupname}.wants
-%{_sysusersdir}/389-ds-base.conf
+%{_sysusersdir}/%{name}.conf
 %config(noreplace)%{_sysconfdir}/%{pkgname}/config/slapd-collations.conf
 %config(noreplace)%{_sysconfdir}/%{pkgname}/config/certmap.conf
 %{_datadir}/%{pkgname}
@@ -901,8 +943,6 @@ fi
 %{_mandir}/man1/ds-logpipe.py.1.gz
 %{_bindir}/ldclt
 %{_mandir}/man1/ldclt.1.gz
-%{_bindir}/logconv.pl
-%{_mandir}/man1/logconv.pl.1.gz
 %{_bindir}/logconv.py
 %{_mandir}/man1/logconv.py.1.gz
 %{_bindir}/pwdhash
@@ -920,8 +960,6 @@ fi
 %{_mandir}/man5/dirsrv.systemd.5.gz
 %{_libdir}/%{pkgname}/python
 %dir %{_libdir}/%{pkgname}/plugins
-# This has to be hardcoded to /lib - $libdir changes between lib/lib64, but
-# sysctl.d is always in /lib.
 %{_prefix}/lib/sysctl.d/*
 %dir %{_localstatedir}/lib/%{pkgname}
 %dir %{_localstatedir}/log/%{pkgname}
@@ -929,6 +967,8 @@ fi
 %exclude %{_sbindir}/ldap-agent*
 %exclude %{_mandir}/man1/ldap-agent.1.gz
 %exclude %{_unitdir}/%{pkgname}-snmp.service
+%exclude %{_bindir}/logconv.pl
+%exclude %{_mandir}/man1/logconv.pl.1.gz
 %if %{with bundle_jemalloc}
 %{_libdir}/%{pkgname}/lib/
 %{_libdir}/%{pkgname}/bin/
@@ -985,11 +1025,19 @@ fi
 %doc src/lib389/README.md
 %license LICENSE LICENSE.GPLv3+
 # Binaries
+%if 0%{?fedora} >= 42 || 0%{?rhel} >= 11
 %{_bindir}/dsconf
 %{_bindir}/dscreate
 %{_bindir}/dsctl
 %{_bindir}/dsidm
 %{_bindir}/openldap_to_ds
+%else
+%{_sbindir}/dsconf
+%{_sbindir}/dscreate
+%{_sbindir}/dsctl
+%{_sbindir}/dsidm
+%{_sbindir}/openldap_to_ds
+%endif
 %{_libexecdir}/%{pkgname}/dscontainer
 # Man pages
 %{_mandir}/man8/dsconf.8.gz
@@ -1004,6 +1052,17 @@ fi
 %{bash_completions_dir}/dscreate
 %{bash_completions_dir}/dsidm
 
+%if %{with logconvpl}
+%files logconv-perl
+%{_bindir}/logconv.pl
+%{_mandir}/man1/logconv.pl.1.gz
+%endif
+
+%if %{with repl_reports}
+%files -n python%{python3_pkgversion}-lib389-repl-reports
+# No files needed as this is just a meta-package for dependencies
+%endif
+
 %if %{with cockpit}
 %files -n cockpit-389-ds -f cockpit.list
 %{_datarootdir}/metainfo/389-console/org.port389.cockpit_console.metainfo.xml
@@ -1023,3 +1082,4 @@ fi
 
 %changelog
 %autochangelog
+

diff --git a/389-ds-base.sysusers b/389-ds-base.sysusers
deleted file mode 100644
index 32a3452..0000000
--- a/389-ds-base.sysusers
+++ /dev/null
@@ -1,3 +0,0 @@
-#Type Name     ID             GECOS                   Home directory       Shell
-g     dirsrv   389
-u     dirsrv   389:389        "user for 389-ds-base"  /usr/share/dirsrv/   /sbin/nologin

diff --git a/sources b/sources
index a4371cf..be05611 100644
--- a/sources
+++ b/sources
@@ -4,3 +4,4 @@ SHA512 (389-ds-base-3.2.2.tar.bz2) = 392d20bd016aa47884de256085c8bc74649559f81c9
 SHA512 (vendor-3.2.2-1.tar.gz) = adc2c52745c6659d9142edb32b7077f317a2bf3e77873d4cff799ffd33b8546c3018601ebd67e1790afa5b8c4074b031fa12fa3d55af02803f5a3dc849c319d9
 SHA512 (Cargo-3.2.2-1.lock) = 3fee255f1d8aef9d15d53cc44a824dbe9a6a96142393ee1c40bfd198a84be1b91b44923f140cac10408e593da261db3a0ad7f3f72d3f9498975138b3b67341f9
 SHA512 (cockpit_dist-3.2.2-1.tar.bz2) = 24b660f79564c515b0fca3df6bca485a6fe3b05d04be86dfd579f2e5b5453970f5ffeeb183ee19ceeb2a2617b9240147b328c96328f1cbb8a53dad1360b47d1c
+SHA512 (389-ds-base-3.2.3.tar.bz2) = 00ebbe44a3c055c1049ddef0b47eb3dde1f70a05febfb7632f3a7164be5f44e788d156fcac7902b22462d60cf5f1034ce52f94244b1344a559258388767cc158

                 reply	other threads:[~2026-09-07 13:35 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178878811483.1.15674295468499662104.rpms-389-ds-base-8880d88869d1@fedoraproject.org \
    --to=vashirov@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox