diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/openldap-ITS-10297-Defer-hostname-resolution-til-first-use.patch b/openldap-ITS-10297-Defer-hostname-resolution-til-first-use.patch deleted file mode 100644 index 62f85f4..0000000 --- a/openldap-ITS-10297-Defer-hostname-resolution-til-first-use.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 606349836109cfb201bc5b5b424dffb749150a68 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= -Date: Mon, 28 Apr 2025 14:36:24 +0100 -Subject: [PATCH] ITS#10297 Defer hostname resolution til first use - ---- - libraries/libldap/init.c | 33 +++++++++++++++++++-------------- - libraries/libldap/ldap-int.h | 1 + - libraries/libldap/os-ip.c | 2 ++ - libraries/libldap/tls_g.c | 3 +++ - libraries/libldap/tls_o.c | 3 +++ - 6 files changed, 28 insertions(+), 14 deletions(-) - -diff --git a/libraries/libldap/init.c b/libraries/libldap/init.c -index 213276b4b5..90fc34c5a6 100644 ---- a/libraries/libldap/init.c -+++ b/libraries/libldap/init.c -@@ -631,6 +631,25 @@ void ldap_int_initialize_global_options( struct ldapoptions *gopts, int *dbglvl - - #if defined(HAVE_TLS) || defined(HAVE_CYRUS_SASL) - char * ldap_int_hostname = NULL; -+ -+void -+ldap_int_resolve_hostname(void) -+{ -+ static int resolved = 0; -+ -+ LDAP_MUTEX_LOCK( &ldap_int_hostname_mutex ); -+ if ( !resolved ) { -+ char *name = ldap_int_hostname; -+ -+ ldap_int_hostname = ldap_pvt_get_fqdn( name ); -+ -+ if ( name != NULL && name != ldap_int_hostname ) { -+ LDAP_FREE( name ); -+ } -+ resolved = 1; -+ } -+ LDAP_MUTEX_UNLOCK( &ldap_int_hostname_mutex ); -+} - #endif - - #ifdef LDAP_R_COMPILE -@@ -688,20 +707,6 @@ void ldap_int_initialize( struct ldapoptions *gopts, int *dbglvl ) - } - #endif - --#if defined(HAVE_TLS) || defined(HAVE_CYRUS_SASL) -- LDAP_MUTEX_LOCK( &ldap_int_hostname_mutex ); -- { -- char *name = ldap_int_hostname; -- -- ldap_int_hostname = ldap_pvt_get_fqdn( name ); -- -- if ( name != NULL && name != ldap_int_hostname ) { -- LDAP_FREE( name ); -- } -- } -- LDAP_MUTEX_UNLOCK( &ldap_int_hostname_mutex ); --#endif -- - #ifndef HAVE_POLL - if ( ldap_int_tblsize == 0 ) ldap_int_ip_init(); - #endif -diff --git a/libraries/libldap/ldap-int.h b/libraries/libldap/ldap-int.h -index 7e754775e8..435b859066 100644 ---- a/libraries/libldap/ldap-int.h -+++ b/libraries/libldap/ldap-int.h -@@ -743,6 +743,7 @@ LDAP_F (int) ldap_int_poll( LDAP *ld, ber_socket_t s, - - #if defined(HAVE_TLS) || defined(HAVE_CYRUS_SASL) - LDAP_V (char *) ldap_int_hostname; -+LDAP_F (void) ldap_int_resolve_hostname(void); - LDAP_F (char *) ldap_host_connected_to( Sockbuf *sb, - const char *host ); - #endif -diff --git a/libraries/libldap/os-ip.c b/libraries/libldap/os-ip.c -index 6c86edd055..629b540352 100644 ---- a/libraries/libldap/os-ip.c -+++ b/libraries/libldap/os-ip.c -@@ -890,6 +890,8 @@ ldap_host_connected_to( Sockbuf *sb, const char *host ) - * this is necessary for kerberos to work right, since the official - * hostname is used as the kerberos instance. - */ -+ if ( !ldap_int_hostname ) -+ ldap_int_resolve_hostname(); - - switch (sa->sa_family) { - #ifdef LDAP_PF_LOCAL -diff --git a/libraries/libldap/tls_g.c b/libraries/libldap/tls_g.c -index de5b7f7c84..d4e7ee0bf7 100644 ---- a/libraries/libldap/tls_g.c -+++ b/libraries/libldap/tls_g.c -@@ -597,6 +597,9 @@ tlsg_session_chkhost( LDAP *ld, tls_session *session, const char *name_in ) - int len1 = 0, len2 = 0; - int ntype = IS_DNS; - -+ if ( !ldap_int_hostname ) -+ ldap_int_resolve_hostname(); -+ - if( ldap_int_hostname && - ( !name_in || !strcasecmp( name_in, "localhost" ) ) ) - { -diff --git a/libraries/libldap/tls_o.c b/libraries/libldap/tls_o.c -index 71677847a9..155f685c99 100644 ---- a/libraries/libldap/tls_o.c -+++ b/libraries/libldap/tls_o.c -@@ -830,6 +830,9 @@ tlso_session_chkhost( LDAP *ld, tls_session *sess, const char *name_in ) - struct in_addr addr; - #endif - -+ if ( !ldap_int_hostname ) -+ ldap_int_resolve_hostname(); -+ - if( ldap_int_hostname && - ( !name_in || !strcasecmp( name_in, "localhost" ) ) ) - { --- -GitLab - diff --git a/openldap.spec b/openldap.spec index b8d3d66..5d24ea5 100644 --- a/openldap.spec +++ b/openldap.spec @@ -9,9 +9,6 @@ # Build openldap-servers package and its libslapi in openldap-devel and openldap-compat %bcond servers 1 -# Build with argon2 support -%bcond argon2 %{undefined rhel} - # When you change "Version: " to the new major version, remember to change this value too %global major_version 2.6 @@ -20,7 +17,7 @@ Name: openldap Version: 2.6.10 -Release: 6%{?dist} +Release: 1%{?dist} Summary: LDAP support libraries License: OLDAP-2.8 URL: http://www.openldap.org/ @@ -53,7 +50,6 @@ Patch6: openldap-switch-to-lt_dlopenadvise-to-get-RTLD_GLOBAL-set.patch Patch7: openldap-openssl-manpage-defaultCA.patch Patch8: openldap-add-export-symbols-LDAP_CONNECTIONLESS.patch Patch9: openldap-libldap-avoid-SSL-context-cleanup-during-library-des.patch -Patch10: openldap-ITS-10297-Defer-hostname-resolution-til-first-use.patch # check-password module specific patches Patch90: check-password-makefile.patch @@ -77,9 +73,7 @@ BuildRequires: unixODBC-devel BuildRequires: cracklib-devel BuildRequires: systemd BuildRequires: systemd-rpm-macros -%if %{with argon2} -BuildRequires: libsodium-devel -%endif +%{?sysusers_requires_compat} %description OpenLDAP is an open source suite of LDAP (Lightweight Directory Access @@ -138,6 +132,7 @@ and are available for compatibility reasons. Summary: LDAP server Requires: openldap%{?_isa} = %{version}-%{release} %{?systemd_requires} +Requires(pre): shadow-utils # migrationtools (slapadd functionality): Provides: ldif2ldbm @@ -177,7 +172,6 @@ pushd openldap-%{version} %patch -P7 -p1 %patch -P8 -p1 %patch -P9 -p1 -%patch -P10 -p1 # build smbk5pwd with other overlays ln -s ../../../contrib/slapd-modules/smbk5pwd/smbk5pwd.c servers/slapd/overlays @@ -227,9 +221,6 @@ pushd openldap-%{version} --enable-rlookups \ %if %{with servers} --enable-slapi \ -%if %{with argon2} - --enable-argon2 \ -%endif %endif --disable-slp \ \ @@ -402,6 +393,10 @@ rm %{buildroot}%{_libdir}/*.la # because we do not want files in %{_libdir}/ope %ldconfig_scriptlets %if %{with servers} +%pre servers +# create ldap user and group +# sysusers.d format https://fedoraproject.org/wiki/Changes/Adopting_sysusers.d_format +%sysusers_create_compat %{SOURCE6} %post servers %systemd_post slapd.service @@ -469,12 +464,6 @@ exit 0 %{_datadir}/openldap-servers/ %{_libdir}/openldap/accesslog* %{_libdir}/openldap/allop* -%if %{with argon2} -%{_libdir}/openldap/argon2* -%{_mandir}/man5/slappw-argon2.5* -%else -%exclude %{_mandir}/man5/slappw-argon2.5* -%endif %{_libdir}/openldap/auditlog* %{_libdir}/openldap/autoca* %{_libdir}/openldap/back_asyncmeta* @@ -517,6 +506,7 @@ exit 0 %{_mandir}/man8/lloadd.8* %{_mandir}/man5/slapd*.5* %{_mandir}/man5/slapo-*.5* +%{_mandir}/man5/slappw-argon2.5* %{_mandir}/man8/slap*.8* %{_sysusersdir}/openldap.conf # obsolete configuration @@ -565,28 +555,8 @@ exit 0 %endif %changelog -* Wed Jan 14 2026 Yaakov Selkowitz - 2.6.10-6 -- Enable argon2 only in Fedora - -* Tue Jan 13 2026 Simon Pichugin - 2.6.10-5 -- Add support for argon2 (rhbz#2229405) -- Bump version 2.6.10-5 - -* Fri Aug 29 2025 Simon Pichugin - 2.6.10-4 -- Fix LDAP initialization does unnecessary resolution of hostname (rhbz#2331728) -- Convert STI tests to FMF (rhbz#2382998) - -* Thu Jul 24 2025 Fedora Release Engineering - 2.6.10-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Mon Jul 07 2025 Jitka Plesnikova - 2.6.10-2 -- Perl 5.42 rebuild - -* Tue Jun 10 2025 Simon Pichugin - 2.6.10-1 -- Rebase to version 2.6.10 (rhbz#2368103) - -* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 2.6.9-5 -- Drop call to %sysusers_create_compat +* Tue Aug 5 2025 Simon Pichugin - 2.6.10-1 +- Rebase to version 2.6.9 (rhbz#2386671) * Sat Feb 01 2025 Björn Esser - 2.6.9-4 - Add explicit BR: libxcrypt-devel diff --git a/plans/gating.fmf b/plans/gating.fmf deleted file mode 100644 index 387b7bf..0000000 --- a/plans/gating.fmf +++ /dev/null @@ -1,8 +0,0 @@ -summary: Test plan for openldap - -discover: - how: fmf - -execute: - how: tmt - diff --git a/tests/smoke-test/Makefile b/tests/smoke-test/Makefile index 322f5a5..5a549be 100644 --- a/tests/smoke-test/Makefile +++ b/tests/smoke-test/Makefile @@ -46,7 +46,7 @@ clean: include /usr/share/rhts/lib/rhts-make.include $(METADATA): Makefile - @echo "Owner: Viktor Ashirov " > $(METADATA) + @echo "Owner: Ondrej Moris " > $(METADATA) @echo "Name: $(TEST)" >> $(METADATA) @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) @echo "Path: $(TEST_DIR)" >> $(METADATA) @@ -57,23 +57,25 @@ $(METADATA): Makefile @echo "Requires: openldap" >> $(METADATA) @echo "Requires: openldap-clients" >> $(METADATA) @echo "Requires: openldap-servers" >> $(METADATA) - @echo "Requires: nss-devel" >> $(METADATA) - @echo "Requires: cracklib-devel" >> $(METADATA) @echo "Requires: cyrus-sasl-devel" >> $(METADATA) @echo "Requires: gdbm-devel" >> $(METADATA) - @echo "Requires: groff" >> $(METADATA) - @echo "Requires: krb5-devel" >> $(METADATA) - @echo "Requires: libdb-devel" >> $(METADATA) @echo "Requires: libtool" >> $(METADATA) - @echo "Requires: libtool-ltdl-devel" >> $(METADATA) - @echo "Requires: nfs-utils" >> $(METADATA) + @echo "Requires: krb5-devel" >> $(METADATA) @echo "Requires: openssl-devel" >> $(METADATA) @echo "Requires: pam-devel" >> $(METADATA) @echo "Requires: perl" >> $(METADATA) - @echo "Requires: perl-ExtUtils-Embed" >> $(METADATA) @echo "Requires: pkgconfig" >> $(METADATA) - @echo "Requires: rpm-build" >> $(METADATA) + @echo "Requires: tcp_wrappers-devel" >> $(METADATA) + @echo "Requires: bind-libbind-devel" >> $(METADATA) @echo "Requires: unixODBC-devel" >> $(METADATA) + @echo "Requires: libtool-ltdl-devel" >> $(METADATA) + @echo "Requires: nfs-utils" >> $(METADATA) + @echo "Requires: rpm-build" >> $(METADATA) + @echo "Requires: nss-devel" >> $(METADATA) + @echo "Requires: libdb-devel" >> $(METADATA) + @echo "Requires: groff" >> $(METADATA) + @echo "Requires: cracklib-devel" >> $(METADATA) + @echo "Requires: perl-ExtUtils-Embed" >> $(METADATA) @echo "Requires: yum-utils" >> $(METADATA) @echo "Priority: Normal" >> $(METADATA) @echo "License: GPLv2" >> $(METADATA) diff --git a/tests/smoke-test/main.fmf b/tests/smoke-test/main.fmf deleted file mode 100644 index cc59f6b..0000000 --- a/tests/smoke-test/main.fmf +++ /dev/null @@ -1,31 +0,0 @@ -summary: Test calls upstream test suite -description: Test calls upstream test suite -contact: Viktor Ashirov -component: - - openldap -test: ./runtest.sh -framework: beakerlib -recommend: - - openldap - - openldap-clients - - openldap-servers - - cracklib-devel - - cyrus-sasl-devel - - gdbm-devel - - groff - - krb5-devel - - libdb-devel - - libtool - - libtool-ltdl-devel - - nfs-utils - - nss-devel - - openssl-devel - - pam-devel - - perl - - perl-ExtUtils-Embed - - pkgconf-pkg-config - - pkgconfig - - rpm-build - - unixODBC-devel - - yum-utils -duration: 3h diff --git a/tests/smoke-test/runtest.sh b/tests/smoke-test/runtest.sh index bd1ebe6..63c8ccc 100755 --- a/tests/smoke-test/runtest.sh +++ b/tests/smoke-test/runtest.sh @@ -27,6 +27,7 @@ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Include rhts environment +. /usr/bin/rhts-environment.sh . /usr/share/beakerlib/beakerlib.sh || exit 1 PACKAGE="openldap" @@ -44,46 +45,58 @@ PACKAGES=("openldap" \ "unixODBC-devel" \ "libtool-ltdl-devel" \ "nfs-utils" \ - "rpm-build" \ - "nss-devel" \ - "libdb-devel" \ - "groff" \ - "cracklib-devel" \ - "perl-ExtUtils-Embed"\ - "pkgconf-pkg-config" ) + "rpm-build" ) -LDAP_SERVICE='slapd' +if rlIsRHEL 5; then + PACKAGES=( ${PACKAGES[@]} "bind-libbind-devel" ) +elif rlIsRHEL 6; then + PACKAGES=( ${PACKAGES[@]} "tcp_wrappers-devel" ) +else + PACKAGES=( ${PACKAGES[@]} "tcp_wrappers-devel" "nss-devel" "libdb-devel" "groff" "cracklib-devel" "perl-ExtUtils-Embed" ) +fi +if rlIsFedora; then + PACKAGES=( ${PACKAGES[@]} "pkgconf-pkg-config" ) +else + PACKAGES=( ${PACKAGES[@]} "pkgconfig" ) +fi + +if rlIsRHEL 5; then + LDAP_SERVICE='ldap' +else + LDAP_SERVICE='slapd' +fi rlJournalStart rlPhaseStartSetup "General Setup" - rlRun "TmpDir=$(mktemp -d)" 0 "Creating tmp directory" + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" rlRun "pushd $TmpDir" - + for P in "${PACKAGES[@]}"; do rlCheckRpm $P || rlDie; done rlFetchSrcForInstalled $PACKAGE rlRun "yum-builddep -y openldap*src.rpm" 0 rlRun "rpm -ihv *.rpm" 0 - rlServiceStop $LDAP_SERVICE + rlServiceStop $LDAP_SERVICE rlPhaseEnd rlPhaseStartTest - TOPDIR=$(rpm --eval %_topdir) + TOPDIR=`rpm --eval %_topdir` rlRun "pushd $TOPDIR" 0 rlRun "rpmbuild -vv -bc SPECS/openldap.spec >build.log 2>&1" 0 [[ $? -ne 0 ]] && cat build.log - VERSION=$(rpm -q --qf "%{VERSION}\n" openldap | tail -1) - rlRun "pushd BUILD/openldap-${VERSION}-build/openldap-${VERSION}/openldap-${VERSION}" 0 + VERSION=`rpm -q --qf "%{VERSION}\n" openldap | tail -1` + rlRun "pushd BUILD/openldap-${VERSION}/openldap-${VERSION}" 0 # workaround for failing test, it tests unsupported configuration # see http://www.openldap.org/lists/openldap-technical/201204/msg00080.html for upstream reply # change of check after test is not enough because run of all tests with hdb is skipped if test058 fails with bdb - #rm -f tests/scripts/test058-syncrepl-asymmetric + rm -f tests/scripts/test058-syncrepl-asymmetric + rlIsRHEL 5 6 && rlRun "pushd build-servers" 0 rlRun "make check > make_check.out 2>&1" 0 @@ -94,14 +107,15 @@ rlJournalStart rlAssertNotGrep "failed" make_check.results + rlIsRHEL 5 6 && rlRun "popd" 0 rlRun "popd" 0 rlRun "popd" 0 rlPhaseEnd rlPhaseStartCleanup - rlServiceRestore $LDAP_SERVICE - rlRun "rm -rf BUILD/opendap-$(rpm -q --qf "%{VERSION}" openldap)" 0 + rlServiceRestore $LDAP_SERVICE + rlRun "rm -rf BUILD/opendap-`rpm -q --qf "%{VERSION}" openldap`" 0 rlRun "popd" rlRun "rm -r $TmpDir" 0 "Removing tmp directory" diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..b1b1905 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,34 @@ +--- +# Tests that run in all contexts +- hosts: localhost + roles: + - role: standard-test-beakerlib + tags: + - classic + tests: + - smoke-test + required_packages: + - openldap # Required for smoke-test + - openldap-clients # Required for smoke-test + - openldap-servers # Required for smoke-test + - cyrus-sasl-devel # Required for smoke-test + - gdbm-devel # Required for smoke-test + - libtool # Required for smoke-test + - krb5-devel # Required for smoke-test + - openssl-devel # Required for smoke-test + - pam-devel # Required for smoke-test + - perl # Required for smoke-test + - pkgconfig # Required for smoke-test + - tcp_wrappers-devel # Required for smoke-test + - bind-libbind-devel # Required for smoke-test + - unixODBC-devel # Required for smoke-test + - nfs-utils # Required for smoke-test + - rpm-build # Required for smoke-test + - nss-devel # Required for smoke-test + - libdb-devel # Required for smoke-test + - groff # Required for smoke-test + - cracklib-devel # Required for smoke-test + - perl-ExtUtils-Embed # Required for smoke-test + - yum-utils # Required for smoke-test + - libtool-ltdl-devel # Required for smoke-test + - wget # Required for smoke-test