# $Id: perl-POE.spec,v 1.2 2006/06/14 22:35:17 cweyl Exp $ Name: perl-POE Version: 0.3501 Release: 1%{?dist} Summary: POE - portable multitasking and networking framework for Perl Group: Development/Libraries License: GPL or Artistic URL: http://search.cpan.org/dist/POE/ Source0: http://search.cpan.org/CPAN/authors/id/R/RC/RCAPUTO/POE-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch BuildRequires: perl, perl(ExtUtils::MakeMaker) BuildRequires: perl(Tk) >= 800.027, perl(URI) >= 1.30, perl(Socket6) >= 0.14 BuildRequires: perl(LWP) >= 5.79, perl(Curses) >= 1.08 BuildRequires: perl(IO::Pty) >= 1.02, perl(Term::ReadKey) >= 2.21 # waiting for update BZ#194521 #BuildRequires: perl(Gtk) >= 0.7009 BuildRequires: perl(IO::Poll) >= 0.01, perl(Term::Cap) >= 1.09, BuildRequires: perl(Compress::Zlib) >= 1.33, perl(Event) >= 1.00 Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description POE is a framework for cooperative, event driven multitasking in Perl. Other languages have similar frameworks. Python has Twisted. TCL has "the event loop". POE originally was developed as the core of a persistent object server and runtime environment. It has evolved into a general purpose multitasking and networking framework, encompassing and providing a consistent interface to other event loops such as Event and the Tk and Gtk toolkits. POE is written in layers, each building upon the previous. It's therefore possible to use POE at varying levels of abstraction. The lowest level uses POE::Kernel and POE::Session. The former class acts as POE's event watcher and dispatcher. The latter encapsulates the notion of an event driven task. POE::Wheel classes operate at a slightly higher level. They plug into sessions and perform very common, general tasks. For example, POE::Wheel::ReadWrite performs buffered I/O. Unlike cheese, wheels do not stand alone. They are customized by POE::Driver and POE::Filter classes. Using the proper filter, a ReadWrite wheel can read and write streams, lines, fixed-length blocks, HTTP requests and responses, and so on. The highest level of POE programming uses components. They may perform narrowly defined tasks, such as POE::Component::Child (on the CPAN). Often they encapsulate nearly everything necessary for an entire program. Every level eventually boils down to the lowest common denominator---POE::Kernel and POE::Session. Because of this, classes coexist and cooperate at every level of abstraction. %prep %setup -q -n POE-%{version} # execute + doc == bad chmod -x samples/* %build %{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" --default # yah. don't do the network tests rm run_network_tests make %{?_smp_mflags} %install rm -rf %{buildroot} make pure_install PERL_INSTALL_ROOT=%{buildroot} find %{buildroot} -type f -name .packlist -exec rm -f {} ';' find %{buildroot} -type f -name '*.bs' -a -size 0 -exec rm -f {} ';' find %{buildroot} -type d -depth -exec rmdir {} 2>/dev/null ';' chmod -R u+w %{buildroot}/* %check # note that there are currently a number of tests that throw errors, but do # not fail nor cause the build/suite to fail. For now just please be aware # that there will be some noisy output as the tests are run. # Reported upstream at http://rt.cpan.org/Public/Bug/Display.html?id=19878 make test %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) %doc CHANGES HISTORY README samples TODO %{perl_vendorlib}/* %{_mandir}/man3/*.3* %changelog * Wed Jun 14 2006 Chris Weyl 0.3501-1 - bump release, minor cleanups per review. * Fri Jun 09 2006 Chris Weyl 0.3501-0 - Initial spec file for F-E