%bcond_with perl_LDAP_enables_optional_test # Support XML serialization of LDAP schemata (DSML languge) %bcond_with perl_LDAP_enables_xml Name: perl-LDAP Version: 0.68 Release: 1 Summary: LDAP Perl module License: GPL+ or Artistic URL: https://metacpan.org/release/perl-ldap Source0: https://cpan.metacpan.org/authors/id/M/MA/MARSCHAP/perl-ldap-%{version}.tar.gz # Optional tests need to know a location of an LDAP server executable 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 Patch2: perl-ldap-0.68-Do-not-default-IO-Socket-IP-to-AI_ADDRCONFIG-flag.patch BuildArch: noarch BuildRequires: coreutils BuildRequires: make BuildRequires: perl-generators BuildRequires: perl-interpreter BuildRequires: perl(Config) BuildRequires: perl(inc::Module::Install) BuildRequires: perl(Module::Install::AutoInstall) BuildRequires: perl(Module::Install::Metadata) BuildRequires: perl(Module::Install::WriteAll) # Run-time: BuildRequires: perl(base) BuildRequires: perl(Carp) BuildRequires: perl(constant) BuildRequires: perl(Convert::ASN1) >= 0.2 BuildRequires: perl(Encode) BuildRequires: perl(Exporter) BuildRequires: perl(IO::Select) BuildRequires: perl(IO::Socket) %if %{with perl_LDAP_enables_optional_test} BuildRequires: perl(IO::Socket::SSL) >= 1.26 %endif BuildRequires: perl(Socket) BuildRequires: perl(strict) BuildRequires: perl(Text::Soundex) BuildRequires: perl(Time::Local) %if %{with perl_LDAP_enables_xml} BuildRequires: perl(XML::SAX::Base) BuildRequires: perl(XML::SAX::Writer) %endif # Tests: BuildRequires: perl(File::Basename) BuildRequires: perl(File::Compare) BuildRequires: perl(File::Path) BuildRequires: perl(File::Spec) BuildRequires: perl(IO::File) BuildRequires: perl(Test::More) %if %{with perl_LDAP_enables_optional_test} # Optional tests: BuildRequires: openldap-servers BuildRequires: perl(LWP::UserAgent) %endif Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) Requires: perl(Authen::SASL) >= 2.00 Requires: perl(Convert::ASN1) >= 0.2 Requires: perl(IO::Socket::SSL) >= 1.26 Requires: perl(JSON) %if %{with perl_LDAP_enables_xml} Suggests: perl(Net::LDAP::DSML) %endif Requires: perl(MIME::Base64) # Prefer core Text::Soundex Requires: perl(Text::Soundex) Requires: perl(Time::Local) # Remove under-specified dependencies %global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(Net::LDAP::Filter\\)$ %global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(Convert::ASN1\\)$ %description Net::LDAP is a collection of modules that implements an LDAP services API for Perl programs. The module may be used to search directories or perform maintenance functions such as adding, deleting or modifying entries. %if %{with perl_LDAP_enables_xml} %package -n perl-Net-LDAP-DSML Summary: DSML Writer for Net::LDAP Requires: perl-LDAP = %{?epoch:%{epoch}:}%{version}-%{release} Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) Requires: perl(MIME::Base64) Requires: perl(Net::LDAP::Schema) Requires: perl(XML::SAX::Writer) %description -n perl-Net-LDAP-DSML Directory Service Markup Language (DSML) is the XML standard for representing directory service information in XML. At the moment this Perl module only writes DSML entry and schema entities. Reading DSML entities is a future project. %endif %package tests Summary: Tests for %{name} Requires: coreutils Requires: perl-LDAP = %{?epoch:%{epoch}:}%{version}-%{release} Requires: perl-Test-Harness Requires: perl(Convert::ASN1) >= 0.2 Requires: perl(File::Spec) Requires: perl(Net::LDAPI) Requires: perl(Text::Soundex) %if %{with perl_LDAP_enables_xml} Requires: perl(XML::SAX::Base) Requires: perl(XML::SAX::Writer) %endif %if %{with perl_LDAP_enables_optional_test} # Optional tests: Requires: openldap-servers Requires: perl(IO::Socket::SSL) >= 1.26 Requires: perl(Net::LDAPS) Requires: perl(LWP::UserAgent) %endif %description tests Tests from %{name}-%{version}. Execute them with "%{_libexecdir}/%{name}/test". %prep %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/* rm -rf inc perl -i -ne 'print $_ unless m{^inc/}' MANIFEST %if !%{with perl_LDAP_enables_xml} rm t/05dsml.t perl -i -ne 'print $_ unless m{^t/05dsml\.t}' MANIFEST %endif find -type f \! -name 'regenerate_cert.sh' -exec chmod -x {} + for F in t/*; do perl -i -MConfig -pe 's/\A#!perl\b/$Config{startperl}/' "$F" chmod +x "$F" done %build perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 < /dev/null %{make_build} %install %{make_install} mkdir -p %{buildroot}/%{_libexecdir}/%{name} cp -a data t test.cfg %{buildroot}/%{_libexecdir}/%{name} cat > %{buildroot}/%{_libexecdir}/%{name}/test <<'EOF' #!/bin/bash set -e DIR=$(mktemp -d) pushd "$DIR" cp -a %{_libexecdir}/%{name}/* ./ prove -I . popd rm -rf "$DIR" EOF chmod +x %{buildroot}/%{_libexecdir}/%{name}/test %{_fixperms} %{buildroot}/* %check make test %files %doc Changes CREDITS %doc contrib/ bin/ %{perl_vendorlib}/Bundle/ %{perl_vendorlib}/LWP/ %{perl_vendorlib}/Net/ %exclude %{perl_vendorlib}/Net/LDAP/DSML.pm %{_mandir}/man3/*.3pm* %exclude %{_mandir}/man3/Net::LDAP::DSML.3pm* %if %{with perl_LDAP_enables_xml} %files -n perl-Net-LDAP-DSML %{perl_vendorlib}/Net/LDAP/DSML.pm %{_mandir}/man3/Net::LDAP::DSML.3pm* %endif %files tests %{_libexecdir}/%{name} %changelog * Thu Jun 30 2022 misaka00251 - 0.68-1 - Init package (Thanks to fedora team)