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