commit 389-ds for openSUSE:Factory
Hello community,
here is the log from the commit of package 389-ds for openSUSE:Factory checked in at 2018-01-31 19:54:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/389-ds (Old)
and /work/SRC/openSUSE:Factory/.389-ds.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "389-ds"
Wed Jan 31 19:54:25 2018 rev:13 rq:571393 version:1.4.0.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/389-ds/389-ds.changes 2017-09-20 17:11:26.632088337 +0200
+++ /work/SRC/openSUSE:Factory/.389-ds.new/389-ds.changes 2018-01-31 19:54:27.522314643 +0100
@@ -1,0 +2,537 @@
+Wed Jan 31 13:28:21 UTC 2018 - hguo@suse.com
+
+- For SLES 15 schedule, do not build lib389 programmable extension
+ for now.
+
+-------------------------------------------------------------------
+Wed Jan 31 11:13:17 UTC 2018 - dimstar@opensuse.org
+
+- BuildRequire python3-ldap instead of python3-pyldap: pyldap is
+ deprecated in favor of python-ldap.
+
+-------------------------------------------------------------------
+Tue Jan 30 14:19:15 UTC 2018 - hguo@suse.com
+
+- Rename dependency package python-pyldap into python3-pyldap.
+
+-------------------------------------------------------------------
+Mon Jan 29 15:20:10 UTC 2018 - hguo@suse.com
+
+- Correct name to dependency package "python-pyldap".
+
+-------------------------------------------------------------------
+Thu Jan 25 15:09:41 UTC 2018 - hguo@suse.com
+
+- Introduce patch 0003-fix-rm-non-existent-man-pages.patch to remove
+ a faulty rm statement from makefile.
+
+-------------------------------------------------------------------
+Tue Dec 5 14:45:57 UTC 2017 - rbrown@suse.com
+
+- Replace references to /var/adm/fillup-templates with new
+ %_fillupdir macro (boo#1069468)
+
+-------------------------------------------------------------------
+Mon Nov 20 22:34:46 UTC 2017 - mrueckert@suse.de
+
+- added simplify-lib389-setup-py.patch
+ seems the python3 setuptools on leap 42.3 do not like this fancy
+ syntax. kill it and always use the python 3 way.
+
+-------------------------------------------------------------------
+Mon Nov 20 22:15:45 UTC 2017 - mrueckert@suse.de
+
+- update to 1.4.0.3
+ - Ticket 49457 - Fix spal_meminfo_get function prototype
+ - Ticket 49455 - Add tests to monitor test suit.
+ - Ticket 49448 - dynamic default pw scheme based on environment.
+ - Ticket 49298 - fix complier warn
+ - Ticket 49298 - Correct error codes with config restore.
+ - Ticket 49454 - SSL Client Authentication breaks in FIPS mode
+ - Ticket 49453 - passwd.py to use pwdhash defaults.
+ - Ticket 49427 - whitespace in fedse.c
+ - Ticket 49410 - opened connection can remain no longer poll,
+ like hanging
+ - Ticket 48118 - fix compiler warning for incorrect return type
+ - Ticket 49451 - Add environment markers to lib389 dependencies
+ - Ticket 49325 - Proof of concept rust tqueue in sds
+ - Ticket 49443 - scope one searches in 1.3.7 give incorrect
+ results
+ - Ticket 48118 - At startup, changelog can be erronously rebuilt
+ after a normal shutdown
+ - Ticket 49412 - SIGSEV when setting invalid changelog config
+ value
+ - Ticket 49441 - Import crashes - oneline fix
+ - Ticket 49377 - Incoming BER too large with TLS on plain port
+ - Ticket 49441 - Import crashes with large indexed binary
+ attributes
+ - Ticket 49435 - Fix NS race condition on loaded test systems
+ - Ticket 77 - lib389 - Refactor docstrings in rST format - part 2
+ - Ticket 17 - lib389 - dsremove support
+ - Ticket 3 - lib389 - python 3 compat for paged results test
+ - Ticket 3 - lib389 - Python 3 support for memberof plugin test
+ suit
+ - Ticket 3 - lib389 - config test
+ - Ticket 3 - lib389 - python 3 support ds_logs tests
+ - Ticket 3 - lib389 - python 3 support for betxn test
+
+-------------------------------------------------------------------
+Sat Nov 11 00:53:42 UTC 2017 - mrueckert@suse.de
+
+- we actually need pyldap
+
+-------------------------------------------------------------------
+Fri Nov 10 23:50:29 UTC 2017 - mrueckert@suse.de
+
+- lib389 is merged into this tarball now. move the subpackage here.
+
+-------------------------------------------------------------------
+Fri Nov 10 22:45:23 UTC 2017 - mrueckert@suse.de
+
+- update to 1.4.0.2
+ - Ticket 48393 - fix copy and paste error
+ - Ticket 49439 - cleanallruv is not logging information
+ - Ticket 48393 - Improve replication config validation
+ - Ticket lib389 3 - Python 3 support for ACL test suite
+ - Ticket 103 - sysconfig not found
+ - Ticket 49436 - double free in COS in some conditions
+ - Ticket 48007 - CI test to test changelog trimming interval
+ - Ticket 49424 - Resolve csiphash alignment issues
+ - Ticket lib389 3 - Python 3 support for
+ pwdPolicy_controls_test.py
+ - Ticket 3 - python 3 support - filter test
+ - Ticket 49434 - RPM build errors
+ - Ticket 49432 - filter optimise crash
+ - Ticket 49432 - Add complex fliter CI test
+ - Ticket 48894 - harden valueset_array_to_sorted_quick valueset
+ access
+ - Ticket 49401 - Fix compiler incompatible-pointer-types warnings
+ - Ticket 48681 - Use of uninitialized value in string ne at
+ /usr/bin/logconv.pl
+ - Ticket 49409 - Update lib389 requirements
+ - Ticket 49401 - improve valueset sorted performance on delete
+ - Ticket 49374 - server fails to start because maxdisksize is
+ recognized incorrectly
+ - Ticket 49408 - Server allows to set any nsds5replicaid in the
+ existing replica entry
+ - Ticket 49407 - status-dirsrv shows ellipsed lines
+ - Ticket 48681 - Use of uninitialized value in string ne at
+ /usr/bin/logconv.pl
+ - Ticket 49386 - Memberof should be ignore MODRDN when the
+ pre/post entry are identical
+ - Ticket 48006 - Missing warning for invalid replica backoff
+ configuration
+ - Ticket 49064 - testcase hardening
+ - Ticket 49064 - RFE allow to enable MemberOf plugin in dedicated
+ consumer
+ - Ticket lib389 3 - python 3 support
+ - Ticket 49402 - Adding a database entry with the same database
+ name that was deleted hangs server at shutdown
+ - Ticket 48235 - remove memberof lock (cherry-pick error)
+ - Ticket 49394 - build warning
+ - Ticket 49381 - Refactor numerous suite docstrings - Part 2
+ - Ticket 49394 - slapi_pblock_get may leave unchanged the
+ provided variable
+ - Ticket 49403 - tidy ns logging
+ - Ticket 49381 - Refactor filter test suite docstrings
+ - Ticket 48235 - Remove memberOf global lock
+ - Ticket 103 - Make sysconfig where it is expected to exist
+ - Ticket 49400 - Add clang support to rpm builds
+ - Ticket 49381 - Refactor ACL test suite docstrings
+ - Ticket 49363 - Merge lib389
+ - Ticket 101 - BaseException.message has been deprecated in
+ Python3
+ - Ticket 102 - referral support
+ - Ticket 99 - Fix typo in create_topology
+ - Ticket #98 - Fix dbscan output
+ - Ticket #77 - Fix changelogdb param issue
+ - Ticket #77 - Refactor docstrings in rST format - part 1
+ - Ticket 96 - Change binaries’ names
+ - Ticket 77 - Add sphinx documentation
+ - Ticket 43 - Add support for Referential Integrity plugin
+ - Ticket 45 - Add support for Rootdn Access Control plugin
+ - Ticket 46 - dsconf support for dynamic schema reload
+ - Ticket 74 - Advice users to set referint-update-delay to 0
+ - Ticket 92 - display_attr() should return str not bytes in py3
+ - Ticket 93 - Fix test cases in ctl_dbtasks_test.py
+ - Ticket 88 - python install and remove for tests
+ - Ticket 85 - Remove legacy replication attribute
+ - Ticket 91 - Fix replication topology
+ - Ticket 89 - Fix inconsistency with serverid
+ - Ticket 79 - Fix replica.py and add tests
+ - Ticket 86 - add build dir to gitignore
+ - Ticket 83 - Add an util for generating instance parameters
+ - Ticket 87 - Update accesslog regec for HR etimes
+ - Ticket 49 - Add support for whoami plugin
+ - Ticket 48 - Add support for USN plugin
+ - Ticket 78 - Add exists() method to DSLdapObject
+ - Ticket 31 - Allow complete removal of some memberOf attrs
+ - Ticket31 - Add memberOf fix-up task
+ - Ticket 67 - Add ensure_int function
+ - Ticket 59 - lib389 support for index management.
+ - Ticket 67 - get attr by type
+ - Ticket 70 - Improve repl tools
+ - Ticket 50 - typo in db2* in dsctl
+ - Ticket 31 - Add status command and SkipNested support for
+ MemberOf
+ - Ticket 31 - Add functional tests for MemberOf plugin
+ - Ticket 66 - expand healthcheck for Directory Server
+ - Ticket 69 - add specfile requires
+ - Ticket 31 - Initial MemberOf plugin support
+ - Ticket 50 - Add db2* tasks to dsctl
+ - Ticket 65 - Add m2c2 topology
+ - Ticket 63 - part 2, agreement test
+ - Ticket 63 - lib389 python 3 fix
+ - Ticket 62 - dirsrv offline log
+ - Ticket 60 - add dsrc to dsconf and dsidm
+ - Ticket 32 - Add TLS external bind support for testing
+ - Ticket 27 - Fix get function in tests
+ - Ticket 28 - userAccount for older versions without nsmemberof
+ - Ticket 27 - Improve dseldif API
+ - Ticket 30 - Add initial support for account lock and unlock.
+ - Ticket 29 - fix incorrect format in tools
+ - Ticket 28 - Change default objectClasses for users and groups
+ - Ticket 1 - Fix missing dn / rdn on config.
+ - Ticket 27 - Add a module for working with dse.ldif file
+ - Ticket 1 - cn=config comparison
+ - Ticket 21 - Missing serverid in dirsrv_test due to incorrect
++++ 435 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/389-ds/389-ds.changes
++++ and /work/SRC/openSUSE:Factory/.389-ds.new/389-ds.changes
Old:
----
389-ds-base-1.3.6.6.tar.bz2
389-ds-reproducible.patch
New:
----
0003-fix-rm-non-existent-man-pages.patch
389-ds-base-1.4.0.3.tar.bz2
simplify-lib389-setup-py.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ 389-ds.spec ++++++
--- /var/tmp/diff_new_pack.PQHN0Z/_old 2018-01-31 19:54:28.914249910 +0100
+++ /var/tmp/diff_new_pack.PQHN0Z/_new 2018-01-31 19:54:28.914249910 +0100
@@ -1,7 +1,7 @@
#
# spec file for package 389-ds
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,27 +16,47 @@
#
+#Compat macro for new _fillupdir macro introduced in Nov 2017
+%if ! %{defined _fillupdir}
+ %define _fillupdir /var/adm/fillup-templates
+%endif
+
+%bcond_with lib389
+%define use_python python3
+%define skip_python2 1
+%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+
# Home directory
-%define home /var/lib/dirsrv
+%global pkgname dirsrv
+%global groupname %{pkgname}.target
+
+%define homedir %{_localstatedir}/lib/dirsrv
+%define logdir %{_localstatedir}/log/dirsrv
+%define lockdir %{_localstatedir}/lock/dirsrv
# User and group name that own the home directory
%define user_group dirsrv
+%ifnarch s390x s390 ppc64 ppc64le
+%global use_tcmalloc 1
+%else
+%global use_tcmalloc 0
+%endif
Name: 389-ds
+Version: 1.4.0.3
+Release: 0
Summary: 389 Directory Server
License: GPL-2.0
Group: Productivity/Networking/LDAP/Servers
-Version: 1.3.6.6
-Release: 0
-Url: http://port389.org/
-Source: http://www.port389.org/binaries/%name-base-%version.tar.bz2
+Url: https://pagure.io/389-ds-base
+Source: https://releases.pagure.org/389-ds-base/389-ds-base-%{version}.tar.bz2
Source1: extra-schema.tgz
Source2: LICENSE.openldap
-Source9: %name-rpmlintrc
+Source9: %{name}-rpmlintrc
# PATCH-FIX-SLES -- Make init scripts LSB conform
Patch1: 0001-init_fhs.patch
Patch2: 0002-use-python2-for-selinux-detection.patch
-# PATCH-FIX-UPSTREAM -- Allow to override buildnum
-Patch3: 389-ds-reproducible.patch
+Patch3: 0003-fix-rm-non-existent-man-pages.patch
+Patch4: simplify-lib389-setup-py.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
@@ -44,6 +64,7 @@
BuildRequires: db-devel >= 4.5
BuildRequires: doxygen
BuildRequires: gcc-c++
+BuildRequires: gdb
BuildRequires: krb5-devel
BuildRequires: libcmocka-devel
BuildRequires: libevent-devel
@@ -54,22 +75,35 @@
BuildRequires: net-snmp-devel >= 5.1.2
BuildRequires: openldap2-devel
# pam-devel is required by the pam passthru auth plug-in
+BuildRequires: %{python_module devel}
+BuildRequires: %{python_module setuptools}
+%if %{with lib389}
+BuildRequires: %{python_module pyasn1-modules}
+BuildRequires: %{python_module pyasn1}
+BuildRequires: %{python_module python-dateutil}
+BuildRequires: %{python_module six}
+BuildRequires: python3-ldap
+%endif
BuildRequires: pam-devel
BuildRequires: pkgconfig
-BuildRequires: python3-devel
-BuildRequires: python3-setuptools
+BuildRequires: python-rpm-macros
BuildRequires: pkgconfig(icu-i18n)
BuildRequires: pkgconfig(icu-uc)
BuildRequires: pkgconfig(libpcre)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(nspr)
BuildRequires: pkgconfig(nss)
-BuildRequires: pkgconfig(svrcore)
+BuildRequires: pkgconfig(svrcore) >= 4.1.3
BuildRequires: pkgconfig(systemd)
-Requires: %_sbindir/service
+%if %{use_tcmalloc}
+BuildRequires: pkgconfig(libtcmalloc)
+%endif
+Requires: %{_sbindir}/service
Requires: acl
+Requires: bind-utils
Requires: cyrus-sasl-digestmd5
Requires: cyrus-sasl-gssapi
+Requires: db-utils
Requires: mozilla-nss-tools
Requires: openldap2-client
Requires: python-selinux
@@ -80,14 +114,12 @@
Requires: perl(Mozilla::LDAP::Utils)
Requires: perl(NetAddr::IP)
Requires: perl(Socket6)
-Requires(pre): shadow
Requires(post): fillup
-
+Requires(pre): shadow
+Obsoletes: 389-ds-base < %{version}-%{release}
+Provides: 389-ds-base = %{version}-%{release}
%{?systemd_requires}
-Obsoletes: 389-ds-base < %version-%release
-Provides: 389-ds-base = %version-%release
-
%description
389 Directory Server is a full-featured LDAPv3 compliant server. In
addition to the standard LDAPv3 operations, it supports multi-master
@@ -99,7 +131,13 @@
%package devel
Summary: Development files for the 389 Directory Server
Group: Development/Libraries/C and C++
-Requires: %name = %version-%release
+Requires: %{name} = %{version}
+Requires: openldap2-devel
+Requires: pkgconfig
+Requires: pkgconfig(nspr)
+Requires: pkgconfig(nss)
+Requires: pkgconfig(svrcore) >= 4.1.3
+Requires: pkgconfig(systemd)
%description devel
389 Directory Server is a full-featured LDAPv3 compliant server. In
@@ -111,112 +149,306 @@
This package contains the development files for 389DS.
+%package snmp
+Summary: SNMP Agent for 389 Directory Server
+Group: System/Daemons
+Requires: %{name} = %{version}
+
+# upgrade path from monolithic %{name} (including -libs & -devel) to %{name} + %{name}-snmp
+Obsoletes: %{name} <= 1.3.6.2
+
+%description snmp
+SNMP Agent for the 389 Directory Server base package.
+
+%if %{with lib389}
+%package -n lib389
+Summary: Python library for interacting with the 389 Directory Server
+Group: Development/Languages/Python
+Requires: %{use_python}-pyasn1
+Requires: %{use_python}-pyasn1-modules
+Requires: %{use_python}-pyldap
+Requires: %{use_python}-python-dateutil
+Requires: %{use_python}-six
+Requires: krb5
+Requires: krb5-client
+
+Provides: python-lib389 = %{version}-%{release}
+Provides: python3-lib389 = %{version}-%{release}
+Obsoletes: python-lib389 < %{version}-%{release}
+Obsoletes: python3-lib389 < %{version}-%{release}
+
+%description -n lib389
+Python library for interacting with the 389 Directory Server
+%endif
+
%prep
-%setup -a 1 -qn %name-base-%version
+%setup -q -a 1 -n %{name}-base-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
%build
+# Make sure python3 is used in shebangs
+# FIX ME!! This should be fixed in the source code !!!
+sed -r -i '1s|^#!\s*%{_bindir}.*python.*|#!%{_bindir}/%{use_python}|' ldap/admin/src/scripts/{*.py,ds-replcheck} src/lib389/cli/ds*
+
+# TODO:
+# seems to have no effect --enable-perl \
+# warning that it might lead to instabilities --with-journald \
+
autoreconf -fi
-export CFLAGS="%optflags -std=gnu99"
+export CFLAGS="%{optflags}" # -std=gnu99"
%configure \
+ %if 0%{?suse_version} >= 1330
--enable-gcc-security \
- --bindir="%_libexecdir/%name/bin" \
- --sbindir="%_libexecdir/%name/sbin" \
+ %endif
--enable-autobind \
--enable-auto-dn-suffix \
- --enable-nunc-stans \
+ --with-openldap \
--enable-cmocka \
+ %if %{use_tcmalloc}
+ --enable-tcmalloc \
+ %endif
--with-selinux \
- --with-pythonexec="%_bindir/python3" \
+ --with-perldir=%{_bindir} \
+ --with-pythonexec="%{_bindir}/%{use_python}" \
--with-systemd \
- --with-systemdsystemunitdir="%_unitdir" \
- --with-systemdsystemconfdir="%_sysconfdir/systemd/system" \
- --with-tmpfiles-d="%_tmpfilesdir" \
+ --with-systemdgroupname=%{groupname} \
+ --with-systemdsystemunitdir="%{_unitdir}" \
+ --with-systemdsystemconfdir="%{_sysconfdir}/systemd/system" \
+ --with-tmpfiles-d="%{_tmpfilesdir}" \
--with-systemdgroupname=dirsrv.target \
+export XCFLAGS="$CFLAGS"
make %{?_smp_mflags}
+make setup.py
+%if %{with lib389}
+pushd src/lib389
+%python_build
+popd
+%endif
%install
-b="%buildroot"
-make install DESTDIR="$b"
+%make_install
+%if %{with lib389}
+pushd src/lib389
+%python_install
+popd
+%endif
+
+cp -r man/man3 %{buildroot}%{_mandir}/man3
+
+install -D -d -m 0750 %{buildroot}%{homedir}
+mkdir -p %{buildroot}%{logdir}
+mkdir -p %{buildroot}%{homedir}
+mkdir -p %{buildroot}%{lockdir}
-install -d "$b/%_sbindir"
-ln -s "%_libexecdir/%name/sbin/setup-ds.pl" "$b/%_sbindir/setup-ds.pl"
+# for systemd
+mkdir -p %{buildroot}%{_sysconfdir}/systemd/system/%{groupname}.wants
-install -d "$b/%_unitdir/dirsrv.target.wants"
-ln -s service "$b/%_sbindir/rcdirsrv"
-ln -s service "$b/%_sbindir/rcdirsrv-snmp"
-
-install -d "$b/%_localstatedir/adm/fillup-templates"
-for i in "$b/%_sysconfdir/sysconfig"/*; do
- mv "$i" "$b/%_localstatedir/adm/fillup-templates/sysconfig.${i##*/}"
-done
-find "$b/%_libdir" -type f -name "*.la" -delete
+#remove libtool archives and static libs
+find %{buildroot} -type f -name "*.la" -delete -print
# make sure perl scripts have a proper shebang
-sed -i -e 's|#{{PERL-EXEC}}|#!%_bindir/perl|' "$b/%_datadir/dirsrv/script-templates"/template-*.pl
-install -D -d -m 0750 %buildroot%home
+sed -i -e 's|#{{PERL-EXEC}}|#!%{_bindir}/perl|' %{buildroot}%{_datadir}/%{pkgname}/script-templates/template-*.pl
# install extra schema files
-cp -R extra-schema "$b/%_datadir/dirsrv/"
+cp -R extra-schema "%{buildroot}/%{_datadir}/dirsrv/"
# bring OpenLDAP copyright notice here because it is referenced by several extra schema files
-cp %{S:2} ./
+cp %{SOURCE2} ./
+
+install -d "%{buildroot}%{_fillupdir}"
+for i in "%{buildroot}%{_sysconfdir}/sysconfig"/*; do
+ mv "$i" "%{buildroot}%{_fillupdir}/sysconfig.${i##*/}"
+done
%pre
-if ! getent group %user_group >/dev/null; then
- %_sbindir/groupadd -f -r %user_group
+if ! getent group %{user_group} >/dev/null; then
+ %{_sbindir}/groupadd -f -r %{user_group}
fi
-if ! getent passwd %user_group >/dev/null; then
- %_sbindir/useradd -r -g %user_group -s /sbin/nologin -r -d %home -c "User for 389 directory server" %user_group >/dev/null
+if ! getent passwd %{user_group} >/dev/null; then
+ %{_sbindir}/useradd -r -g %{user_group} -s /sbin/nologin -r -d %{homedir} -c "User for 389 directory server" %{user_group}
fi
-%service_add_pre dirsrv@*.service dirsrv-snmp.service dirsrv.target
-%post
+%postun
+output=/dev/null
+# reload to pick up any changes to systemd files
+/bin/systemctl daemon-reload >$output 2>&1 || :
+# reload to pick up any shared lib changes
%fillup_only -n dirsrv
%fillup_only -n dirsrv.systemd
-%service_add_post dirsrv@*.service dirsrv-snmp.service dirsrv.target
+# find all instances
+instances="" # instances that require a restart after upgrade
+ninst=0 # number of instances found in total
+if [ -n "$DEBUGPOSTTRANS" ] ; then
+ output=$DEBUGPOSTTRANS
+fi
+
+echo looking for instances in %{_sysconfdir}/%{pkgname} > $output 2>&1 || :
+instbase="%{_sysconfdir}/%{pkgname}"
+for dir in $instbase/slapd-* ; do
+ echo dir = $dir >> $output 2>&1 || :
+ if [ ! -d "$dir" ] ; then continue ; fi
+ case "$dir" in *.removed) continue ;; esac
+ basename=`basename $dir`
+ inst="%{pkgname}@`echo $basename | sed -e 's/slapd-//g'`"
+ echo found instance $inst - getting status >> $output 2>&1 || :
+ if /bin/systemctl -q is-active $inst ; then
+ echo instance $inst is running >> $output 2>&1 || :
+ instances="$instances $inst"
+ else
+ echo instance $inst is not running >> $output 2>&1 || :
+ fi
+ ninst=`expr $ninst + 1`
+done
+if [ $ninst -eq 0 ] ; then
+ echo no instances to upgrade >> $output 2>&1 || :
+ exit 0 # have no instances to upgrade - just skip the rest
+fi
+# shutdown all instances
+echo shutting down all instances . . . >> $output 2>&1 || :
+for inst in $instances ; do
+ echo stopping instance $inst >> $output 2>&1 || :
+ /bin/systemctl stop $inst >> $output 2>&1 || :
+done
+# do the upgrade
+echo upgrading instances . . . >> $output 2>&1 || :
+DEBUGPOSTSETUPOPT=`/usr/bin/echo $DEBUGPOSTSETUP | /usr/bin/sed -e "s/[^d]//g"`
+if [ -n "$DEBUGPOSTSETUPOPT" ] ; then
+ %{_sbindir}/setup-ds.pl -l $output -$DEBUGPOSTSETUPOPT -u -s General.UpdateMode=offline >> $output 2>&1 || :
+else
+ %{_sbindir}/setup-ds.pl -l $output -u -s General.UpdateMode=offline >> $output 2>&1 || :
+fi
+
+# restart instances that require it
+for inst in $instances ; do
+ echo restarting instance $inst >> $output 2>&1 || :
+ /bin/systemctl start $inst >> $output 2>&1 || :
+done
+exit 0
%preun
-%service_del_preun dirsrv@*.service dirsrv-snmp.service dirsrv.target
+%service_del_preun %{pkg_name}.target
-%postun
-%service_del_postun dirsrv@*.service dirsrv-snmp.service dirsrv.target
+%pre snmp
+%service_add_pre dirsrv-snmp.service
+
+%post snmp
+%service_add_post %{pkgname}-snmp.service
+
+%preun snmp
+%service_del_preun %{pkgname}-snmp.service
+
+%postun snmp
+%service_del_postun %{pkgname}-snmp.service
%files
%defattr(-,root,root)
%doc LICENSE README LICENSE.openldap
-%dir %attr(-,%user_group,%user_group) %home
-%config(noreplace) %_sysconfdir/dirsrv/config/*
-%config(noreplace) %_sysconfdir/dirsrv/schema/*
-%_datadir/dirsrv
-%dir %_libdir/dirsrv
-%dir %_libdir/dirsrv/*
-%dir %_sysconfdir/dirsrv
-%dir %_sysconfdir/dirsrv/config
-%dir %_sysconfdir/dirsrv/schema
-%_libdir/dirsrv/libns-dshttpd-%version.so
-%_libdir/dirsrv/perl/*.pm
-%_libdir/dirsrv/plugins/*.so
-%_libdir/dirsrv/python/*.py
-%_libdir/dirsrv/*.so.*
-%_libexecdir/%name/
-%_localstatedir/adm/fillup-templates/sysconfig.*
-%_mandir/man1/*
-%_mandir/man8/*
-%_sbindir/*
-%_unitdir/dirsrv*
+%dir %attr(-,%{user_group},%{user_group}) %{homedir}
+%dir %attr(-,%{user_group},%{user_group}) %{logdir}
+%config(noreplace) %{_sysconfdir}/dirsrv/config/*
+%config(noreplace) %{_sysconfdir}/dirsrv/schema/*
+%{_datadir}/dirsrv
+%dir %{_libdir}/dirsrv
+%dir %{_libdir}/dirsrv/*
+%dir %{_sysconfdir}/dirsrv
+%dir %{_sysconfdir}/dirsrv/config
+%dir %{_sysconfdir}/dirsrv/schema
+%{_libdir}/dirsrv/libns-dshttpd-*.so
+%{_libdir}/dirsrv/perl/*.pm
+%{_libdir}/dirsrv/plugins/*.so
+%{_libdir}/dirsrv/python/*.py
+%{_libdir}/dirsrv/*.so.*
+%{_fillupdir}/sysconfig.*
+%exclude %{_mandir}/man1/ldap-agent*
+%{_mandir}/man1/*
+%{_mandir}/man8/*
+%{_bindir}/*
+%caps(CAP_NET_BIND_SERVICE=pe) %{_sbindir}/ns-slapd
+#{_sbindir}/ns-slapd
+%{_sbindir}/bak2db
+%{_sbindir}/bak2db.pl
+%{_sbindir}/cleanallruv.pl
+%{_sbindir}/db2bak
+%{_sbindir}/db2bak.pl
+%{_sbindir}/db2index
+%{_sbindir}/db2index.pl
+%{_sbindir}/db2ldif
+%{_sbindir}/db2ldif.pl
+%{_sbindir}/dbmon.sh
+%{_sbindir}/dbverify
+%{_sbindir}/dn2rdn
+%{_sbindir}/ds_selinux_enabled
+%{_sbindir}/ds_selinux_port_query
+%{_sbindir}/ds_systemd_ask_password_acl
+%{_sbindir}/fixup-linkedattrs.pl
+%{_sbindir}/fixup-memberof.pl
+%{_sbindir}/ldif2db
+%{_sbindir}/ldif2db.pl
+%{_sbindir}/ldif2ldap
+%{_sbindir}/migrate-ds.pl
+%{_sbindir}/monitor
+%{_sbindir}/ns-accountstatus.pl
+%{_sbindir}/ns-activate.pl
+%{_sbindir}/ns-inactivate.pl
+%{_sbindir}/ns-newpwpolicy.pl
+%{_sbindir}/remove-ds.pl
+%{_sbindir}/restart-dirsrv
+%{_sbindir}/restoreconfig
+%{_sbindir}/saveconfig
+%{_sbindir}/schema-reload.pl
+%{_sbindir}/setup-ds.pl
+%{_sbindir}/start-dirsrv
+%{_sbindir}/status-dirsrv
+%{_sbindir}/stop-dirsrv
+%{_sbindir}/suffix2instance
+%{_sbindir}/syntax-validate.pl
+%{_sbindir}/upgradedb
+%{_sbindir}/upgradednformat
+%{_sbindir}/usn-tombstone-cleanup.pl
+%{_sbindir}/verify-db.pl
+%{_sbindir}/vlvindex
+%{_unitdir}/dirsrv@.service
+%{_unitdir}/dirsrv.target
+# This has to be hardcoded to /lib - $libdir changes between lib/lib64, but
+# sysctl.d is always in /lib.
+%{_prefix}/lib/sysctl.d/*
+%dir %{_datadir}/gdb/auto-load/usr/sbin/
+%{_datadir}/gdb/auto-load/usr/sbin/ns-slapd-gdb.py
%files devel
%defattr(-,root,root)
%doc LICENSE README
-%_includedir/dirsrv
-%_libdir/dirsrv/libns-dshttpd.so
-%_libdir/dirsrv/libnunc-stans.so
-%_libdir/dirsrv/libsds.so
-%_libdir/dirsrv/libslapd.so
-%_libdir/pkgconfig/*.pc
+%{_mandir}/man3/*
+%{_includedir}/dirsrv
+%{_libdir}/dirsrv/libns-dshttpd.so
+%{_libdir}/dirsrv/libnunc-stans.so
+%{_libdir}/dirsrv/libsds.so
+%{_libdir}/dirsrv/libslapd.so
+%{_libdir}/dirsrv/libldaputil.so
+%{_libdir}/pkgconfig/*.pc
+
+%files snmp
+%defattr(-,root,root,-)
+%doc LICENSE LICENSE.GPLv3+ LICENSE.openssl
+# TODO: README.devel
+%config(noreplace)%{_sysconfdir}/%{pkgname}/config/ldap-agent.conf
+%{_sbindir}/ldap-agent*
+%{_mandir}/man1/ldap-agent.1*
+%{_unitdir}/%{pkgname}-snmp.service
+
+%if %{with lib389}
+%files -n lib389
+%defattr(-,root,root,-)
+%doc src/lib389/LICENSE src/lib389/README*
+%{_sbindir}/dsconf
+%{_sbindir}/dscreate
+%{_sbindir}/dsctl
+%{_sbindir}/dsidm
+/usr/lib/python*/site-packages/lib389*
+%endif
%changelog
++++++ 0003-fix-rm-non-existent-man-pages.patch ++++++
Remove the statement from makefile that attempted to delete non-existent manual pages authored for Fedora and RedHat.
Howard Guo
participants (1)
-
root@hilbert.suse.de