4a43a0
4a43a0
%global pkgname   dirsrv
4a43a0
%global srcname   389-ds-base
4a43a0
4a43a0
# Exclude i686 bit arches
4a43a0
ExcludeArch: i686
4a43a0
4a43a0
# for a pre-release, define the prerel field e.g. .a1 .rc2 - comment out for official release
4a43a0
# also remove the space between % and global - this space is needed because
4a43a0
# fedpkg verrel stupidly ignores comment lines
4a43a0
#% global prerel .rc3
4a43a0
# also need the relprefix field for a pre-release e.g. .0 - also comment out for official release
4a43a0
#% global relprefix 0.
4a43a0
4a43a0
# If perl-Socket-2.000 or newer is available, set 0 to use_Socket6.
4a43a0
%global use_Socket6 0
4a43a0
4a43a0
%global use_asan 0
b8da0b
%global use_rust 1
4a43a0
%global use_legacy 1
4a43a0
%global bundle_jemalloc 1
4a43a0
%if %{use_asan}
4a43a0
%global bundle_jemalloc 0
4a43a0
%endif
4a43a0
4a43a0
%if %{bundle_jemalloc}
4a43a0
%global jemalloc_name jemalloc
4a43a0
%global jemalloc_ver 5.2.1
4a43a0
%global __provides_exclude ^libjemalloc\\.so.*$
4a43a0
%endif
4a43a0
4a43a0
# Use Clang instead of GCC
4a43a0
%global use_clang 0
4a43a0
4a43a0
# fedora 15 and later uses tmpfiles.d
4a43a0
# otherwise, comment this out
4a43a0
%{!?with_tmpfiles_d: %global with_tmpfiles_d %{_sysconfdir}/tmpfiles.d}
4a43a0
4a43a0
# systemd support
4a43a0
%global groupname %{pkgname}.target
4a43a0
4a43a0
# set PIE flag
4a43a0
%global _hardened_build 1
4a43a0
b8da0b
# Filter argparse-manpage from autogenerated package Requires
b8da0b
%global __requires_exclude ^python.*argparse-manpage
b8da0b
4a43a0
Summary:          389 Directory Server (base)
4a43a0
Name:             389-ds-base
91ce38
Version:          1.4.3.23
038107
Release:          %{?relprefix}10%{?prerel}%{?dist}
4a43a0
License:          GPLv3+
4a43a0
URL:              https://www.port389.org
4a43a0
Group:            System Environment/Daemons
4a43a0
Conflicts:        selinux-policy-base < 3.9.8
4a43a0
Conflicts:        freeipa-server < 4.0.3
4a43a0
Obsoletes:        %{name} <= 1.4.0.9
4a43a0
Provides:         ldif2ldbm >= 0
4a43a0
91ce38
##### Bundled cargo crates list - START #####
91ce38
Provides:  bundled(crate(ansi_term)) = 0.11.0
91ce38
Provides:  bundled(crate(atty)) = 0.2.14
91ce38
Provides:  bundled(crate(autocfg)) = 1.0.1
91ce38
Provides:  bundled(crate(base64)) = 0.10.1
91ce38
Provides:  bundled(crate(bitflags)) = 1.2.1
91ce38
Provides:  bundled(crate(byteorder)) = 1.4.2
91ce38
Provides:  bundled(crate(cbindgen)) = 0.9.1
91ce38
Provides:  bundled(crate(cc)) = 1.0.66
91ce38
Provides:  bundled(crate(cfg-if)) = 0.1.10
91ce38
Provides:  bundled(crate(cfg-if)) = 1.0.0
91ce38
Provides:  bundled(crate(clap)) = 2.33.3
91ce38
Provides:  bundled(crate(fernet)) = 0.1.3
91ce38
Provides:  bundled(crate(foreign-types)) = 0.3.2
91ce38
Provides:  bundled(crate(foreign-types-shared)) = 0.1.1
91ce38
Provides:  bundled(crate(getrandom)) = 0.1.16
91ce38
Provides:  bundled(crate(hermit-abi)) = 0.1.17
91ce38
Provides:  bundled(crate(itoa)) = 0.4.7
91ce38
Provides:  bundled(crate(lazy_static)) = 1.4.0
91ce38
Provides:  bundled(crate(libc)) = 0.2.82
91ce38
Provides:  bundled(crate(librnsslapd)) = 0.1.0
91ce38
Provides:  bundled(crate(librslapd)) = 0.1.0
91ce38
Provides:  bundled(crate(log)) = 0.4.11
91ce38
Provides:  bundled(crate(openssl)) = 0.10.32
91ce38
Provides:  bundled(crate(openssl-sys)) = 0.9.60
91ce38
Provides:  bundled(crate(pkg-config)) = 0.3.19
91ce38
Provides:  bundled(crate(ppv-lite86)) = 0.2.10
91ce38
Provides:  bundled(crate(proc-macro2)) = 1.0.24
91ce38
Provides:  bundled(crate(quote)) = 1.0.8
91ce38
Provides:  bundled(crate(rand)) = 0.7.3
91ce38
Provides:  bundled(crate(rand_chacha)) = 0.2.2
91ce38
Provides:  bundled(crate(rand_core)) = 0.5.1
91ce38
Provides:  bundled(crate(rand_hc)) = 0.2.0
91ce38
Provides:  bundled(crate(redox_syscall)) = 0.1.57
91ce38
Provides:  bundled(crate(remove_dir_all)) = 0.5.3
91ce38
Provides:  bundled(crate(rsds)) = 0.1.0
91ce38
Provides:  bundled(crate(ryu)) = 1.0.5
91ce38
Provides:  bundled(crate(serde)) = 1.0.118
91ce38
Provides:  bundled(crate(serde_derive)) = 1.0.118
91ce38
Provides:  bundled(crate(serde_json)) = 1.0.61
91ce38
Provides:  bundled(crate(slapd)) = 0.1.0
91ce38
Provides:  bundled(crate(strsim)) = 0.8.0
91ce38
Provides:  bundled(crate(syn)) = 1.0.58
91ce38
Provides:  bundled(crate(tempfile)) = 3.1.0
91ce38
Provides:  bundled(crate(textwrap)) = 0.11.0
91ce38
Provides:  bundled(crate(toml)) = 0.5.8
91ce38
Provides:  bundled(crate(unicode-width)) = 0.1.8
91ce38
Provides:  bundled(crate(unicode-xid)) = 0.2.1
91ce38
Provides:  bundled(crate(vcpkg)) = 0.2.11
91ce38
Provides:  bundled(crate(vec_map)) = 0.8.2
91ce38
Provides:  bundled(crate(wasi)) = 0.9.0+wasi_snapshot_preview1
91ce38
Provides:  bundled(crate(winapi)) = 0.3.9
91ce38
Provides:  bundled(crate(winapi-i686-pc-windows-gnu)) = 0.4.0
91ce38
Provides:  bundled(crate(winapi-x86_64-pc-windows-gnu)) = 0.4.0
91ce38
##### Bundled cargo crates list - END #####
91ce38
4a43a0
BuildRequires:    nspr-devel
4a43a0
BuildRequires:    nss-devel >= 3.34
4a43a0
BuildRequires:    perl-generators
4a43a0
BuildRequires:    openldap-devel
4a43a0
BuildRequires:    libdb-devel
4a43a0
BuildRequires:    cyrus-sasl-devel
4a43a0
BuildRequires:    icu
4a43a0
BuildRequires:    libicu-devel
4a43a0
BuildRequires:    pcre-devel
4a43a0
BuildRequires:    cracklib-devel
4a43a0
%if %{use_clang}
4a43a0
BuildRequires:    libatomic
4a43a0
BuildRequires:    clang
4a43a0
%else
4a43a0
BuildRequires:    gcc
4a43a0
BuildRequires:    gcc-c++
4a43a0
%endif
4a43a0
# The following are needed to build the snmp ldap-agent
4a43a0
BuildRequires:    net-snmp-devel
4a43a0
BuildRequires:    lm_sensors-devel
4a43a0
BuildRequires:    bzip2-devel
4a43a0
BuildRequires:    zlib-devel
4a43a0
BuildRequires:    openssl-devel
4a43a0
# the following is for the pam passthru auth plug-in
4a43a0
BuildRequires:    pam-devel
4a43a0
BuildRequires:    systemd-units
4a43a0
BuildRequires:    systemd-devel
4a43a0
%if %{use_asan}
4a43a0
BuildRequires:    libasan
4a43a0
%endif
4a43a0
# If rust is enabled
4a43a0
%if %{use_rust}
4a43a0
BuildRequires: cargo
4a43a0
BuildRequires: rust
4a43a0
%endif
4a43a0
BuildRequires:    pkgconfig
4a43a0
BuildRequires:    pkgconfig(systemd)
4a43a0
BuildRequires:    pkgconfig(krb5)
4a43a0
4a43a0
# Needed to support regeneration of the autotool artifacts.
4a43a0
BuildRequires:    autoconf
4a43a0
BuildRequires:    automake
4a43a0
BuildRequires:    libtool
4a43a0
# For our documentation
4a43a0
BuildRequires:    doxygen
4a43a0
# For tests!
4a43a0
BuildRequires:    libcmocka-devel
4a43a0
BuildRequires:    libevent-devel
4a43a0
# For lib389 and related components
4a43a0
BuildRequires:    python%{python3_pkgversion}
4a43a0
BuildRequires:    python%{python3_pkgversion}-devel
4a43a0
BuildRequires:    python%{python3_pkgversion}-setuptools
4a43a0
BuildRequires:    python%{python3_pkgversion}-ldap
4a43a0
BuildRequires:    python%{python3_pkgversion}-six
4a43a0
BuildRequires:    python%{python3_pkgversion}-pyasn1
4a43a0
BuildRequires:    python%{python3_pkgversion}-pyasn1-modules
4a43a0
BuildRequires:    python%{python3_pkgversion}-dateutil
4a43a0
BuildRequires:    python%{python3_pkgversion}-argcomplete
4a43a0
BuildRequires:    python%{python3_pkgversion}-argparse-manpage
4a43a0
BuildRequires:    python%{python3_pkgversion}-policycoreutils
4a43a0
BuildRequires:    python%{python3_pkgversion}-libselinux
4a43a0
4a43a0
# For cockpit
4a43a0
BuildRequires:    rsync
4a43a0
4a43a0
Requires:         %{name}-libs = %{version}-%{release}
4a43a0
Requires:         python%{python3_pkgversion}-lib389 = %{version}-%{release}
4a43a0
4a43a0
# this is needed for using semanage from our setup scripts
4a43a0
Requires:         policycoreutils-python-utils
4a43a0
Requires:         /usr/sbin/semanage
4a43a0
Requires:         libsemanage-python%{python3_pkgversion}
4a43a0
4a43a0
Requires:         selinux-policy >= 3.14.1-29
4a43a0
4a43a0
# the following are needed for some of our scripts
4a43a0
Requires:         openldap-clients
4a43a0
Requires:         openssl-perl
4a43a0
Requires:         python%{python3_pkgversion}-ldap
4a43a0
4a43a0
# this is needed to setup SSL if you are not using the
4a43a0
# administration server package
4a43a0
Requires:         nss-tools
4a43a0
Requires:         nss >= 3.34
4a43a0
4a43a0
# these are not found by the auto-dependency method
4a43a0
# they are required to support the mandatory LDAP SASL mechs
4a43a0
Requires:         cyrus-sasl-gssapi
4a43a0
Requires:         cyrus-sasl-md5
4a43a0
Requires:         cyrus-sasl-plain
4a43a0
4a43a0
# this is needed for verify-db.pl
4a43a0
Requires:         libdb-utils
4a43a0
4a43a0
# Needed for password dictionary checks
4a43a0
Requires:         cracklib-dicts
4a43a0
4a43a0
# This picks up libperl.so as a Requires, so we add this versioned one
4a43a0
Requires:         perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
4a43a0
Requires:         perl-Errno >= 1.23-360
4a43a0
4a43a0
# Needed by logconv.pl
4a43a0
Requires:         perl-DB_File
4a43a0
Requires:         perl-Archive-Tar
4a43a0
4a43a0
# Needed for password dictionary checks
4a43a0
Requires:         cracklib-dicts
4a43a0
4a43a0
# Picks up our systemd deps.
4a43a0
%{?systemd_requires}
4a43a0
4a43a0
Obsoletes:        %{name} <= 1.3.5.4
4a43a0
4a43a0
Source0:          https://releases.pagure.org/389-ds-base/%{name}-%{version}.tar.bz2
4a43a0
# 389-ds-git.sh should be used to generate the source tarball from git
4a43a0
Source1:          %{name}-git.sh
4a43a0
Source2:          %{name}-devel.README
4a43a0
%if %{bundle_jemalloc}
4a43a0
Source3:          https://github.com/jemalloc/%{jemalloc_name}/releases/download/%{jemalloc_ver}/%{jemalloc_name}-%{jemalloc_ver}.tar.bz2
4a43a0
%endif
91ce38
%if %{use_rust}
91ce38
Source4:          vendor-%{version}-2.tar.gz
91ce38
Source5:          Cargo.lock
91ce38
%endif
91ce38
Patch01:          0001-Issue-4747-Remove-unstable-unstatus-tests-from-PRCI-.patch
91ce38
Patch02:          0002-Issue-4701-RFE-Exclude-attributes-from-retro-changel.patch
91ce38
Patch03:          0003-Ticket-137-Implement-EntryUUID-plugin.patch
91ce38
Patch04:          0004-Ticket-4326-entryuuid-fixup-did-not-work-correctly-4.patch
91ce38
Patch05:          0005-Issue-4498-BUG-entryuuid-replication-may-not-work-45.patch
91ce38
Patch06:          0006-Issue-4421-Unable-to-build-with-Rust-enabled-in-clos.patch
91ce38
Patch07:          0007-Ticket-51175-resolve-plugin-name-leaking.patch
91ce38
Patch08:          0008-Issue-4773-Enable-interval-feature-of-DNA-plugin.patch
91ce38
Patch09:          0009-Issue-4623-RFE-Monitor-the-current-DB-locks-4762.patch
91ce38
Patch10:          0010-Issue-4764-replicated-operation-sometime-checks-ACI-.patch
91ce38
Patch11:          0011-Issue-4778-RFE-Allow-setting-TOD-for-db-compaction-a.patch
91ce38
Patch12:          0012-Issue-4778-RFE-Add-changelog-compaction-task-in-1.4..patch
b8da0b
Patch13:          0013-Issue-4797-ACL-IP-ADDRESS-evaluation-may-corrupt-c_i.patch
b8da0b
Patch14:          0014-Issue-4396-Minor-memory-leak-in-backend-4558-4572.patch
b8da0b
Patch15:          0015-Issue-4700-Regression-in-winsync-replication-agreeme.patch
b8da0b
Patch16:          0016-Issue-4725-Fix-compiler-warnings.patch
b8da0b
Patch17:          0017-Issue-4814-_cl5_get_tod_expiration-may-crash-at-star.patch
b8da0b
Patch18:          0018-Issue-4789-Temporary-password-rules-are-not-enforce-.patch
b8da0b
Patch19:          0019-Issue-4788-CLI-should-support-Temporary-Password-Rul.patch
b8da0b
Patch20:          0020-Issue-4447-Crash-when-the-Referential-Integrity-log-.patch
b8da0b
Patch21:          0021-Issue-4791-Missing-dependency-for-RetroCL-RFE.patch
b8da0b
Patch22:          0022-Issue-4656-remove-problematic-language-from-ds-replc.patch
b8da0b
Patch23:          0023-Issue-4443-Internal-unindexed-searches-in-syncrepl-r.patch
b8da0b
Patch24:          0024-Issue-4817-BUG-locked-crypt-accounts-on-import-may-a.patch
b8da0b
Patch25:          0025-Issue-4837-persistent-search-returns-entries-even-wh.patch
b8da0b
Patch26:          0026-Hardcode-gost-crypt-passsword-storage-scheme.patch
038107
Patch27:          0027-Issue-4734-import-of-entry-with-no-parent-warning-47.patch
038107
Patch28:          0028-Issue-4872-BUG-entryuuid-enabled-by-default-causes-r.patch
038107
Patch29:          0029-Remove-GOST-YESCRYPT-password-sotrage-scheme.patch
038107
Patch30:          0030-Issue-4884-server-crashes-when-dnaInterval-attribute.patch
b8da0b
4a43a0
4a43a0
%description
4a43a0
389 Directory Server is an LDAPv3 compliant server.  The base package includes
4a43a0
the LDAP server and command line utilities for server administration.
4a43a0
%if %{use_asan}
4a43a0
WARNING! This build is linked to Address Sanitisation libraries. This probably
4a43a0
isn't what you want. Please contact support immediately.
4a43a0
Please see http://seclists.org/oss-sec/2016/q1/363 for more information.
4a43a0
%endif
4a43a0
4a43a0
%package          libs
4a43a0
Summary:          Core libraries for 389 Directory Server
4a43a0
Group:            System Environment/Daemons
4a43a0
BuildRequires:    nspr-devel
4a43a0
BuildRequires:    nss-devel >= 3.34
4a43a0
BuildRequires:    openldap-devel
4a43a0
BuildRequires:    libdb-devel
4a43a0
BuildRequires:    cyrus-sasl-devel
4a43a0
BuildRequires:    libicu-devel
4a43a0
BuildRequires:    pcre-devel
4a43a0
BuildRequires:    libtalloc-devel
4a43a0
BuildRequires:    libevent-devel
4a43a0
BuildRequires:    libtevent-devel
4a43a0
Requires:         krb5-libs
4a43a0
Requires:         libevent
4a43a0
BuildRequires:    systemd-devel
4a43a0
Provides:         svrcore = 4.1.4
4a43a0
Conflicts:        svrcore
4a43a0
Obsoletes:        svrcore <= 4.1.3
4a43a0
4a43a0
%description      libs
4a43a0
Core libraries for the 389 Directory Server base package.  These libraries
4a43a0
are used by the main package and the -devel package.  This allows the -devel
4a43a0
package to be installed with just the -libs package and without the main package.
4a43a0
4a43a0
%if %{use_legacy}
4a43a0
%package          legacy-tools
4a43a0
Summary:          Legacy utilities for 389 Directory Server
4a43a0
Group:            System Environment/Daemons
4a43a0
Obsoletes:        %{name} <= 1.4.0.9
4a43a0
Requires:         %{name}-libs = %{version}-%{release}
4a43a0
# for setup-ds.pl to support ipv6
4a43a0
%if %{use_Socket6}
4a43a0
Requires:         perl-Socket6
4a43a0
%else
4a43a0
Requires:         perl-Socket
4a43a0
%endif
4a43a0
Requires:         perl-NetAddr-IP
4a43a0
# use_openldap assumes perl-Mozilla-LDAP is built with openldap support
4a43a0
Requires:         perl-Mozilla-LDAP
4a43a0
# for setup-ds.pl
4a43a0
Requires:         bind-utils
4a43a0
%global __provides_exclude_from %{_libdir}/%{pkgname}/perl
4a43a0
%global __requires_exclude perl\\((DSCreate|DSMigration|DSUpdate|DSUtil|Dialog|DialogManager|FileConn|Inf|Migration|Resource|Setup|SetupLog)
4a43a0
%{?perl_default_filter}
4a43a0
4a43a0
%description      legacy-tools
4a43a0
Legacy (and deprecated) utilities for 389 Directory Server. This includes
4a43a0
the old account management and task scripts. These are deprecated in favour of
4a43a0
the dscreate, dsctl, dsconf and dsidm tools.
4a43a0
%endif
4a43a0
4a43a0
%package          devel
4a43a0
Summary:          Development libraries for 389 Directory Server
4a43a0
Group:            Development/Libraries
4a43a0
Requires:         %{name}-libs = %{version}-%{release}
4a43a0
Requires:         pkgconfig
4a43a0
Requires:         nspr-devel
4a43a0
Requires:         nss-devel >= 3.34
4a43a0
Requires:         openldap-devel
4a43a0
Requires:         libtalloc
4a43a0
Requires:         libevent
4a43a0
Requires:         libtevent
4a43a0
Requires:         systemd-libs
4a43a0
Provides:         svrcore-devel = 4.1.4
4a43a0
Conflicts:        svrcore-devel
4a43a0
Obsoletes:        svrcore-devel <= 4.1.3
4a43a0
4a43a0
%description      devel
4a43a0
Development Libraries and headers for the 389 Directory Server base package.
4a43a0
4a43a0
%package          snmp
4a43a0
Summary:          SNMP Agent for 389 Directory Server
4a43a0
Group:            System Environment/Daemons
4a43a0
Requires:         %{name} = %{version}-%{release}
4a43a0
4a43a0
Obsoletes:        %{name} <= 1.4.0.0
4a43a0
4a43a0
%description      snmp
4a43a0
SNMP Agent for the 389 Directory Server base package.
4a43a0
4a43a0
%package -n python%{python3_pkgversion}-lib389
4a43a0
Summary:  A library for accessing, testing, and configuring the 389 Directory Server
4a43a0
BuildArch:        noarch
4a43a0
Group:            Development/Libraries
4a43a0
Requires: openssl
4a43a0
Requires: iproute
4a43a0
Requires: platform-python
4a43a0
Recommends: bash-completion
4a43a0
Requires: python%{python3_pkgversion}-ldap
4a43a0
Requires: python%{python3_pkgversion}-six
4a43a0
Requires: python%{python3_pkgversion}-pyasn1
4a43a0
Requires: python%{python3_pkgversion}-pyasn1-modules
4a43a0
Requires: python%{python3_pkgversion}-dateutil
4a43a0
Requires: python%{python3_pkgversion}-argcomplete
4a43a0
Requires: python%{python3_pkgversion}-libselinux
4a43a0
Requires: python%{python3_pkgversion}-setuptools
4a43a0
Requires: python%{python3_pkgversion}-distro
4a43a0
%{?python_provide:%python_provide python%{python3_pkgversion}-lib389}
4a43a0
4a43a0
%description -n python%{python3_pkgversion}-lib389
4a43a0
This module contains tools and libraries for accessing, testing,
4a43a0
 and configuring the 389 Directory Server.
4a43a0
4a43a0
%package -n cockpit-389-ds
4a43a0
Summary:          Cockpit UI Plugin for configuring and administering the 389 Directory Server
4a43a0
BuildArch:        noarch
4a43a0
Requires:         cockpit
4a43a0
Requires:         platform-python
4a43a0
Requires:         python%{python3_pkgversion}-lib389
4a43a0
4a43a0
%description -n cockpit-389-ds
4a43a0
A cockpit UI Plugin for configuring and administering the 389 Directory Server
4a43a0
4a43a0
%prep
4a43a0
%autosetup -p1 -v -n %{name}-%{version}%{?prerel}
91ce38
%if %{use_rust}
91ce38
tar xvzf %{SOURCE4}
91ce38
cp %{SOURCE5} src/
91ce38
%endif
4a43a0
%if %{bundle_jemalloc}
4a43a0
%setup -q -n %{name}-%{version}%{?prerel} -T -D -b 3
4a43a0
%endif
4a43a0
cp %{SOURCE2} README.devel
4a43a0
4a43a0
%build
4a43a0
4a43a0
OPENLDAP_FLAG="--with-openldap"
4a43a0
%{?with_tmpfiles_d: TMPFILES_FLAG="--with-tmpfiles-d=%{with_tmpfiles_d}"}
4a43a0
# hack hack hack https://bugzilla.redhat.com/show_bug.cgi?id=833529
4a43a0
NSSARGS="--with-nss-lib=%{_libdir} --with-nss-inc=%{_includedir}/nss3"
4a43a0
4a43a0
%if %{use_asan}
4a43a0
ASAN_FLAGS="--enable-asan --enable-debug"
4a43a0
%endif
4a43a0
4a43a0
%if %{use_rust}
91ce38
RUST_FLAGS="--enable-rust --enable-rust-offline"
4a43a0
%endif
4a43a0
4a43a0
%if %{use_legacy}
4a43a0
LEGACY_FLAGS="--enable-legacy --enable-perl"
4a43a0
%else
4a43a0
LEGACY_FLAGS="--disable-legacy --disable-perl"
4a43a0
%endif
4a43a0
4a43a0
%if %{use_clang}
4a43a0
export CC=clang
4a43a0
export CXX=clang++
4a43a0
CLANG_FLAGS="--enable-clang"
4a43a0
%endif
4a43a0
4a43a0
%if %{bundle_jemalloc}
4a43a0
# Override page size, bz #1545539
4a43a0
# 4K
4a43a0
%ifarch %ix86 %arm x86_64 s390x
4a43a0
%define lg_page --with-lg-page=12
4a43a0
%endif
4a43a0
4a43a0
# 64K
4a43a0
%ifarch ppc64 ppc64le aarch64
4a43a0
%define lg_page --with-lg-page=16
4a43a0
%endif
4a43a0
4a43a0
# Override huge page size on aarch64
4a43a0
# 2M instead of 512M
4a43a0
%ifarch aarch64
4a43a0
%define lg_hugepage --with-lg-hugepage=21
4a43a0
%endif
4a43a0
4a43a0
# Build jemalloc
4a43a0
pushd ../%{jemalloc_name}-%{jemalloc_ver}
4a43a0
%configure \
4a43a0
        --libdir=%{_libdir}/%{pkgname}/lib \
4a43a0
        --bindir=%{_libdir}/%{pkgname}/bin \
4a43a0
        --enable-prof
4a43a0
make %{?_smp_mflags}        
4a43a0
popd
4a43a0
%endif
4a43a0
4a43a0
4a43a0
# Enforce strict linking
4a43a0
%define _strict_symbol_defs_build 1
4a43a0
4a43a0
# Rebuild the autotool artifacts now.
4a43a0
autoreconf -fiv
4a43a0
4a43a0
%configure --enable-autobind --with-selinux $OPENLDAP_FLAG $TMPFILES_FLAG \
4a43a0
           --with-systemd \
4a43a0
           --with-systemdsystemunitdir=%{_unitdir} \
4a43a0
           --with-systemdsystemconfdir=%{_sysconfdir}/systemd/system \
4a43a0
           --with-systemdgroupname=%{groupname}  \
4a43a0
           --libexecdir=%{_libexecdir}/%{pkgname} \
4a43a0
           $NSSARGS $ASAN_FLAGS $RUST_FLAGS $LEGACY_FLAGS $CLANG_FLAGS \
4a43a0
           --enable-cmocka 
4a43a0
4a43a0
# lib389
4a43a0
pushd ./src/lib389
4a43a0
%py3_build
4a43a0
popd
4a43a0
# argparse-manpage dynamic man pages have hardcoded man v1 in header,
4a43a0
# need to change it to v8
4a43a0
sed -i  "1s/\"1\"/\"8\"/" %{_builddir}/%{name}-%{version}%{?prerel}/src/lib389/man/dsconf.8
4a43a0
sed -i  "1s/\"1\"/\"8\"/" %{_builddir}/%{name}-%{version}%{?prerel}/src/lib389/man/dsctl.8
4a43a0
sed -i  "1s/\"1\"/\"8\"/" %{_builddir}/%{name}-%{version}%{?prerel}/src/lib389/man/dsidm.8
4a43a0
sed -i  "1s/\"1\"/\"8\"/" %{_builddir}/%{name}-%{version}%{?prerel}/src/lib389/man/dscreate.8
4a43a0
4a43a0
# Generate symbolic info for debuggers
4a43a0
export XCFLAGS=$RPM_OPT_FLAGS
4a43a0
4a43a0
#make %{?_smp_mflags}
4a43a0
make
4a43a0
4a43a0
%install
4a43a0
4a43a0
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load%{_sbindir}
4a43a0
mkdir -p %{buildroot}%{_datadir}/cockpit
4a43a0
make DESTDIR="$RPM_BUILD_ROOT" install
4a43a0
4a43a0
# Cockpit file list
4a43a0
find %{buildroot}%{_datadir}/cockpit/389-console -type d | sed -e "s@%{buildroot}@@" | sed -e 's/^/\%dir /' > cockpit.list
4a43a0
find %{buildroot}%{_datadir}/cockpit/389-console -type f | sed -e "s@%{buildroot}@@" >> cockpit.list
4a43a0
4a43a0
# Copy in our docs from doxygen.
4a43a0
cp -r %{_builddir}/%{name}-%{version}%{?prerel}/man/man3 $RPM_BUILD_ROOT/%{_mandir}/man3
4a43a0
4a43a0
# lib389
4a43a0
pushd src/lib389
4a43a0
%py3_install
4a43a0
popd
4a43a0
4a43a0
mkdir -p $RPM_BUILD_ROOT/var/log/%{pkgname}
4a43a0
mkdir -p $RPM_BUILD_ROOT/var/lib/%{pkgname}
5873fa
mkdir -p $RPM_BUILD_ROOT/var/3lock/%{pkgname}
4a43a0
4a43a0
# for systemd
4a43a0
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/%{groupname}.wants
4a43a0
4a43a0
#remove libtool archives and static libs
4a43a0
find %{buildroot} -type f -name "*.la" -delete
4a43a0
find %{buildroot} -type f -name "*.a" -delete
4a43a0
4a43a0
%if %{use_legacy}
4a43a0
# make sure perl scripts have a proper shebang
4a43a0
sed -i -e 's|#{{PERL-EXEC}}|#!/usr/bin/perl|' $RPM_BUILD_ROOT%{_datadir}/%{pkgname}/script-templates/template-*.pl
4a43a0
%endif
4a43a0
4a43a0
%if %{bundle_jemalloc}
4a43a0
pushd ../%{jemalloc_name}-%{jemalloc_ver}
4a43a0
make DESTDIR="$RPM_BUILD_ROOT" install_lib install_bin
4a43a0
cp -pa COPYING ../%{name}-%{version}%{?prerel}/COPYING.jemalloc
4a43a0
cp -pa README ../%{name}-%{version}%{?prerel}/README.jemalloc
4a43a0
popd
4a43a0
%endif
4a43a0
4a43a0
%check
4a43a0
# This checks the code, if it fails it prints why, then re-raises the fail to shortcircuit the rpm build.
4a43a0
if ! make DESTDIR="$RPM_BUILD_ROOT" check; then cat ./test-suite.log && false; fi
4a43a0
4a43a0
%clean
4a43a0
rm -rf $RPM_BUILD_ROOT
4a43a0
4a43a0
%post
4a43a0
if [ -n "$DEBUGPOSTTRANS" ] ; then
4a43a0
    output=$DEBUGPOSTTRANS
4a43a0
    output2=${DEBUGPOSTTRANS}.upgrade
4a43a0
else
4a43a0
    output=/dev/null
4a43a0
    output2=/dev/null
4a43a0
fi
4a43a0
4a43a0
# reload to pick up any changes to systemd files
4a43a0
/bin/systemctl daemon-reload >$output 2>&1 || :
4a43a0
4a43a0
# https://fedoraproject.org/wiki/Packaging:UsersAndGroups#Soft_static_allocation
4a43a0
# Soft static allocation for UID and GID
4a43a0
USERNAME="dirsrv"
4a43a0
ALLOCATED_UID=389
4a43a0
GROUPNAME="dirsrv"
4a43a0
ALLOCATED_GID=389
4a43a0
HOMEDIR="/usr/share/dirsrv"
4a43a0
4a43a0
getent group $GROUPNAME >/dev/null || /usr/sbin/groupadd -f -g $ALLOCATED_GID -r $GROUPNAME
4a43a0
if ! getent passwd $USERNAME >/dev/null ; then
4a43a0
    if ! getent passwd $ALLOCATED_UID >/dev/null ; then
4a43a0
      /usr/sbin/useradd -r -u $ALLOCATED_UID -g $GROUPNAME -d $HOMEDIR -s /sbin/nologin -c "user for 389-ds-base" $USERNAME
4a43a0
    else
4a43a0
      /usr/sbin/useradd -r -g $GROUPNAME -d $HOMEDIR -s /sbin/nologin -c "user for 389-ds-base" $USERNAME
4a43a0
    fi
4a43a0
fi
4a43a0
4a43a0
# Reload our sysctl before we restart (if we can)
4a43a0
sysctl --system &> $output; true
4a43a0
4a43a0
%preun
4a43a0
if [ $1 -eq 0 ]; then # Final removal
4a43a0
    # remove instance specific service files/links
4a43a0
    rm -rf %{_sysconfdir}/systemd/system/%{groupname}.wants/* > /dev/null 2>&1 || :
4a43a0
fi
4a43a0
4a43a0
%postun
4a43a0
if [ $1 = 0 ]; then # Final removal
4a43a0
    rm -rf /var/run/%{pkgname}
4a43a0
fi
4a43a0
4a43a0
%post snmp
4a43a0
%systemd_post %{pkgname}-snmp.service
4a43a0
4a43a0
%preun snmp
4a43a0
%systemd_preun %{pkgname}-snmp.service %{groupname}
4a43a0
4a43a0
%postun snmp
4a43a0
%systemd_postun_with_restart %{pkgname}-snmp.service
4a43a0
4a43a0
%if %{use_legacy}
4a43a0
%post legacy-tools
4a43a0
4a43a0
# START UPGRADE SCRIPT
4a43a0
4a43a0
if [ -n "$DEBUGPOSTTRANS" ] ; then
4a43a0
    output=$DEBUGPOSTTRANS
4a43a0
    output2=${DEBUGPOSTTRANS}.upgrade
4a43a0
else
4a43a0
    output=/dev/null
4a43a0
    output2=/dev/null
4a43a0
fi
4a43a0
4a43a0
# find all instances
4a43a0
instances="" # instances that require a restart after upgrade
4a43a0
ninst=0 # number of instances found in total
4a43a0
4a43a0
echo looking for instances in %{_sysconfdir}/%{pkgname} > $output 2>&1 || :
4a43a0
instbase="%{_sysconfdir}/%{pkgname}"
4a43a0
for dir in $instbase/slapd-* ; do
4a43a0
    echo dir = $dir >> $output 2>&1 || :
4a43a0
    if [ ! -d "$dir" ] ; then continue ; fi
4a43a0
    case "$dir" in *.removed) continue ;; esac
4a43a0
    basename=`basename $dir`
4a43a0
    inst="%{pkgname}@`echo $basename | sed -e 's/slapd-//g'`"
4a43a0
    echo found instance $inst - getting status  >> $output 2>&1 || :
4a43a0
    if /bin/systemctl -q is-active $inst ; then
4a43a0
       echo instance $inst is running >> $output 2>&1 || :
4a43a0
       instances="$instances $inst"
4a43a0
    else
4a43a0
       echo instance $inst is not running >> $output 2>&1 || :
4a43a0
    fi
4a43a0
    ninst=`expr $ninst + 1`
4a43a0
done
4a43a0
if [ $ninst -eq 0 ] ; then
4a43a0
    echo no instances to upgrade >> $output 2>&1 || :
4a43a0
    exit 0 # have no instances to upgrade - just skip the rest
4a43a0
fi
4a43a0
# shutdown all instances
4a43a0
echo shutting down all instances . . . >> $output 2>&1 || :
4a43a0
for inst in $instances ; do
4a43a0
    echo stopping instance $inst >> $output 2>&1 || :
4a43a0
    /bin/systemctl stop $inst >> $output 2>&1 || :
4a43a0
done
4a43a0
echo remove pid files . . . >> $output 2>&1 || :
4a43a0
/bin/rm -f /var/run/%{pkgname}*.pid /var/run/%{pkgname}*.startpid
4a43a0
# do the upgrade
4a43a0
echo upgrading instances . . . >> $output 2>&1 || :
4a43a0
DEBUGPOSTSETUPOPT=`/usr/bin/echo $DEBUGPOSTSETUP | /usr/bin/sed -e "s/[^d]//g"`
4a43a0
if [ -n "$DEBUGPOSTSETUPOPT" ] ; then
4a43a0
    %{_sbindir}/setup-ds.pl -$DEBUGPOSTSETUPOPT -u -s General.UpdateMode=offline >> $output 2>&1 || :
4a43a0
else
4a43a0
    %{_sbindir}/setup-ds.pl -u -s General.UpdateMode=offline >> $output 2>&1 || :
4a43a0
fi
4a43a0
4a43a0
# restart instances that require it
4a43a0
for inst in $instances ; do
4a43a0
    echo restarting instance $inst >> $output 2>&1 || :
4a43a0
    /bin/systemctl start $inst >> $output 2>&1 || :
4a43a0
done
4a43a0
#END UPGRADE
4a43a0
%endif
4a43a0
4a43a0
exit 0
4a43a0
4a43a0
4a43a0
%files
4a43a0
%if %{bundle_jemalloc}
4a43a0
%doc LICENSE LICENSE.GPLv3+ LICENSE.openssl README.jemalloc
4a43a0
%license COPYING.jemalloc
4a43a0
%else
4a43a0
%doc LICENSE LICENSE.GPLv3+ LICENSE.openssl
4a43a0
%endif
4a43a0
%dir %{_sysconfdir}/%{pkgname}
4a43a0
%dir %{_sysconfdir}/%{pkgname}/schema
4a43a0
%config(noreplace)%{_sysconfdir}/%{pkgname}/schema/*.ldif
4a43a0
%dir %{_sysconfdir}/%{pkgname}/config
4a43a0
%dir %{_sysconfdir}/systemd/system/%{groupname}.wants
4a43a0
%config(noreplace)%{_sysconfdir}/%{pkgname}/config/slapd-collations.conf
4a43a0
%config(noreplace)%{_sysconfdir}/%{pkgname}/config/certmap.conf
4a43a0
%{_datadir}/%{pkgname}
4a43a0
%{_datadir}/gdb/auto-load/*
4a43a0
%{_unitdir}
4a43a0
%{_bindir}/dbscan
4a43a0
%{_mandir}/man1/dbscan.1.gz
4a43a0
%{_bindir}/ds-replcheck
4a43a0
%{_mandir}/man1/ds-replcheck.1.gz
4a43a0
%{_bindir}/ds-logpipe.py
4a43a0
%{_mandir}/man1/ds-logpipe.py.1.gz
4a43a0
%{_bindir}/ldclt
4a43a0
%{_mandir}/man1/ldclt.1.gz
4a43a0
%{_sbindir}/ldif2ldap
4a43a0
%{_mandir}/man8/ldif2ldap.8.gz
4a43a0
%{_bindir}/logconv.pl
4a43a0
%{_mandir}/man1/logconv.pl.1.gz
4a43a0
%{_bindir}/pwdhash
4a43a0
%{_mandir}/man1/pwdhash.1.gz
4a43a0
%{_bindir}/readnsstate
4a43a0
%{_mandir}/man1/readnsstate.1.gz
4a43a0
# Remove for now: %caps(CAP_NET_BIND_SERVICE=pe) {_sbindir}/ns-slapd
4a43a0
%{_sbindir}/ns-slapd
4a43a0
%{_mandir}/man8/ns-slapd.8.gz
4a43a0
%{_libexecdir}/%{pkgname}/ds_systemd_ask_password_acl
4a43a0
%{_mandir}/man5/99user.ldif.5.gz
4a43a0
%{_mandir}/man5/certmap.conf.5.gz
4a43a0
%{_mandir}/man5/slapd-collations.conf.5.gz
4a43a0
%{_mandir}/man5/dirsrv.5.gz
4a43a0
%{_mandir}/man5/dirsrv.systemd.5.gz
4a43a0
%{_libdir}/%{pkgname}/python
4a43a0
%dir %{_libdir}/%{pkgname}/plugins
4a43a0
%{_libdir}/%{pkgname}/plugins/*.so
4a43a0
# This has to be hardcoded to /lib - $libdir changes between lib/lib64, but
4a43a0
# sysctl.d is always in /lib.
4a43a0
%{_prefix}/lib/sysctl.d/*
4a43a0
%dir %{_localstatedir}/lib/%{pkgname}
4a43a0
%dir %{_localstatedir}/log/%{pkgname}
4a43a0
%ghost %dir %{_localstatedir}/lock/%{pkgname}
4a43a0
%exclude %{_sbindir}/ldap-agent*
4a43a0
%exclude %{_mandir}/man1/ldap-agent.1.gz
4a43a0
%exclude %{_unitdir}/%{pkgname}-snmp.service
4a43a0
%if %{bundle_jemalloc}
4a43a0
%{_libdir}/%{pkgname}/lib/
4a43a0
%{_libdir}/%{pkgname}/bin/
4a43a0
%exclude %{_libdir}/%{pkgname}/bin/jemalloc-config
4a43a0
%exclude %{_libdir}/%{pkgname}/bin/jemalloc.sh
4a43a0
%exclude %{_libdir}/%{pkgname}/lib/libjemalloc.a
4a43a0
%exclude %{_libdir}/%{pkgname}/lib/libjemalloc.so
4a43a0
%exclude %{_libdir}/%{pkgname}/lib/libjemalloc_pic.a
4a43a0
%exclude %{_libdir}/%{pkgname}/lib/pkgconfig
4a43a0
%endif
4a43a0
4a43a0
%files devel
4a43a0
%doc LICENSE LICENSE.GPLv3+ LICENSE.openssl README.devel
4a43a0
%{_mandir}/man3/*
4a43a0
%{_includedir}/svrcore.h
4a43a0
%{_includedir}/%{pkgname}
4a43a0
%{_libdir}/libsvrcore.so
4a43a0
%{_libdir}/%{pkgname}/libslapd.so
4a43a0
%{_libdir}/%{pkgname}/libns-dshttpd.so
4a43a0
%{_libdir}/%{pkgname}/libsds.so
4a43a0
%{_libdir}/%{pkgname}/libldaputil.so
4a43a0
%{_libdir}/pkgconfig/svrcore.pc
4a43a0
%{_libdir}/pkgconfig/dirsrv.pc
4a43a0
%{_libdir}/pkgconfig/libsds.pc
4a43a0
4a43a0
%files libs
4a43a0
%doc LICENSE LICENSE.GPLv3+ LICENSE.openssl README.devel
4a43a0
%dir %{_libdir}/%{pkgname}
4a43a0
%{_libdir}/libsvrcore.so.*
4a43a0
%{_libdir}/%{pkgname}/libslapd.so.*
4a43a0
%{_libdir}/%{pkgname}/libns-dshttpd-*.so
4a43a0
%{_libdir}/%{pkgname}/libsds.so.*
4a43a0
%{_libdir}/%{pkgname}/libldaputil.so.*
4a43a0
%{_libdir}/%{pkgname}/librewriters.so*
4a43a0
%if %{bundle_jemalloc}
4a43a0
%{_libdir}/%{pkgname}/lib/libjemalloc.so.2
4a43a0
%endif
4a43a0
4a43a0
%if %{use_legacy}
4a43a0
%files legacy-tools
4a43a0
%doc LICENSE LICENSE.GPLv3+ LICENSE.openssl README.devel
4a43a0
%{_bindir}/infadd
4a43a0
%{_mandir}/man1/infadd.1.gz
4a43a0
%{_bindir}/ldif
4a43a0
%{_mandir}/man1/ldif.1.gz
4a43a0
%{_bindir}/migratecred
4a43a0
%{_mandir}/man1/migratecred.1.gz
4a43a0
%{_bindir}/mmldif
4a43a0
%{_mandir}/man1/mmldif.1.gz
4a43a0
%{_bindir}/rsearch
4a43a0
%{_mandir}/man1/rsearch.1.gz
4a43a0
%{_libexecdir}/%{pkgname}/ds_selinux_enabled
4a43a0
%{_libexecdir}/%{pkgname}/ds_selinux_port_query
4a43a0
%config(noreplace)%{_sysconfdir}/%{pkgname}/config/template-initconfig
4a43a0
%{_mandir}/man5/template-initconfig.5.gz
4a43a0
%{_datadir}/%{pkgname}/properties/*.res
4a43a0
%{_datadir}/%{pkgname}/script-templates
4a43a0
%{_datadir}/%{pkgname}/updates
4a43a0
%{_sbindir}/ldif2ldap
4a43a0
%{_mandir}/man8/ldif2ldap.8.gz
4a43a0
%{_sbindir}/bak2db
4a43a0
%{_mandir}/man8/bak2db.8.gz
4a43a0
%{_sbindir}/db2bak
4a43a0
%{_mandir}/man8/db2bak.8.gz
4a43a0
%{_sbindir}/db2index
4a43a0
%{_mandir}/man8/db2index.8.gz
4a43a0
%{_sbindir}/db2ldif
4a43a0
%{_mandir}/man8/db2ldif.8.gz
4a43a0
%{_sbindir}/dbverify
4a43a0
%{_mandir}/man8/dbverify.8.gz
4a43a0
%{_sbindir}/ldif2db
4a43a0
%{_mandir}/man8/ldif2db.8.gz
4a43a0
%{_sbindir}/restart-dirsrv
4a43a0
%{_mandir}/man8/restart-dirsrv.8.gz
4a43a0
%{_sbindir}/start-dirsrv
4a43a0
%{_mandir}/man8/start-dirsrv.8.gz
4a43a0
%{_sbindir}/status-dirsrv
4a43a0
%{_mandir}/man8/status-dirsrv.8.gz
4a43a0
%{_sbindir}/stop-dirsrv
4a43a0
%{_mandir}/man8/stop-dirsrv.8.gz
4a43a0
%{_sbindir}/upgradedb
4a43a0
%{_mandir}/man8/upgradedb.8.gz
4a43a0
%{_sbindir}/vlvindex
4a43a0
%{_mandir}/man8/vlvindex.8.gz
4a43a0
%{_sbindir}/monitor
4a43a0
%{_mandir}/man8/monitor.8.gz
4a43a0
%{_sbindir}/dbmon.sh
4a43a0
%{_mandir}/man8/dbmon.sh.8.gz
4a43a0
%{_sbindir}/dn2rdn
4a43a0
%{_mandir}/man8/dn2rdn.8.gz
4a43a0
%{_sbindir}/restoreconfig
4a43a0
%{_mandir}/man8/restoreconfig.8.gz
4a43a0
%{_sbindir}/saveconfig
4a43a0
%{_mandir}/man8/saveconfig.8.gz
4a43a0
%{_sbindir}/suffix2instance
4a43a0
%{_mandir}/man8/suffix2instance.8.gz
4a43a0
%{_sbindir}/upgradednformat
4a43a0
%{_mandir}/man8/upgradednformat.8.gz
4a43a0
%{_mandir}/man1/dbgen.pl.1.gz
4a43a0
%{_bindir}/repl-monitor
4a43a0
%{_mandir}/man1/repl-monitor.1.gz
4a43a0
%{_bindir}/repl-monitor.pl
4a43a0
%{_mandir}/man1/repl-monitor.pl.1.gz
4a43a0
%{_bindir}/cl-dump
4a43a0
%{_mandir}/man1/cl-dump.1.gz
4a43a0
%{_bindir}/cl-dump.pl
4a43a0
%{_mandir}/man1/cl-dump.pl.1.gz
4a43a0
%{_bindir}/dbgen.pl
4a43a0
%{_mandir}/man8/bak2db.pl.8.gz
4a43a0
%{_sbindir}/bak2db.pl
4a43a0
%{_sbindir}/cleanallruv.pl
4a43a0
%{_mandir}/man8/cleanallruv.pl.8.gz
4a43a0
%{_sbindir}/db2bak.pl
4a43a0
%{_mandir}/man8/db2bak.pl.8.gz
4a43a0
%{_sbindir}/db2index.pl
4a43a0
%{_mandir}/man8/db2index.pl.8.gz
4a43a0
%{_sbindir}/db2ldif.pl
4a43a0
%{_mandir}/man8/db2ldif.pl.8.gz
4a43a0
%{_sbindir}/fixup-linkedattrs.pl
4a43a0
%{_mandir}/man8/fixup-linkedattrs.pl.8.gz
4a43a0
%{_sbindir}/fixup-memberof.pl
4a43a0
%{_mandir}/man8/fixup-memberof.pl.8.gz
4a43a0
%{_sbindir}/ldif2db.pl
4a43a0
%{_mandir}/man8/ldif2db.pl.8.gz
4a43a0
%{_sbindir}/migrate-ds.pl
4a43a0
%{_mandir}/man8/migrate-ds.pl.8.gz
4a43a0
%{_sbindir}/ns-accountstatus.pl
4a43a0
%{_mandir}/man8/ns-accountstatus.pl.8.gz
4a43a0
%{_sbindir}/ns-activate.pl
4a43a0
%{_mandir}/man8/ns-activate.pl.8.gz
4a43a0
%{_sbindir}/ns-inactivate.pl
4a43a0
%{_mandir}/man8/ns-inactivate.pl.8.gz
4a43a0
%{_sbindir}/ns-newpwpolicy.pl
4a43a0
%{_mandir}/man8/ns-newpwpolicy.pl.8.gz
4a43a0
%{_sbindir}/remove-ds.pl
4a43a0
%{_mandir}/man8/remove-ds.pl.8.gz
4a43a0
%{_sbindir}/schema-reload.pl
4a43a0
%{_mandir}/man8/schema-reload.pl.8.gz
4a43a0
%{_sbindir}/setup-ds.pl
4a43a0
%{_mandir}/man8/setup-ds.pl.8.gz
4a43a0
%{_sbindir}/syntax-validate.pl
4a43a0
%{_mandir}/man8/syntax-validate.pl.8.gz
4a43a0
%{_sbindir}/usn-tombstone-cleanup.pl
4a43a0
%{_mandir}/man8/usn-tombstone-cleanup.pl.8.gz
4a43a0
%{_sbindir}/verify-db.pl
4a43a0
%{_mandir}/man8/verify-db.pl.8.gz
4a43a0
%{_libdir}/%{pkgname}/perl
4a43a0
%endif
4a43a0
4a43a0
%files snmp
4a43a0
%doc LICENSE LICENSE.GPLv3+ LICENSE.openssl README.devel
4a43a0
%config(noreplace)%{_sysconfdir}/%{pkgname}/config/ldap-agent.conf
4a43a0
%{_sbindir}/ldap-agent*
4a43a0
%{_mandir}/man1/ldap-agent.1.gz
4a43a0
%{_unitdir}/%{pkgname}-snmp.service
4a43a0
4a43a0
%files -n python%{python3_pkgversion}-lib389
4a43a0
%doc LICENSE LICENSE.GPLv3+
4a43a0
%{python3_sitelib}/lib389*
4a43a0
%{_sbindir}/dsconf
4a43a0
%{_mandir}/man8/dsconf.8.gz
4a43a0
%{_sbindir}/dscreate
4a43a0
%{_mandir}/man8/dscreate.8.gz
4a43a0
%{_sbindir}/dsctl
4a43a0
%{_mandir}/man8/dsctl.8.gz
4a43a0
%{_sbindir}/dsidm
4a43a0
%{_mandir}/man8/dsidm.8.gz
4a43a0
%{_libexecdir}/%{pkgname}/dscontainer
4a43a0
4a43a0
%files -n cockpit-389-ds -f cockpit.list
4a43a0
%{_datarootdir}/metainfo/389-console/org.port389.cockpit_console.metainfo.xml
4a43a0
%doc README.md
4a43a0
4a43a0
%changelog
038107
* Thu Aug 26 2021 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.23-10
038107
- Bump version to 1.4.3.23-10
038107
- Resolves: Bug 1997138 - LDAP server crashes when dnaInterval attribute is set to 0
038107
038107
* Wed Aug 25 2021 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.23-9
038107
- Bump version to 1.4.3.23-9
038107
- Resolves: Bug 1947044 - remove unsupported GOST password storage scheme
038107
038107
* Thu Aug 19 2021 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.23-8
038107
- Bump version to 1.4.3.23-8
038107
- Resolves: Bug 1947044 - add missing patch for import result code
038107
- Resolves: Bug 1944494 - support for RFC 4530 entryUUID attribute
038107
b8da0b
* Mon Jul 26 2021 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.23-7
b8da0b
- Bump version to 1.4.3.23-7
b8da0b
- Resolves: Bug 1983921 - persistent search returns entries even when an error is returned by content-sync-plugin
b8da0b
b8da0b
* Fri Jul 16 2021 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.23-6
b8da0b
- Bump version to 1.4.3.23-6
b8da0b
- Resolves: Bug 1982787 - CRYPT password hash with asterisk allows any bind attempt to succeed
b8da0b
b8da0b
* Thu Jul 15 2021 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.23-5
b8da0b
- Bump version to 1.4.3.23-5
b8da0b
- Resolves: Bug 1951020 - Internal unindexed searches in syncrepl
b8da0b
- Resolves: Bug 1978279 - ds-replcheck state output message has 'Master' instead of 'Supplier'
b8da0b
b8da0b
* Tue Jun 29 2021 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.23-4
b8da0b
- Bump version to 1.4.3.23-4
b8da0b
- Resolves: Bug 1976906 - Instance crash at restart after changelog configuration
b8da0b
- Resolves: Bug 1480323 - ns-slapd crash at startup - Segmentation fault in strcmpi_fast() when the Referential Integrity log is manually edited
b8da0b
- Resolves: Bug 1967596 - Temporary password - add CLI and fix compiler errors
b8da0b
b8da0b
* Thu Jun 17 2021 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.23-3
b8da0b
- Bump version to 1.4.3.23-3
b8da0b
- Resolves: Bug 1944494 - support for RFC 4530 entryUUID attribute
b8da0b
- Resolves: Bug 1967839 - ACIs are being evaluated against the Replication Manager account in a replication context
b8da0b
- Resolves: Bug 1970259 - A connection can be erroneously flagged as replication conn during evaluation of an aci with ip bind rule
b8da0b
- Resolves: Bug 1972590 - Large updates can reset the CLcache to the beginning of the changelog
b8da0b
- Resolves: Bug 1903221 - Memory leak in 389ds backend (Minor)
b8da0b
91ce38
* Sun May 30 2021 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.23-2
91ce38
- Bump version to 1.4.3.23-2
91ce38
- Resolves: Bug 1812286 - RFE - Monitor the current DB locks ( nsslapd-db-current-locks )
91ce38
- Resolves: Bug 1748441 - RFE - Schedule execution of "compactdb" at specific date/time
91ce38
- Resolves: Bug 1938239 - RFE - Extend DNA plugin to support intervals sizes for subuids
91ce38
91ce38
* Fri May 14 2021 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.23-1
91ce38
- Bump version to 1.4.3.23-1
91ce38
- Resolves: Bug 1947044 - Rebase 389 DS with 389-ds-base-1.4.3.23 for RHEL 8.5
91ce38
- Resolves: Bug 1850664 - RFE - Add an option for the Retro Changelog to ignore some attributes
91ce38
- Resolves: Bug 1903221 - Memory leak in 389ds backend (Minor)
91ce38
- Resolves: Bug 1898541 - Changelog cache can upload updates from a wrong starting point (CSN)
91ce38
- Resolves: Bug 1889562 - client psearch with multiple threads hangs if nsslapd-maxthreadsperconn is under sized
91ce38
- Resolves: Bug 1924848 - Negative wtime on ldapcompare
91ce38
- Resolves: Bug 1895460 - RFE - Log an additional message if the server certificate nickname doesn't match nsSSLPersonalitySSL value
91ce38
- Resolves: Bug 1897614 - Performance search rate: change entry cache monitor to recursive pthread mutex
91ce38
- Resolves: Bug 1939607 - hang because of incorrect accounting of readers in vattr rwlock
91ce38
- Resolves: Bug 1626633 - [RFE] DS - Update the password policy to support a Temporary Password with expiration
91ce38
- Resolves: Bug 1952804 - CVE-2021-3514 389-ds:1.4/389-ds-base: sync_repl NULL pointer dereference in sync_create_state_control()
91ce38