Blame 389-ds.spec

Bernhard M. Wiedemann 11f43a
#
Bernhard M. Wiedemann 11f43a
# spec file for package 389-ds
Bernhard M. Wiedemann 11f43a
#
404eed
# Copyright (c) 2024 SUSE LLC
Bernhard M. Wiedemann 11f43a
#
Bernhard M. Wiedemann 11f43a
# All modifications and additions to the file contributed by third parties
Bernhard M. Wiedemann 11f43a
# remain the property of their copyright owners, unless otherwise agreed
Bernhard M. Wiedemann 11f43a
# upon. The license for this file, and modifications and additions to the
Bernhard M. Wiedemann 11f43a
# file, is the same license as for the pristine package itself (unless the
Bernhard M. Wiedemann 11f43a
# license for the pristine package is not an Open Source License, in which
Bernhard M. Wiedemann 11f43a
# case the license is the MIT License). An "Open Source License" is a
Bernhard M. Wiedemann 11f43a
# license that conforms to the Open Source Definition (Version 1.9)
Bernhard M. Wiedemann 11f43a
# published by the Open Source Initiative.
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
# Please submit bugfixes or comments via https://bugs.opensuse.org/
Bernhard M. Wiedemann 11f43a
#
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%define use_python python3
Bernhard M. Wiedemann 11f43a
%define skip_python2 1
Bernhard M. Wiedemann 11f43a
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%define homedir %{_localstatedir}/lib/dirsrv
Bernhard M. Wiedemann 11f43a
%define logdir %{_localstatedir}/log/dirsrv
Bernhard M. Wiedemann 11f43a
%define lockdir %{_localstatedir}/lock/dirsrv
Bernhard M. Wiedemann 11f43a
# User and group name that own the home directory
Bernhard M. Wiedemann 11f43a
%define user_group dirsrv
Bernhard M. Wiedemann 11f43a
%ifnarch s390x s390 ppc64 ppc64le
Bernhard M. Wiedemann 11f43a
%global use_tcmalloc 1
Bernhard M. Wiedemann 11f43a
%else
Bernhard M. Wiedemann 11f43a
%global use_tcmalloc 0
Bernhard M. Wiedemann 11f43a
%endif
Bernhard M. Wiedemann 11f43a
%define svrcorelib libsvrcore0
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
Name:           389-ds
0318c7
Version:        3.0.1~git1.1f95b57
Bernhard M. Wiedemann 11f43a
Release:        0
Bernhard M. Wiedemann 11f43a
Summary:        389 Directory Server
Bernhard M. Wiedemann 11f43a
License:        GPL-3.0-or-later AND MPL-2.0
Bernhard M. Wiedemann 11f43a
Group:          Productivity/Networking/LDAP/Servers
Bernhard M. Wiedemann b4f707
URL:            https://pagure.io/389-ds-base
f7e012
Source:         389-ds-base-%{version}.tar.zst
Bernhard M. Wiedemann 11f43a
Source1:        extra-schema.tgz
Bernhard M. Wiedemann 11f43a
Source2:        LICENSE.openldap
f7e012
Source3:        vendor.tar.zst
f7e012
Source4:        supportutils-plugin-dirsrv.tar.zst
0f874e
Source5:        70yast.ldif
Bernhard M. Wiedemann 11f43a
Source9:        %{name}-rpmlintrc
Bernhard M. Wiedemann 73bf34
Source10:       %{user_group}-user.conf
833e44
Source11:       krbkdcbefore.conf
Bernhard M. Wiedemann 11f43a
# 389-ds does not support i686
Bernhard M. Wiedemann 11f43a
ExcludeArch:    %ix86
Bernhard M. Wiedemann 11f43a
BuildRequires:  autoconf
Bernhard M. Wiedemann 11f43a
BuildRequires:  automake
Bernhard M. Wiedemann 11f43a
BuildRequires:  cracklib-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  cyrus-sasl-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  db-devel >= 4.5
Bernhard M. Wiedemann 11f43a
BuildRequires:  doxygen
0f874e
BuildRequires:  fdupes
2298ac
BuildRequires:  gawk
Bernhard M. Wiedemann 11f43a
BuildRequires:  gcc-c++
Bernhard M. Wiedemann 11f43a
BuildRequires:  gdb
Bernhard M. Wiedemann 11f43a
BuildRequires:  krb5-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  libcmocka-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  libevent-devel
5d41cb
BuildRequires:  libjson-c-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  libtalloc-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  libtevent-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  libtool
143672
BuildRequires:  lmdb-devel
788c17
BuildRequires:  procps
Bernhard M. Wiedemann 73bf34
BuildRequires:  sysuser-tools
Bernhard M. Wiedemann 11f43a
# net-snmp-devel is needed to build the snmp ldap-agent
Bernhard M. Wiedemann 11f43a
BuildRequires:  net-snmp-devel >= 5.1.2
Bernhard M. Wiedemann 11f43a
BuildRequires:  openldap2-devel
e8788e
# Libressl is incompatible with our rust cryptographic needs.
e8788e
BuildRequires:  openssl-devel
Bernhard M. Wiedemann 11f43a
# pam-devel is required by the pam passthru auth plug-in
9e0fe5
BuildRequires:  %use_python-argcomplete
9e0fe5
BuildRequires:  %use_python-argparse-manpage
b9361b
BuildRequires:  %use_python-cryptography
9e0fe5
BuildRequires:  %use_python-devel
9e0fe5
BuildRequires:  %use_python-ldap >= 3
9e0fe5
BuildRequires:  %use_python-pyasn1
9e0fe5
BuildRequires:  %use_python-pyasn1-modules
9e0fe5
BuildRequires:  %use_python-python-dateutil
9e0fe5
BuildRequires:  %use_python-setuptools
Bernhard M. Wiedemann 11f43a
BuildRequires:  pam-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  pkgconfig
Bernhard M. Wiedemann 11f43a
BuildRequires:  python-rpm-macros
e8788e
BuildRequires:  zlib-devel
f7e012
BuildRequires:  zstd
Bernhard M. Wiedemann 11f43a
BuildRequires:  pkgconfig(icu-i18n)
Bernhard M. Wiedemann 11f43a
BuildRequires:  pkgconfig(icu-uc)
Bernhard M. Wiedemann 11f43a
BuildRequires:  pkgconfig(libcap)
Bernhard M. Wiedemann d6e222
BuildRequires:  pkgconfig(libcrypto)
a11e15
BuildRequires:  pkgconfig(libpcre2-8)
Bernhard M. Wiedemann 11f43a
BuildRequires:  pkgconfig(libsystemd)
Bernhard M. Wiedemann 11f43a
BuildRequires:  pkgconfig(nspr)
Bernhard M. Wiedemann 11f43a
BuildRequires:  pkgconfig(nss)
Bernhard M. Wiedemann 11f43a
BuildRequires:  pkgconfig(systemd)
Bernhard M. Wiedemann 11f43a
%if %{use_tcmalloc}
Bernhard M. Wiedemann 11f43a
BuildRequires:  pkgconfig(libtcmalloc)
Bernhard M. Wiedemann 11f43a
%endif
Bernhard M. Wiedemann 11f43a
BuildRequires:  cargo
1f2367
BuildRequires:  rsync
Bernhard M. Wiedemann 11f43a
BuildRequires:  rust
Bernhard M. Wiedemann 11f43a
Requires:       %{_sbindir}/service
Bernhard M. Wiedemann 11f43a
Requires:       acl
Bernhard M. Wiedemann 11f43a
# This is a requirement as it's the only known "safe" method of
Bernhard M. Wiedemann 11f43a
# plaintext password authentication to ldap, beside the use of
Bernhard M. Wiedemann 11f43a
# ldaps.
Bernhard M. Wiedemann 11f43a
Requires:       cyrus-sasl-plain
Bernhard M. Wiedemann 11f43a
Requires:       db-utils
Bernhard M. Wiedemann 11f43a
Requires:       lib389 = %{version}
Bernhard M. Wiedemann 11f43a
# Needed for creating the ccache and some GSSAPI steps in sasl
Bernhard M. Wiedemann 11f43a
Requires:       krb5
Bernhard M. Wiedemann 73bf34
%sysusers_requires
Bernhard M. Wiedemann 11f43a
# 389-ds does not directly require gssapi, but it is needed for
Bernhard M. Wiedemann 11f43a
# ldap gssapi auth, so we recommend it.
Bernhard M. Wiedemann 11f43a
# This used to be a requirement, but it's actually optional.
Bernhard M. Wiedemann 11f43a
Recommends:     cyrus-sasl-gssapi
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
Requires(post): fillup
cbfc91
Requires(post): permissions
Bernhard M. Wiedemann 11f43a
Obsoletes:      389-ds-base < %{version}-%{release}
Bernhard M. Wiedemann 11f43a
Provides:       389-ds-base = %{version}-%{release}
Bernhard M. Wiedemann 73bf34
%{?systemd_ordering}
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%description
Bernhard M. Wiedemann 11f43a
389 Directory Server is a full-featured LDAPv3 compliant server. In
Bernhard M. Wiedemann 11f43a
addition to the standard LDAPv3 operations, it supports multi-master
Bernhard M. Wiedemann 11f43a
replication, fully online configuration and administration, chaining,
Bernhard M. Wiedemann 11f43a
virtual attributes, access control directives in the data, Virtual
Bernhard M. Wiedemann 11f43a
List View, server-side sorting, SASL, TLS/SSL, and many other
Bernhard M. Wiedemann 11f43a
features. (The server started out as Netscape Directory Server.)
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%package devel
Bernhard M. Wiedemann 11f43a
Summary:        Development files for the 389 Directory Server
Bernhard M. Wiedemann 11f43a
License:        GPL-3.0-or-later AND MPL-2.0
Bernhard M. Wiedemann 11f43a
Group:          Development/Libraries/C and C++
Bernhard M. Wiedemann 11f43a
Provides:       svrcore-devel = 4.1.4
Bernhard M. Wiedemann 11f43a
Obsoletes:      svrcore-devel < 4.1.4
Bernhard M. Wiedemann 11f43a
Requires:       %{name} = %{version}
Bernhard M. Wiedemann 11f43a
Requires:       %{svrcorelib} = %{version}
Bernhard M. Wiedemann 11f43a
Requires:       libevent-devel
Bernhard M. Wiedemann 11f43a
Requires:       openldap2-devel
Bernhard M. Wiedemann 11f43a
Requires:       pkgconfig
Bernhard M. Wiedemann 11f43a
Requires:       pkgconfig(nspr)
Bernhard M. Wiedemann 11f43a
Requires:       pkgconfig(nss)
Bernhard M. Wiedemann 11f43a
Requires:       pkgconfig(systemd)
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%description devel
Bernhard M. Wiedemann 11f43a
389 Directory Server is a full-featured LDAPv3 compliant server. In
Bernhard M. Wiedemann 11f43a
addition to the standard LDAPv3 operations, it supports multi-master
Bernhard M. Wiedemann 11f43a
replication, fully online configuration and administration, chaining,
Bernhard M. Wiedemann 11f43a
virtual attributes, access control directives in the data, Virtual
Bernhard M. Wiedemann 11f43a
List View, server-side sorting, SASL, TLS/SSL, and many other
Bernhard M. Wiedemann 11f43a
features.
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
This package contains the development files for 389DS.
Bernhard M. Wiedemann 11f43a
cbfc91
%package        snmp
Bernhard M. Wiedemann 11f43a
Summary:        SNMP Agent for 389 Directory Server
Bernhard M. Wiedemann 11f43a
License:        GPL-3.0-or-later AND MPL-2.0
Bernhard M. Wiedemann 11f43a
Group:          System/Daemons
Bernhard M. Wiedemann 11f43a
Requires:       %{name} = %{version}
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
Obsoletes:      %{name} <= 1.3.6.2
Bernhard M. Wiedemann 11f43a
cbfc91
%description    snmp
Bernhard M. Wiedemann 11f43a
SNMP Agent for the 389 Directory Server base package.
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%package -n lib389
Bernhard M. Wiedemann 11f43a
Summary:        389 Directory Server administration tools and library
Bernhard M. Wiedemann 11f43a
License:        GPL-3.0-or-later AND MPL-2.0
Bernhard M. Wiedemann 11f43a
Group:          Development/Languages/Python
Bernhard M. Wiedemann 11f43a
Requires:       %{use_python}-argcomplete
Bernhard M. Wiedemann 11f43a
Requires:       %{use_python}-argparse-manpage
bba3a3
Requires:       %{use_python}-cryptography
Bernhard M. Wiedemann a10be1
Requires:       %{use_python}-distro
Bernhard M. Wiedemann 11f43a
Requires:       %{use_python}-ldap >= 3.0
Bernhard M. Wiedemann 11f43a
Requires:       %{use_python}-pyasn1
Bernhard M. Wiedemann 11f43a
Requires:       %{use_python}-pyasn1-modules
Bernhard M. Wiedemann 11f43a
Requires:       %{use_python}-python-dateutil
043808
Requires:       %{use_python}-python-slugify
e5f2a0
Requires:       iproute2
Bernhard M. Wiedemann 11f43a
Requires:       krb5-client
Bernhard M. Wiedemann 11f43a
Requires:       mozilla-nss-tools
7a42a2
# Tools like dscreate would call out to /usr/bin/openssl
7a42a2
Requires:       openssl(cli)
Bernhard M. Wiedemann 11f43a
# We recommend this here as a supplementary tool for ldap
Bernhard M. Wiedemann 11f43a
# server interaction, but it's in no way required.
Bernhard M. Wiedemann 11f43a
Recommends:     openldap2-client
Bernhard M. Wiedemann 11f43a
# These are recommended if you have selinux on your system
Bernhard M. Wiedemann 11f43a
# to allow some supplementary automated interactions during
Bernhard M. Wiedemann 11f43a
# setup, but it's not required.
Bernhard M. Wiedemann 11f43a
Recommends:     python3-selinux
Bernhard M. Wiedemann 11f43a
Recommends:     python3-policycoreutils
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
Provides:       python3-lib389 = %{version}-%{release}
Bernhard M. Wiedemann 11f43a
Obsoletes:      python-lib389 < %{version}-%{release}
Bernhard M. Wiedemann 11f43a
Obsoletes:      python3-lib389 < %{version}-%{release}
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%description -n lib389
Bernhard M. Wiedemann 11f43a
Python library for interacting with and administering 389
Bernhard M. Wiedemann 11f43a
Directory Server instances locally or remotely.
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%package -n %{svrcorelib}
Bernhard M. Wiedemann 11f43a
Summary:        Secure PIN handling using NSS crypto
Bernhard M. Wiedemann 11f43a
License:        MPL-2.0
Bernhard M. Wiedemann 11f43a
Group:          System/Libraries
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%description -n %{svrcorelib}
Bernhard M. Wiedemann 11f43a
svrcore provides applications with several ways to handle secure PIN storage
Bernhard M. Wiedemann 11f43a
e.g. in an application that must be restarted, but needs the PIN to unlock
Bernhard M. Wiedemann 11f43a
the private key and other crypto material, without user intervention.  svrcore
Bernhard M. Wiedemann 11f43a
uses the facilities provided by NSS.
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%prep
Bernhard M. Wiedemann d6e222
# Extract the 389-ds sources.
Bernhard M. Wiedemann 11f43a
%setup -q -a 1 -n %{name}-base-%{version}
Bernhard M. Wiedemann 49e124
Bernhard M. Wiedemann d6e222
# Extract the vendor.tar.gz. The -D -T here prevents removal of the sources
Bernhard M. Wiedemann d6e222
# from the previous setup step.
Bernhard M. Wiedemann d6e222
%setup -q -n %{name}-base-%{version} -D -T -a 3
0f874e
# Setup support utils
0f874e
%setup -q -n %{name}-base-%{version} -D -T -a 4
Bernhard M. Wiedemann 11f43a
788c17
# Debugging for if anything goes south.
788c17
lscpu
788c17
free -h
788c17
df -h
788c17
Bernhard M. Wiedemann 11f43a
%build
23e636
%sysusers_generate_pre %{SOURCE10} %{user_group} %{user_group}-user.conf
Bernhard M. Wiedemann 11f43a
# Make sure python3 is used in shebangs
Bernhard M. Wiedemann 11f43a
# FIX ME!!  This should be fixed in the source code !!!
Bernhard M. Wiedemann 11f43a
sed -r -i '1s|^#!\s*%{_bindir}.*python.*|#!%{_bindir}/%{use_python}|' ldap/admin/src/scripts/{*.py,ds-replcheck} src/lib389/cli/ds*
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
# TODO:
Bernhard M. Wiedemann 11f43a
# seems to have no effect --enable-perl \
Bernhard M. Wiedemann 11f43a
# warning that it might lead to instabilities --with-journald \
Bernhard M. Wiedemann 11f43a
touch docs/custom.css
Bernhard M. Wiedemann 11f43a
autoreconf -fi
Bernhard M. Wiedemann 11f43a
export CFLAGS="%{optflags}" # -std=gnu99"
Bernhard M. Wiedemann 11f43a
%configure \
Bernhard M. Wiedemann 11f43a
  %if 0%{?suse_version} >= 1330
Bernhard M. Wiedemann 11f43a
  --enable-gcc-security \
Bernhard M. Wiedemann 11f43a
  %endif
Bernhard M. Wiedemann 11f43a
  --enable-autobind \
Bernhard M. Wiedemann 11f43a
  --enable-auto-dn-suffix \
Bernhard M. Wiedemann 11f43a
  --with-openldap \
Bernhard M. Wiedemann 11f43a
  --enable-cmocka \
Bernhard M. Wiedemann 11f43a
  %if %{use_tcmalloc}
Bernhard M. Wiedemann 11f43a
  --enable-tcmalloc \
Bernhard M. Wiedemann 11f43a
  %endif
Bernhard M. Wiedemann 11f43a
  --with-selinux \
Bernhard M. Wiedemann 49e124
  --enable-rust-offline \
Bernhard M. Wiedemann 11f43a
  --disable-perl \
Bernhard M. Wiedemann 11f43a
  --libexecdir=%{_prefix}/lib/dirsrv/ \
Bernhard M. Wiedemann 11f43a
  --with-pythonexec="%{_bindir}/%{use_python}" \
Bernhard M. Wiedemann 11f43a
  --with-systemd \
0f874e
  --with-systemdgroupname=dirsrv.target \
Bernhard M. Wiedemann 11f43a
  --with-systemdsystemunitdir="%{_unitdir}" \
Bernhard M. Wiedemann 11f43a
  --with-systemdsystemconfdir="%{_sysconfdir}/systemd/system" \
Bernhard M. Wiedemann b4f707
  --with-tmpfiles-d="%{_sysconfdir}/tmpfiles.d" \
Bernhard M. Wiedemann 11f43a
  --with-systemdgroupname=dirsrv.target \
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
export XCFLAGS="$CFLAGS"
Bernhard M. Wiedemann 2d9b83
make src/lib389/setup.py
Bernhard M. Wiedemann 11f43a
make %{?_smp_mflags}
Bernhard M. Wiedemann 11f43a
pushd src/lib389
9e0fe5
%python3_build
Bernhard M. Wiedemann 11f43a
popd
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%install
Bernhard M. Wiedemann 11f43a
%make_install
Bernhard M. Wiedemann 11f43a
pushd src/lib389
9e0fe5
%python3_install
Bernhard M. Wiedemann d6e222
mv %{buildroot}/usr/libexec/dirsrv/dscontainer %{buildroot}%{_prefix}/lib/dirsrv/
Bernhard M. Wiedemann d6e222
rmdir %{buildroot}/usr/libexec/dirsrv/
Bernhard M. Wiedemann 11f43a
popd
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
cp -r man/man3 %{buildroot}%{_mandir}/man3
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
install -D -d -m 0750 %{buildroot}%{homedir}
Bernhard M. Wiedemann 11f43a
mkdir -p %{buildroot}%{logdir}
Bernhard M. Wiedemann 11f43a
mkdir -p %{buildroot}%{homedir}
Bernhard M. Wiedemann 11f43a
mkdir -p %{buildroot}%{lockdir}
Bernhard M. Wiedemann 73bf34
mkdir -p %{buildroot}%{_sysusersdir}
0f874e
mkdir -p %{buildroot}/usr/lib/supportconfig/plugins/
833e44
mkdir -p %{buildroot}%{_unitdir}/dirsrv@.service.d/
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
#remove libtool archives and static libs
Bernhard M. Wiedemann 11f43a
find %{buildroot} -type f -name "*.la" -delete -print
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
# install extra schema files
Bernhard M. Wiedemann 11f43a
cp -R extra-schema "%{buildroot}/%{_datadir}/dirsrv/"
0f874e
cp %{SOURCE5} "%{buildroot}/%{_datadir}/dirsrv/schema/"
0f874e
0f874e
# Install the support utils plugin.
84f6ea
cp supportutils-plugin-dirsrv*/dirsrv "%{buildroot}/usr/lib/supportconfig/plugins/dirsrv"
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
# bring OpenLDAP copyright notice here because it is referenced by several extra schema files
Bernhard M. Wiedemann 11f43a
cp %{SOURCE2} ./
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
rm -rv %{buildroot}/usr/share/cockpit/
Bernhard M. Wiedemann 11f43a
rm -rv %{buildroot}/usr/share/metainfo/389-console/
Bernhard M. Wiedemann 11f43a
mv src/svrcore/README{,.svrcore}
Bernhard M. Wiedemann 11f43a
mv src/svrcore/LICENSE{,.svrcore}
Bernhard M. Wiedemann 73bf34
install -m 0644 %{SOURCE10} %{buildroot}%{_sysusersdir}/
833e44
install -m 0644 %{SOURCE11} %{buildroot}%{_unitdir}/dirsrv@.service.d/krbkdcbefore.conf
Bernhard M. Wiedemann 11f43a
84f6ea
# For the purposes of our krb integration, we enable this by default.
84f6ea
mv %{buildroot}%{_datadir}/dirsrv/data/60kerberos.ldif %{buildroot}%{_datadir}/dirsrv/schema/60kerberos.ldif
84f6ea
0f874e
# Sssshhh duplicate checker ...
0f874e
%fdupes %{buildroot}/%{_prefix}
0f874e
4a194f
%pre -f %{user_group}.pre
0f874e
%service_add_pre dirsrv.target
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%post
0f874e
%service_add_post dirsrv.target
Bernhard M. Wiedemann 11f43a
%fillup_only -n dirsrv
Bernhard M. Wiedemann 11f43a
%set_permissions %{_sbindir}/ns-slapd
043808
Bernhard M. Wiedemann 11f43a
%verifyscript
Bernhard M. Wiedemann 11f43a
%verify_permissions -e %{_sbindir}/ns-slapd
Bernhard M. Wiedemann 11f43a
0f874e
%preun
0f874e
%service_del_preun dirsrv.target
0f874e
Bernhard M. Wiedemann 11f43a
%postun
0f874e
%service_del_postun dirsrv.target
Bernhard M. Wiedemann 11f43a
output=/dev/null
Bernhard M. Wiedemann 11f43a
# reload to pick up any changes to systemd files
Bernhard M. Wiedemann 11f43a
/bin/systemctl daemon-reload >$output 2>&1 || :
Bernhard M. Wiedemann 11f43a
# reload to pick up any shared lib changes
Bernhard M. Wiedemann 11f43a
%fillup_only -n dirsrv
Bernhard M. Wiedemann 11f43a
%fillup_only -n dirsrv.systemd
Bernhard M. Wiedemann 11f43a
exit 0
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%pre snmp
Bernhard M. Wiedemann 11f43a
%service_add_pre dirsrv-snmp.service
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%post snmp
0f874e
%service_add_post dirsrv-snmp.service
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%preun snmp
0f874e
%service_del_preun dirsrv-snmp.service
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%postun snmp
0f874e
%service_del_postun dirsrv-snmp.service
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%post -n %{svrcorelib} -p /sbin/ldconfig
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%postun -n %{svrcorelib} -p /sbin/ldconfig
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%files
Bernhard M. Wiedemann 11f43a
%doc README*
Bernhard M. Wiedemann 11f43a
%license LICENSE LICENSE.openldap
Bernhard M. Wiedemann 73bf34
%{_sysusersdir}/%{user_group}-user.conf
Bernhard M. Wiedemann 11f43a
%dir %attr(-,%{user_group},%{user_group}) %{homedir}
Bernhard M. Wiedemann 11f43a
%dir %attr(-,%{user_group},%{user_group}) %{logdir}
Bernhard M. Wiedemann 11f43a
%config(noreplace) %{_sysconfdir}/dirsrv/config/*
Bernhard M. Wiedemann 11f43a
%config(noreplace) %{_sysconfdir}/dirsrv/schema/*
Bernhard M. Wiedemann 11f43a
%{_datadir}/dirsrv
Bernhard M. Wiedemann 11f43a
%dir %{_libdir}/dirsrv
Bernhard M. Wiedemann 11f43a
%dir %{_libdir}/dirsrv/*
Bernhard M. Wiedemann 11f43a
%dir %{_sysconfdir}/dirsrv
Bernhard M. Wiedemann 11f43a
%dir %{_sysconfdir}/dirsrv/config
Bernhard M. Wiedemann 11f43a
%dir %{_sysconfdir}/dirsrv/schema
Bernhard M. Wiedemann f92991
%{_libdir}/dirsrv/librewriters.so
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/plugins/*.so
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/python/*.py
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/*.so.*
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man1/ldap-agent*
Bernhard M. Wiedemann 11f43a
%{_mandir}/man1/*
Bernhard M. Wiedemann 11f43a
%{_mandir}/man5/*
Bernhard M. Wiedemann 11f43a
%{_mandir}/man8/ns-slapd.8.gz
2596ef
%{_mandir}/man8/openldap_to_ds.8.gz
Bernhard M. Wiedemann 11f43a
%{_bindir}/*
Bernhard M. Wiedemann 11f43a
# TODO: audit bug running https://bugzilla.opensuse.org/show_bug.cgi?id=1111564
Bernhard M. Wiedemann 11f43a
# This also needs a lot more work on the service file
Bernhard M. Wiedemann 11f43a
#attr(750,root,dirsrv) #caps(CAP_NET_BIND_SERVICE=pe) #{_sbindir}/ns-slapd
Bernhard M. Wiedemann f92991
%verify(not caps) %attr(755,root,root) %{_sbindir}/ns-slapd
2596ef
%{_sbindir}/openldap_to_ds
Bernhard M. Wiedemann 11f43a
%{_unitdir}/dirsrv@.service
833e44
%dir %{_unitdir}/dirsrv@.service.d
833e44
%{_unitdir}/dirsrv@.service.d/krbkdcbefore.conf
Bernhard M. Wiedemann 11f43a
%{_unitdir}/dirsrv.target
Bernhard M. Wiedemann 11f43a
%exclude %{_unitdir}/dirsrv@.service.d/custom.conf
Bernhard M. Wiedemann d6e222
%{_prefix}/lib/dirsrv/ds_systemd_ask_password_acl
043808
%{_prefix}/lib/dirsrv/ds_selinux_restorecon.sh
Bernhard M. Wiedemann 11f43a
# This has to be hardcoded to /lib - $libdir changes between lib/lib64, but
Bernhard M. Wiedemann 11f43a
# sysctl.d is always in /lib.
Bernhard M. Wiedemann 11f43a
%{_prefix}/lib/sysctl.d/*
Bernhard M. Wiedemann 11f43a
%dir %{_datadir}/gdb/auto-load/usr/sbin/
Bernhard M. Wiedemann 11f43a
%{_datadir}/gdb/auto-load/usr/sbin/ns-slapd-gdb.py
0f874e
%dir %{_prefix}/lib/supportconfig
0f874e
%dir %{_prefix}/lib/supportconfig/plugins
0f874e
%attr(750,root,root) %{_prefix}/lib/supportconfig/plugins/dirsrv
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%files devel
Bernhard M. Wiedemann 11f43a
%doc README*
Bernhard M. Wiedemann 11f43a
%doc src/svrcore/README.svrcore
Bernhard M. Wiedemann 11f43a
%license LICENSE
Bernhard M. Wiedemann 11f43a
%license src/svrcore/LICENSE.svrcore
Bernhard M. Wiedemann 11f43a
%{_mandir}/man3/*
Bernhard M. Wiedemann 11f43a
%{_includedir}/dirsrv
Bernhard M. Wiedemann 11f43a
%{_includedir}/svrcore.h
Bernhard M. Wiedemann 11f43a
%{_libdir}/libsvrcore.so
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/libslapd.so
d9d583
%{_libdir}/dirsrv/libns-dshttpd.so
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/libldaputil.so
Bernhard M. Wiedemann 11f43a
%{_libdir}/pkgconfig/dirsrv.pc
Bernhard M. Wiedemann 11f43a
%{_libdir}/pkgconfig/svrcore.pc
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%files -n %{svrcorelib}
Bernhard M. Wiedemann 11f43a
%license src/svrcore/LICENSE*
Bernhard M. Wiedemann 11f43a
%{_libdir}/libsvrcore.so.*
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%files snmp
Bernhard M. Wiedemann 11f43a
%license LICENSE LICENSE.GPLv3+ LICENSE.openssl
Bernhard M. Wiedemann 11f43a
# TODO: README.devel
0f874e
%config(noreplace)%{_sysconfdir}/dirsrv/config/ldap-agent.conf
Bernhard M. Wiedemann 11f43a
%{_sbindir}/ldap-agent*
Bernhard M. Wiedemann 11f43a
%{_mandir}/man1/ldap-agent.1*
0f874e
%{_unitdir}/dirsrv-snmp.service
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%files -n lib389
Bernhard M. Wiedemann 11f43a
%license src/lib389/LICENSE
Bernhard M. Wiedemann 11f43a
%doc src/lib389/README*
Bernhard M. Wiedemann 11f43a
%{_sbindir}/dsconf
Bernhard M. Wiedemann 11f43a
%{_sbindir}/dscreate
Bernhard M. Wiedemann 11f43a
%{_sbindir}/dsctl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/dsidm
Bernhard M. Wiedemann d6e222
%dir %{_prefix}/lib/dirsrv/
Bernhard M. Wiedemann d6e222
%{_prefix}/lib/dirsrv/dscontainer
Bernhard M. Wiedemann 11f43a
%{_mandir}/man8/dsconf.8.gz
Bernhard M. Wiedemann 11f43a
%{_mandir}/man8/dscreate.8.gz
Bernhard M. Wiedemann 11f43a
%{_mandir}/man8/dsctl.8.gz
Bernhard M. Wiedemann 11f43a
%{_mandir}/man8/dsidm.8.gz
9e0fe5
%{python3_sitelib}/lib389*
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%changelog