File perl-POE-Component-IRC.spec of Package perl-POE-Component-IRC

#
# spec file for package perl-POE-Component-IRC
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%define cpan_name POE-Component-IRC
Name:           perl-POE-Component-IRC
Version:        6.930.0
Release:        0
# 6.93 -> normalize -> 6.930.0
%define cpan_version 6.93
License:        Artistic-1.0 OR GPL-1.0-or-later
Summary:        Fully event-driven IRC client module
URL:            https://metacpan.org/release/%{cpan_name}
Source0:        https://cpan.metacpan.org/authors/id/B/BI/BINGOS/%{cpan_name}-%{cpan_version}.tar.gz
Source1:        cpanspec.yml
BuildArch:      noarch
BuildRequires:  perl
BuildRequires:  perl-macros
BuildRequires:  perl(IRC::Utils) >= 0.120.0
BuildRequires:  perl(List::Util) >= 1.33
BuildRequires:  perl(POE) >= 1.311
BuildRequires:  perl(POE::Component::Syndicator)
BuildRequires:  perl(POE::Driver::SysRW)
BuildRequires:  perl(POE::Filter::IRCD) >= 2.420.0
BuildRequires:  perl(POE::Filter::Line)
BuildRequires:  perl(POE::Filter::Stackable)
BuildRequires:  perl(POE::Filter::Stream)
BuildRequires:  perl(POE::Session)
BuildRequires:  perl(POE::Wheel::ReadWrite)
BuildRequires:  perl(POE::Wheel::SocketFactory)
BuildRequires:  perl(Test::Differences) >= 0.61
Requires:       perl(IRC::Utils) >= 0.120.0
Requires:       perl(List::Util) >= 1.33
Requires:       perl(POE) >= 1.311
Requires:       perl(POE::Component::Syndicator)
Requires:       perl(POE::Driver::SysRW)
Requires:       perl(POE::Filter::IRCD) >= 2.420.0
Requires:       perl(POE::Filter::Line)
Requires:       perl(POE::Filter::Stackable)
Requires:       perl(POE::Filter::Stream)
Requires:       perl(POE::Session)
Requires:       perl(POE::Wheel::ReadWrite)
Requires:       perl(POE::Wheel::SocketFactory)
Provides:       perl(POE::Component::IRC) = %{version}
Provides:       perl(POE::Component::IRC::Common) = %{version}
Provides:       perl(POE::Component::IRC::Constants) = %{version}
Provides:       perl(POE::Component::IRC::Plugin) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::AutoJoin) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::BotAddressed) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::BotCommand) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::BotTraffic) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::CTCP) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::Connector) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::Console) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::CycleEmpty) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::DCC) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::FollowTail) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::ISupport) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::Logger) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::NickReclaim) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::NickServID) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::PlugMan) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::Proxy) = %{version}
Provides:       perl(POE::Component::IRC::Plugin::Whois) = %{version}
Provides:       perl(POE::Component::IRC::Qnet) = %{version}
Provides:       perl(POE::Component::IRC::Qnet::State) = %{version}
Provides:       perl(POE::Component::IRC::State) = %{version}
Provides:       perl(POE::Filter::IRC) = %{version}
Provides:       perl(POE::Filter::IRC::Compat) = %{version}
%undefine       __perllib_provides
Recommends:     perl(POE::Component::Client::DNS) >= 0.990.0
%{perl_requires}

%description
POE::Component::IRC is a POE component (who'd have guessed?) which acts as
an easily controllable IRC client for your other POE components and
sessions. You create an IRC component and tell it what events your session
cares about and where to connect to, and it sends back interesting IRC
events when they happen. You make the client do things by sending it
events. That's all there is to it. Cool, no?

[Note that using this module requires some familiarity with the details of
the IRC protocol. I'd advise you to read up on the gory details of RFC 1459
(http://www.faqs.org/rfcs/rfc1459.html) before you get started. Keep the
list of server numeric codes handy while you program. Needless to say,
you'll also need a good working knowledge of POE, or this document will be
of very little use to you.]

The POE::Component::IRC distribution has a _docs/_ folder with a collection
of salient documentation including the pertinent RFCs.

POE::Component::IRC consists of a POE::Session that manages the IRC
connection and dispatches 'irc_' prefixed events to interested sessions and
an object that can be used to access additional information using methods.

Sessions register their interest in receiving 'irc_' events by sending
'register' to the component. One would usually do this in your '_start'
handler. Your session will continue to receive events until you
'unregister'. The component will continue to stay around until you tell it
not to with 'shutdown'.

The SYNOPSIS demonstrates a fairly basic bot.

See POE::Component::IRC::Cookbook for more examples.

%prep
%autosetup  -n %{cpan_name}-%{cpan_version}

%build
perl Makefile.PL INSTALLDIRS=vendor
%make_build

%check
make test

%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist

%files -f %{name}.files
%doc Changes docs examples
%license LICENSE

%changelog
openSUSE Build Service is sponsored by