# # spec file for package perl-POE-Component-IRC # # Copyright (c) 2025 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.950.0 Release: 0 # 6.95 -> normalize -> 6.950.0 %define cpan_version 6.95 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 Source100: README.md BuildArch: noarch BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(IRC::Utils) >= 0.120 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 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.610 Requires: perl(IRC::Utils) >= 0.120 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 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 %{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} -p1 %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