%global _empty_manifest_terminate_build 0
Name:                perl-AnyEvent
Version:             7.17
Release:             4
Summary:             DBI of event loop programming
License:             GPL-1.0-or-later OR Artistic-1.0-Perl
URL:                 https://search.cpan.org/dist/AnyEvent/
Source0:             https://www.cpan.org/authors/id/M/ML/MLEHMANN/AnyEvent-%{version}.tar.gz
BuildArch:           noarch
BuildRequires:       make findutils
BuildRequires:       perl-Glib
BuildRequires:       perl-interpreter
BuildRequires:       perl-generators
BuildRequires:       perl(Canary::Stability)
BuildRequires:       perl(Event)
BuildRequires:       perl(Tk)
BuildRequires:       perl(POE)
BuildRequires:       perl(ExtUtils::MakeMaker) perl(Net::SSLeay) >= 1.33 perl(Task::Weaken)
BuildRequires:       perl(Guard) >= 1.02 perl(JSON) >= 2.09 perl(JSON::XS) >= 2.2
# Async is a optional require for fast signal handle,
# disable it for we do not have it in openEuelr
#Requires:            perl(Async::Interrupt) >= 1
# EV is a optional require for a optional event loop backend
# disable it for we do not have it in openEuelr
#Requires:            perl(EV) >= 4
Requires:          perl(Task::Weaken)
Requires:          perl(Guard)
Requires:          perl(Storable)
Requires:          perl(Sys::Syslog)
Requires:          perl(Unicode::Normalize)

# Optional dependencies do not need
%global optional_deps                  AnyEvent::AIO
%global optional_deps %{optional_deps}|Cocoa::EventLoop
%global optional_deps %{optional_deps}|EV
%global optional_deps %{optional_deps}|Event
%global optional_deps %{optional_deps}|Event::Lib
%global optional_deps %{optional_deps}|EventLoop
%global optional_deps %{optional_deps}|FLTK
%global optional_deps %{optional_deps}|Glib
%global optional_deps %{optional_deps}|IO::AIO
%global optional_deps %{optional_deps}|IO::Async::Loop
%global optional_deps %{optional_deps}|Irssi
%global optional_deps %{optional_deps}|POE
%global optional_deps %{optional_deps}|Qt
%global optional_deps %{optional_deps}|Qt::isa
%global optional_deps %{optional_deps}|Qt::slots
%global optional_deps %{optional_deps}|Tk
%global optional_deps %{optional_deps}|UV

# Don't include optional dependencies
%global __requires_exclude ^perl[(](%{optional_deps})[)]

# Filter unversioned and bogus provides
# AnyEvent::Impl::{Cocoa,FLTK,UV} are filtered as the required
# underlying modules are not currently available in openEuelr
%global __provides_exclude ^perl[(](AnyEvent(::Impl::(Cocoa|FLTK|UV|EV))?|DB)[)]$

%description
AnyEvent provides a uniform interface to various event loops. This allows
module authors to use event loop functionality without forcing module users
to use a specific event loop implementation (since more than one event loop
cannot coexist peacefully).

%package help
Summary:             DBI of event loop programming
Provides:            perl-AnyEvent-doc

%description help
AnyEvent provides a uniform interface to various event loops. This allows
module authors to use event loop functionality without forcing module users
to use a specific event loop implementation (since more than one event loop
cannot coexist peacefully).

%prep
%setup -q -n AnyEvent-%{version}

%build
export PERL_MM_OPT=""
export PERL_CANARY_STABILITY_NOPROMPT=1
%{__perl} Makefile.PL INSTALLDIRS=vendor
%make_build

%install
make pure_install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT

%check
export PERL_ANYEVENT_LOOP_TESTS=true
make test

%files
%doc Changes COPYING META.json mktest README
%{perl_vendorarch}/*.pm
%{perl_vendorarch}/AnyEvent

%files help
%{_mandir}/man?/*

%changelog
* Tue Jan 14 2025 Funda Wang <fundawang@yeah.net> - 7.17-4
- cleanup spec

* Thu Feb 16 2023 lichaoran <pkwarcraft@hotmail.com> - 7.17-3
- add some buildrequires and requires to make build work

* Fri Jul 10 2020 chengzihan <chengzihan2@huawei.com> - 7.17-2
- Package init