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
4a43a0
%global use_rust 0
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
4a43a0
Summary:          389 Directory Server (base)
4a43a0
Name:             389-ds-base
a628bc
Version:          1.4.3.16
3bc51a
Release:          %{?relprefix}4%{?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
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
47c2e9
Patch01:          0001-Issue-4383-Do-not-normalize-escaped-spaces-in-a-DN.patch
47c2e9
Patch02:          0002-ticket-2058-Add-keep-alive-entry-after-on-line-initi.patch
47c2e9
Patch03:          0003-do-not-add-referrals-for-masters-with-different-data.patch
47c2e9
Patch04:          0004-Ticket-50933-Update-2307compat.ldif.patch
47c2e9
Patch05:          0005-Issue-50933-Fix-OID-change-between-10rfc2307-and-10r.patch
47c2e9
Patch06:          0006-Ticket-51131-improve-mutex-alloc-in-conntable.patch
47c2e9
Patch07:          0007-Issue-4297-2nd-fix-for-on-ADD-replication-URP-issue-.patch
3bc51a
Patch08:          0008-Issue-3657-Add-options-to-dsctl-for-dsrc-file.patch
3bc51a
Patch09:          0009-Issue-4440-BUG-ldifgen-with-start-idx-option-fails-w.patch
3bc51a
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}
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}
4a43a0
RUST_FLAGS="--enable-rust"
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
%if %{use_rust}
4a43a0
%{_libdir}/%{pkgname}/librsds.so
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
3bc51a
* Thu Dec 3 2020 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.16-4
3bc51a
- Bump version to 1.4.3.16-4
3bc51a
- Resolves: Bug 1843517 - Using ldifgen with --start-idx option fails with unsupported operand
3bc51a
- Resolves: Bug 1801086 - [RFE] Generate dsrc file using dsconf
3bc51a
- Resolves: Bug 1843838 - heap-use-after-free in slapi_be_getsuffix
3bc51a
47c2e9
* Wed Nov 25 2020 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.16-3
47c2e9
- Bump version to 1.4.3.16-3
47c2e9
- Resolves: Bug 1859219 - rfc2307 and rfc2307bis compat schema
47c2e9
- Resolves: Bug 1843604 - reduce the cost of allocation/free when open/close a connection
47c2e9
- Resolves: Bug 1898850 - Entries conflict not resolved by replication 
47c2e9
47c2e9
* Thu Nov 19 2020 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.16-2
47c2e9
- Bump version to 1.4.3.16-2
47c2e9
- Resolves: Bug 1859227 - create keep alive entry after on line init
47c2e9
- Resolves: Bug 1888863 - group rdn with leading space char and add fails error 21 invalid syntax and delete fails error 32
47c2e9
- Resolves: Bug 1859228 - do not add referrals for masters with different data generation
47c2e9
a628bc
* Mon Oct 26 2020 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.16-1
a628bc
- Bump version to 1.4.3.16-1
a628bc
- Resolves: Bug 1887415 - Sync repl - if a serie of updates target the same entry then the cookie get wrong changenumber
a628bc
- Resolves: Bug 1859225 - suffix management in backends incorrect
a628bc
a628bc
* Mon Oct 26 2020 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.14-1
a628bc
- Bump version to 1.4.3.14-1
a628bc
- Resolves: Bug 1862529 - Rebase 389-ds-base-1.4.3 in RHEL 8.4
a628bc
- Resolves: Bug 1859301 - Misleading message in access log for idle timeout
a628bc
- Resolves: Bug 1889782 - Missing closing quote when reporting the details of unindexed/paged search results
a628bc
- Resolves: Bug 1862971 - dsidm user status fails with Error: 'nsUserAccount' object has no attribute 'is_locked' 
a628bc
- Resolves: Bug 1859878 - Managed Entries configuration not being enforced
a628bc
- Resolves: Bug 1851973 - Duplicate entryUSN numbers for different LDAP entries in the same backend
a628bc
- Resolves: Bug 1851967 - if dbhome directory is set online backup fails
a628bc
- Resolves: Bug 1887449 - Sync repl: missing update because operation are erroneously stated as nested
a628bc
- Resolves: Bug 1887415 - Sync repl - if a serie of updates target the same entry then the cookie get wrong changenumber
a628bc
- Resolves: Bug 1851978 - SyncRepl plugin provides a wrong cookie
a628bc
- Resolves: Bug 1843604 - reduce the cost of allocation/free when open/close a connection
a628bc
- Resolves: Bug 1872930 - dscreate: Not possible to bind to a unix domain socket
a628bc
- Resolves: Bug 1861504 - ds-replcheck crashes in offline mode
a628bc
- Resolves: Bug 1859282 - remove ldbm_back_entry_release 
a628bc
- Resolves: Bug 1859225 - suffix management in backends incorrect
a628bc
- Resolves: Bug 1859224 - remove unused or unnecessary database plugin functions
a628bc
- Resolves: Bug 1859219 - rfc2307 and rfc2307bis compat schema
a628bc
- Resolves: Bug 1851975 - Add option to reject internal unindexed searches
a628bc
- Resolves: Bug 1851972 - Remove code duplication from the BDB backend separation work
a628bc
- Resolves: Bug 1850275 - Add new access log keywords for time spent in work queue and actual operation time
a628bc
- Resolves: Bug 1848359 - Add failover credentials to replication agreement 
a628bc
- Resolves: Bug 1837315 - Healthcheck code DSBLE0002 not returned on disabled suffix
a628bc
ab20a9
* Wed Aug 5 2020 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.8-5
ab20a9
- Bump version to 1.4.3.8-5
ab20a9
- Resolves: Bug 1841086 - SSL alert: The value of sslVersionMax "TLS1.3" is higher than the supported version
ab20a9
- Resolves: Bug 1800529 - Memory leaks in disk monitoring
ab20a9
- Resolves: Bug 1748227 - Instance name length is not enforced
ab20a9
- Resolves: Bug 1849418 - python3-lib389 pulls unnecessary bash-completion package
ab20a9
5873fa
* Fri Jun 26 2020 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.8-4
5873fa
- Bump version to 1.4.3.8-4
5873fa
- Resolves: Bug 1806978 - ns-slapd crashes during db2ldif
5873fa
- Resolves: Bug 1450863 - Log warning when tuning of nsslapd-threadnumber above or below the optimal value
5873fa
- Resolves: Bug 1647017 - A distinguished value of a single valued attribute can be missing in an entry
5873fa
- Resolves: Bug 1806573 - Dsctl healthcheck doesn't work when using instance name with 'slapd-'
5873fa
- Resolves: Bug 1807773 - dsctl healthcheck : typo in DSREPLLE0002 Lint error suggested resolution commands
5873fa
- Resolves: Bug 1843567 - Healthcheck to find notes=F
5873fa
- Resolves: Bug 1845094 - User/Directory Manager can modify Password Policy attribute "pwdReset"
5873fa
- Resolves: Bug 1850275 - Add new access log keywords for time spent in work queue and actual operation time
5873fa
- Resolves: Bug 1442386 - Recreating an index while changing case will create an indexfile with the old name (different case) and after restart the indexfile is abandoned
5873fa
- Resolves: Bug 1672574 - nsIndexIDListScanLimit accepts any value
5873fa
- Resolves: Bug 1800529 - Memory leaks in disk monitoring
5873fa
5873fa
* Fri Jun 5 2020 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.8-3
5873fa
- Bump version to 1.4.3.8-3
5873fa
- Resolves: Bug 1835619 - Healthcheck with --json option reports "Object of type 'bytes' is not JSON serializable" when mapping tree is deleted 
5873fa
- Resolves: Bug 1836428 - Directory Server ds-replcheck RFE to add a timeout command-line arg/value to wait longer when connecting to a replica server
5873fa
- Resolves: Bug 1843090 - abort when a empty valueset is freed
5873fa
- Resolves: Bug 1843156 - Prevent unnecessarily duplication of the target entry
5873fa
- Resolves: Bug 1843157 - Check for clock errors and time skew
5873fa
- Resolves: Bug 1843159 - RFE AD filter rewriter for ObjectCategory
5873fa
- Resolves: Bug 1843162 - Creating Replication Manager fails if uid=repman is used
5873fa
- Resolves: Bug 1816851 - Add option to healthcheck to list all the lint reports
5873fa
- Resolves: Bug 1748227 - Instance name length is not enforced
5873fa
- Resolves: Bug 1748244 - dscreate doesn't sanitize instance name
5873fa
4a43a0
* Mon May 11 2020 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.8-2
4a43a0
- Bump version to 1.4.3.8-2
4a43a0
- Resolves: Bug 1833350 - Remove cockpit dependancies that are breaking builds
4a43a0
4a43a0
* Mon May 11 2020 Mark Reynolds <mreynolds@redhat.com> - 1.4.3.8-1
4a43a0
- Bump version to 1.4.3.8-1
4a43a0
- Resolves: Bug 1833350 - Rebase 389-ds-base for RHEL 8.3
4a43a0
- Resolves: Bug 1728943 - [RFE] Advance options in RHDS Disk Monitoring Framework
4a43a0
- Resolves: Bug 1775285 - [RFE] Implement the Password Policy attribute "pwdReset"
4a43a0
- Resolves: Bug 1638875 - [RFE] extract key/certs pem file into a private namespace
4a43a0
- Resolves: Bug 1758478 - AddressSanitizer: heap-buffer-overflow in ldap_utf8prev
4a43a0
- Resolves: Bug 1795943 - Port dbmon.sh from legacy tools package
4a43a0
- Resolves: Bug 1798394 - Port dbgen from legacy tools package
4a43a0
- Resolves: Bug 1800529 - Memory leaks in disk monitoring
4a43a0
- Resolves: Bug 1807419 - Unable to create a suffix with countryName either via dscreate or the admin console
4a43a0
- Resolves: Bug 1816848 - Database links: get_monitor() takes 1 positional argument but 2 were given
4a43a0
- Resolves: Bug 1816854 - Setting nsslapd-allowed-sasl-mechanisms truncates the value
4a43a0
- Resolves: Bug 1816857 - Searches on cn=config takes values with spaces and makes multiple attributes out of them
4a43a0
- Resolves: Bug 1816859 - lib389 - Replace exec() with setattr()
4a43a0
- Resolves: Bug 1816862 - Memory leak in indirect COS
4a43a0
- Resolves: Bug 1829071 - Installation of RHDS 11 fails on RHEL8 server with IPv6 disabled
4a43a0
- Resolves: Bug 1833515 - set 'nsslapd-enable-upgrade-hash: off' as this raises warnings in IPA
4a43a0
- Resolves: Bug 1790986 - cenotaph errors on modrdn operations
4a43a0
- Resolves: Bug 1769734 - Heavy StartTLS connection load can randomly fail with err=1
4a43a0
- Resolves: Bug 1758501 - LeakSanitizer: detected memory leaks in changelog5_init and perfctrs_init