Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/perl-LDAP.git#99bf87116700859caea0867737f788950bcef932
This commit is contained in:
DistroBaker 2021-02-16 16:35:20 +00:00
parent 5d1c48f31c
commit 4135ebc2ed
5 changed files with 70 additions and 1 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

View File

@ -9,7 +9,7 @@
Name: perl-LDAP
Version: 0.68
Release: 2%{?dist}
Release: 3%{?dist}
Epoch: 1
Summary: LDAP Perl module
License: GPL+ or Artistic
@ -19,6 +19,9 @@ Source0: https://cpan.metacpan.org/authors/id/M/MA/MARSCHAP/perl-ldap-%{v
Patch0: perl-ldap-0.65-Configure-usr-sbin-slapd-for-tests.patch
# Remove an unreliable cancelling test
Patch1: perl-ldap-0.66-test-Remove-a-test-for-cancelling-asynchronous-calls.patch
# Fix resolving localhost on loopback-only machines,
# <https://github.com/perl-ldap/perl-ldap/pull/60>, CPAN RT#104793
Patch2: perl-ldap-0.68-Do-not-default-IO-Socket-IP-to-AI_ADDRCONFIG-flag.patch
BuildArch: noarch
BuildRequires: coreutils
BuildRequires: make
@ -164,6 +167,7 @@ Tests from %{name}-%{version}. Execute them with "%{_libexecdir}/%{name}/test".
%setup -q -n perl-ldap-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
chmod -c 644 bin/* contrib/* lib/Net/LDAP/DSML.pm
perl -pi -e 's|^#!/usr/local/bin/perl\b|#!%{__perl}|' contrib/*
# Remove bundled libraries
@ -223,6 +227,10 @@ make test
%{_libexecdir}/%{name}
%changelog
* Tue Feb 16 2021 Petr Pisar <ppisar@redhat.com> - 1:0.68-3
- Fix resolving localhost on loopback-only machines
(https://github.com/perl-ldap/perl-ldap/pull/60)
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:0.68-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

View File

@ -0,0 +1,51 @@
From 957a39309fa2f8a85a6b8a0a2c5b1751a151cb8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Tue, 16 Feb 2021 15:29:58 +0100
Subject: [PATCH] Do not default IO::Socket::IP to AI_ADDRCONFIG flag
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
t/40connect.t fails if the only available network interface is
loopback and IO::Socket::IP is installed:
# perl -Ilib -I. t/40connect.t
1..3
ok 1 - client with IPv4/IPv6 auto-selection, bound to ::1
ldap://localhost:9009/ Name or service not known at t/common.pl line 157.
# Looks like your test exited with 22 just after 1.
The reason is that IO::Socket::IP by default resolves host names with
AI_ADDRCONFIG flag and in the particular case (no interfaces other
than loopback) a system resolver (glibc in my case) hides both IPv4
and IPv6 addreses of the hostname (e.g. localhost).
See <https://rt.cpan.org/Ticket/Display.html?id=104793> for more
details.
I applied a workaround similar to one found in IO-Socket-SSL.
I believe that other Socket implementations perl-ldap can use do not
suffer from this problem.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
lib/Net/LDAP.pm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/Net/LDAP.pm b/lib/Net/LDAP.pm
index 5dfe3e3..be11d12 100644
--- a/lib/Net/LDAP.pm
+++ b/lib/Net/LDAP.pm
@@ -167,6 +167,9 @@ sub connect_ldap {
LocalAddr => $arg->{localaddr} || undef,
Proto => 'tcp',
($class eq 'IO::Socket::IP' ? 'Family' : 'Domain') => $domain,
+ # Work around IO::Socket::IP defaulting to AI_ADDRCONFIG which breaks
+ # resolution if only a loopback interface is available. CPAN RT#104793.
+ ($class eq 'IO::Socket::IP' and $domain ne AF_UNSPEC ? ('GetAddrInfoFlags' => 0) : ()),
MultiHomed => $arg->{multihomed},
Timeout => defined $arg->{timeout}
? $arg->{timeout}
--
2.26.2

5
plans/sanity.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Sanity tests
discover:
how: fmf
execute:
how: tmt

4
tests/upstream-tests.fmf Normal file
View File

@ -0,0 +1,4 @@
summary: Upstream tests
component: perl-LDAP
require: perl-LDAP-tests
test: /usr/libexec/perl-LDAP/test