Blame 389-ds.spec

Bernhard M. Wiedemann 11f43a
#
Bernhard M. Wiedemann 11f43a
# spec file for package 389-ds
Bernhard M. Wiedemann 11f43a
#
Bernhard M. Wiedemann 11f43a
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
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
# bcond is confusingly backwards to what you expect - without means
Bernhard M. Wiedemann 11f43a
#  to ENABLE the option, with means to DISABLE it.
Bernhard M. Wiedemann 11f43a
%if (0%{is_opensuse} > 0) || (0%{?sle_version} > 150100)
Bernhard M. Wiedemann 11f43a
%bcond_without lib389
Bernhard M. Wiedemann 11f43a
# Temporarily disable rust due to a broken library.
Bernhard M. Wiedemann 11f43a
%bcond_with rust
Bernhard M. Wiedemann 11f43a
%else
Bernhard M. Wiedemann 11f43a
%bcond_with    lib389
Bernhard M. Wiedemann 11f43a
%bcond_with    rust
Bernhard M. Wiedemann 11f43a
%endif
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
# Home directory
Bernhard M. Wiedemann 11f43a
%global pkgname   dirsrv
Bernhard M. Wiedemann 11f43a
%global groupname %{pkgname}.target
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
Bernhard M. Wiedemann 11f43a
Version:        1.4.1.6~git0.5ac5a8aad
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 11f43a
Url:            https://pagure.io/389-ds-base
Bernhard M. Wiedemann 11f43a
Source:         389-ds-base-%{version}.tar.bz2
Bernhard M. Wiedemann 11f43a
Source1:        extra-schema.tgz
Bernhard M. Wiedemann 11f43a
Source2:        LICENSE.openldap
Bernhard M. Wiedemann 11f43a
Source9:        %{name}-rpmlintrc
Bernhard M. Wiedemann 11f43a
# 389-ds does not support i686
Bernhard M. Wiedemann 11f43a
ExcludeArch:    %ix86
Bernhard M. Wiedemann 11f43a
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
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
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
Bernhard M. Wiedemann 11f43a
BuildRequires:  libtalloc-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  libtevent-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  libtool
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
Bernhard M. Wiedemann 11f43a
# pam-devel is required by the pam passthru auth plug-in
Bernhard M. Wiedemann 11f43a
BuildRequires:  %{python_module devel}
Bernhard M. Wiedemann 11f43a
BuildRequires:  %{python_module setuptools}
Bernhard M. Wiedemann 11f43a
%if %{with lib389}
Bernhard M. Wiedemann 11f43a
BuildRequires:  %{python_module argcomplete}
Bernhard M. Wiedemann 11f43a
BuildRequires:  %{python_module argparse-manpage}
Bernhard M. Wiedemann 11f43a
BuildRequires:  %{python_module ldap >= 3}
Bernhard M. Wiedemann 11f43a
BuildRequires:  %{python_module pyasn1-modules}
Bernhard M. Wiedemann 11f43a
BuildRequires:  %{python_module pyasn1}
Bernhard M. Wiedemann 11f43a
BuildRequires:  %{python_module python-dateutil}
Bernhard M. Wiedemann 11f43a
BuildRequires:  %{python_module six}
Bernhard M. Wiedemann 11f43a
%endif
Bernhard M. Wiedemann 11f43a
BuildRequires:  pam-devel
Bernhard M. Wiedemann 11f43a
BuildRequires:  pkgconfig
Bernhard M. Wiedemann 11f43a
BuildRequires:  python-rpm-macros
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 11f43a
BuildRequires:  pkgconfig(libpcre)
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:  rsync
Bernhard M. Wiedemann 11f43a
%if %{with rust}
Bernhard M. Wiedemann 11f43a
BuildRequires:  cargo
Bernhard M. Wiedemann 11f43a
BuildRequires:  rust
Bernhard M. Wiedemann 11f43a
%endif
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
%if %{with lib389}
Bernhard M. Wiedemann 11f43a
Requires:       lib389 = %{version}
Bernhard M. Wiedemann 11f43a
%else
Bernhard M. Wiedemann 11f43a
Requires:       bind-utils
Bernhard M. Wiedemann 11f43a
Requires:       perl(Mozilla::LDAP::API)
Bernhard M. Wiedemann 11f43a
Requires:       perl(Mozilla::LDAP::Conn)
Bernhard M. Wiedemann 11f43a
Requires:       perl(Mozilla::LDAP::Entry)
Bernhard M. Wiedemann 11f43a
Requires:       perl(Mozilla::LDAP::LDIF)
Bernhard M. Wiedemann 11f43a
Requires:       perl(Mozilla::LDAP::Utils)
Bernhard M. Wiedemann 11f43a
Requires:       perl(NetAddr::IP)
Bernhard M. Wiedemann 11f43a
Requires:       perl(Socket6)
Bernhard M. Wiedemann 11f43a
%endif
Bernhard M. Wiedemann 11f43a
# Needed for creating the ccache and some GSSAPI steps in sasl
Bernhard M. Wiedemann 11f43a
Requires:       krb5
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
# This is required by rfc2831, however it's also horribly insecure
Bernhard M. Wiedemann 11f43a
# and requires insecure password storage. We really should remove
Bernhard M. Wiedemann 11f43a
# it.
Bernhard M. Wiedemann 11f43a
Recommends:     cyrus-sasl-digestmd5
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
Requires(post): fillup
Bernhard M. Wiedemann 11f43a
Requires(pre):  shadow
Bernhard M. Wiedemann 11f43a
PreReq:         permissions
Bernhard M. Wiedemann 11f43a
Obsoletes:      389-ds-base < %{version}-%{release}
Bernhard M. Wiedemann 11f43a
Provides:       389-ds-base = %{version}-%{release}
Bernhard M. Wiedemann 11f43a
%{?systemd_requires}
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
Bernhard M. Wiedemann 11f43a
%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
Bernhard M. Wiedemann 11f43a
%description      snmp
Bernhard M. Wiedemann 11f43a
SNMP Agent for the 389 Directory Server base package.
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%if %{with lib389}
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
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
Bernhard M. Wiedemann 11f43a
Requires:       %{use_python}-six
Bernhard M. Wiedemann 11f43a
Requires:       krb5-client
Bernhard M. Wiedemann 11f43a
Requires:       mozilla-nss-tools
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
%endif
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 11f43a
%setup -q -a 1 -n %{name}-base-%{version}
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%build
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 11f43a
  %if %{with rust}
Bernhard M. Wiedemann 11f43a
  --enable-rust \
Bernhard M. Wiedemann 11f43a
  %endif
Bernhard M. Wiedemann 11f43a
  %if %{with lib389}
Bernhard M. Wiedemann 11f43a
  --disable-perl \
Bernhard M. Wiedemann 11f43a
  %else
Bernhard M. Wiedemann 11f43a
  --enable-perl \
Bernhard M. Wiedemann 11f43a
  --with-perldir=%{_bindir} \
Bernhard M. Wiedemann 11f43a
  %endif
Bernhard M. Wiedemann 11f43a
  --libexecdir=%{_prefix}/lib/dirsrv/ \
Bernhard M. Wiedemann 11f43a
  --with-pythonexec="%{_bindir}/%{use_python}" \
Bernhard M. Wiedemann 11f43a
  --with-systemd \
Bernhard M. Wiedemann 11f43a
  --with-systemdgroupname=%{groupname} \
Bernhard M. Wiedemann 11f43a
  --with-systemdsystemunitdir="%{_unitdir}" \
Bernhard M. Wiedemann 11f43a
  --with-systemdsystemconfdir="%{_sysconfdir}/systemd/system" \
Bernhard M. Wiedemann 11f43a
  --with-tmpfiles-d="%{_tmpfilesdir}" \
Bernhard M. Wiedemann 11f43a
  --with-systemdgroupname=dirsrv.target \
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
export XCFLAGS="$CFLAGS"
Bernhard M. Wiedemann 11f43a
make %{?_smp_mflags}
Bernhard M. Wiedemann 11f43a
#make setup.py
Bernhard M. Wiedemann 11f43a
%if %{with lib389}
Bernhard M. Wiedemann 11f43a
pushd src/lib389
Bernhard M. Wiedemann 11f43a
%python_build
Bernhard M. Wiedemann 11f43a
popd
Bernhard M. Wiedemann 11f43a
%endif
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%install
Bernhard M. Wiedemann 11f43a
%make_install
Bernhard M. Wiedemann 11f43a
%if %{with lib389}
Bernhard M. Wiedemann 11f43a
pushd src/lib389
Bernhard M. Wiedemann 11f43a
%python_install
Bernhard M. Wiedemann 11f43a
popd
Bernhard M. Wiedemann 11f43a
%endif
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 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
# make sure perl scripts have a proper shebang
Bernhard M. Wiedemann 11f43a
%if ! %{with lib389}
Bernhard M. Wiedemann 11f43a
sed -i -e 's|#{{PERL-EXEC}}|#!%{_bindir}/perl|' %{buildroot}%{_datadir}/%{pkgname}/script-templates/template-*.pl
Bernhard M. Wiedemann 11f43a
%endif
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
# install extra schema files
Bernhard M. Wiedemann 11f43a
cp -R extra-schema "%{buildroot}/%{_datadir}/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 11f43a
Bernhard M. Wiedemann 11f43a
%pre
Bernhard M. Wiedemann 11f43a
if ! getent group %{user_group} >/dev/null; then
Bernhard M. Wiedemann 11f43a
  %{_sbindir}/groupadd -f -r %{user_group}
Bernhard M. Wiedemann 11f43a
fi
Bernhard M. Wiedemann 11f43a
if ! getent passwd %{user_group} >/dev/null; then
Bernhard M. Wiedemann 11f43a
  %{_sbindir}/useradd  -r -g %{user_group} -s /sbin/nologin -r -d %{homedir} -c "User for 389 directory server" %{user_group}
Bernhard M. Wiedemann 11f43a
fi
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%post
Bernhard M. Wiedemann 11f43a
%fillup_only -n dirsrv
Bernhard M. Wiedemann 11f43a
%set_permissions %{_sbindir}/ns-slapd
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%verifyscript
Bernhard M. Wiedemann 11f43a
%verify_permissions -e %{_sbindir}/ns-slapd
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%postun
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
%preun
Bernhard M. Wiedemann 11f43a
%service_del_preun %{pkgname}.target
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
Bernhard M. Wiedemann 11f43a
%service_add_post %{pkgname}-snmp.service
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%preun snmp
Bernhard M. Wiedemann 11f43a
%service_del_preun %{pkgname}-snmp.service
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%postun snmp
Bernhard M. Wiedemann 11f43a
%service_del_postun %{pkgname}-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
%defattr(-,root,root)
Bernhard M. Wiedemann 11f43a
%doc README*
Bernhard M. Wiedemann 11f43a
%license LICENSE LICENSE.openldap
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 11f43a
%{_libdir}/dirsrv/libns-dshttpd-*.so
Bernhard M. Wiedemann 11f43a
%if ! %{with lib389}
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/perl/*.pm
Bernhard M. Wiedemann 11f43a
%endif
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
%if %{with rust}
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/librsds.so
Bernhard M. Wiedemann 11f43a
%endif
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
%if %{with lib389}
Bernhard M. Wiedemann 11f43a
%{_mandir}/man8/ns-slapd.8.gz
Bernhard M. Wiedemann 11f43a
# With lib389 we don't package all the man pages for deprecated commands. Upstream needs to remove
Bernhard M. Wiedemann 11f43a
# these from the build with --disable-perl flag set.
Bernhard M. Wiedemann 11f43a
# These are excluded now
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/bak2db.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/bak2db.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/cleanallruv.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/db2bak.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/db2bak.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/db2index.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/db2index.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/db2ldif.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/db2ldif.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/dbmon.sh.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/dbverify.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/dn2rdn.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/fixup-linkedattrs.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/fixup-memberof.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/ldif2db.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/ldif2db.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/ldif2ldap.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/migrate-ds.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/monitor.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/ns-accountstatus.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/ns-activate.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/ns-inactivate.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/ns-newpwpolicy.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/remove-ds.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/restart-dirsrv.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/restoreconfig.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/saveconfig.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/schema-reload.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/setup-ds.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/start-dirsrv.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/status-dirsrv.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/stop-dirsrv.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/suffix2instance.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/syntax-validate.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/upgradedb.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/upgradednformat.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/usn-tombstone-cleanup.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/verify-db.pl.8.gz
Bernhard M. Wiedemann 11f43a
%exclude %{_mandir}/man8/vlvindex.8.gz
Bernhard M. Wiedemann 11f43a
%else
Bernhard M. Wiedemann 11f43a
%{_mandir}/man8/*
Bernhard M. Wiedemann 11f43a
%endif
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 11f43a
%verify(not caps) %attr(755,root,dirsrv) %{_sbindir}/ns-slapd
Bernhard M. Wiedemann 11f43a
%if ! %{with lib389}
Bernhard M. Wiedemann 11f43a
%{_sbindir}/bak2db
Bernhard M. Wiedemann 11f43a
%{_sbindir}/bak2db.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/cleanallruv.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/db2bak
Bernhard M. Wiedemann 11f43a
%{_sbindir}/db2bak.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/db2index
Bernhard M. Wiedemann 11f43a
%{_sbindir}/db2index.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/db2ldif
Bernhard M. Wiedemann 11f43a
%{_sbindir}/db2ldif.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/dbmon.sh
Bernhard M. Wiedemann 11f43a
%{_sbindir}/dbverify
Bernhard M. Wiedemann 11f43a
%{_sbindir}/dn2rdn
Bernhard M. Wiedemann 11f43a
%{_sbindir}/fixup-linkedattrs.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/fixup-memberof.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/ldif2db
Bernhard M. Wiedemann 11f43a
%{_sbindir}/ldif2db.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/ldif2ldap
Bernhard M. Wiedemann 11f43a
%{_sbindir}/migrate-ds.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/monitor
Bernhard M. Wiedemann 11f43a
%{_sbindir}/ns-accountstatus.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/ns-activate.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/ns-inactivate.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/ns-newpwpolicy.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/remove-ds.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/restart-dirsrv
Bernhard M. Wiedemann 11f43a
%{_sbindir}/restoreconfig
Bernhard M. Wiedemann 11f43a
%{_sbindir}/saveconfig
Bernhard M. Wiedemann 11f43a
%{_sbindir}/schema-reload.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/setup-ds.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/start-dirsrv
Bernhard M. Wiedemann 11f43a
%{_sbindir}/status-dirsrv
Bernhard M. Wiedemann 11f43a
%{_sbindir}/stop-dirsrv
Bernhard M. Wiedemann 11f43a
%{_sbindir}/suffix2instance
Bernhard M. Wiedemann 11f43a
%{_sbindir}/syntax-validate.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/upgradedb
Bernhard M. Wiedemann 11f43a
%{_sbindir}/upgradednformat
Bernhard M. Wiedemann 11f43a
%{_sbindir}/usn-tombstone-cleanup.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/verify-db.pl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/vlvindex
Bernhard M. Wiedemann 11f43a
%endif
Bernhard M. Wiedemann 11f43a
%{_unitdir}/dirsrv@.service
Bernhard M. Wiedemann 11f43a
%{_unitdir}/dirsrv.target
Bernhard M. Wiedemann 11f43a
%exclude %{_unitdir}/dirsrv@.service.d/custom.conf
Bernhard M. Wiedemann 11f43a
%{_prefix}/lib/dirsrv/
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
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%files devel
Bernhard M. Wiedemann 11f43a
%defattr(-,root,root)
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/libns-dshttpd.so
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/libnunc-stans.so
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/libsds.so
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/libslapd.so
Bernhard M. Wiedemann 11f43a
%{_libdir}/dirsrv/libldaputil.so
Bernhard M. Wiedemann 11f43a
%{_libdir}/pkgconfig/dirsrv.pc
Bernhard M. Wiedemann 11f43a
%{_libdir}/pkgconfig/libsds.pc
Bernhard M. Wiedemann 11f43a
%{_libdir}/pkgconfig/nunc-stans.pc
Bernhard M. Wiedemann 11f43a
%{_libdir}/pkgconfig/svrcore.pc
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%files -n %{svrcorelib}
Bernhard M. Wiedemann 11f43a
%defattr(-,root,root,-)
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
%defattr(-,root,root,-)
Bernhard M. Wiedemann 11f43a
%license LICENSE LICENSE.GPLv3+ LICENSE.openssl
Bernhard M. Wiedemann 11f43a
# TODO: README.devel
Bernhard M. Wiedemann 11f43a
%config(noreplace)%{_sysconfdir}/%{pkgname}/config/ldap-agent.conf
Bernhard M. Wiedemann 11f43a
%{_sbindir}/ldap-agent*
Bernhard M. Wiedemann 11f43a
%{_mandir}/man1/ldap-agent.1*
Bernhard M. Wiedemann 11f43a
%{_unitdir}/%{pkgname}-snmp.service
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%if %{with lib389}
Bernhard M. Wiedemann 11f43a
%files -n lib389
Bernhard M. Wiedemann 11f43a
%defattr(-,root,root,-)
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}/dscontainer
Bernhard M. Wiedemann 11f43a
%{_sbindir}/dsctl
Bernhard M. Wiedemann 11f43a
%{_sbindir}/dsidm
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
Bernhard M. Wiedemann 11f43a
/usr/lib/python*/site-packages/lib389*
Bernhard M. Wiedemann 11f43a
%endif
Bernhard M. Wiedemann 11f43a
Bernhard M. Wiedemann 11f43a
%changelog