perl-Twiggy/perl-Twiggy.spec

Name: perl-Twiggy
Summary: AnyEvent HTTP server for PSGI (like Thin)
Version: 0.1010
Release: 2
License: Artistic/GPL
Group: Applications/CPAN
URL: http://search.cpan.org/dist/Twiggy/
Description: Twiggy is a lightweight and fast HTTP server with unique features such as:

Can run any PSGI applications. Fully supports psgi.nonblocking and psgi.streaming interfaces.

This server uses AnyEvent and runs in a non-blocking event loop, so it's best to run event-driven web applications that runs I/O bound jobs or delayed responses such as long-poll, WebSocket or streaming content (server push).

This software used to be called Plack::Server::AnyEvent but was renamed to Twiggy. See "NAMING" for details.

Uses XS/C based HTTP header parser for the best performance. (optional)

The memory required to run twiggy is 6MB and it can serve more than 4500 req/s with a single process on Perl 5.10 with MacBook Pro 13" late 2009.

Supports Server::Starter for hot deploy and graceful restarts.

CentOS 7 x86_64

The build could not start because of the following missing build requirements:

Build Status

CentOS 6 x86_64

The build could not start because of the following missing build requirements:

Build Status

Contents

The spec file used by the build system currently has the following contents:

# $Id$
# Authority: shuff
# Upstream: Tatsuhiko Miyagawa <miyagawa$bulknews,com>

# Plack is RFX on el6 and el5
%{?el6:# Tag: rfx}
%{?el5:# Tag: rfx}

%define perl_vendorlib %(eval "`perl -V:installvendorlib`"; echo $installvendorlib)
%define perl_vendorarch %(eval "`perl -V:installvendorarch`"; echo $installvendorarch)

%define real_name Twiggy

Summary: AnyEvent HTTP server for PSGI (like Thin)
Name: perl-Twiggy
Version: 0.1010
Release: 2%{?dist}
License: Artistic/GPL
Group: Applications/CPAN
URL: http://search.cpan.org/dist/Twiggy/

Source: http://search.cpan.org/CPAN/authors/id/M/MI/MIYAGAWA/Twiggy-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root

BuildArch: noarch
BuildRequires: perl >= 5.8.1
BuildRequires: perl(AnyEvent)
BuildRequires: perl(EV)
BuildRequires: perl(ExtUtils::MakeMaker)
# BuildRequires: perl(HTTP::Parser::XS)
BuildRequires: perl(HTTP::Status)
BuildRequires: perl(Plack) >= 0.99
BuildRequires: perl(Test::More)
BuildRequires: perl(Test::Requires)
BuildRequires: perl(Test::TCP)
BuildRequires: perl(Try::Tiny)
BuildRequires: rpm-macros-rpmforge
Requires: perl >= 5.8.1
Requires: perl(AnyEvent)
Requires: perl(EV)
# Requires: perl(HTTP::Parser::XS)
Requires: perl(HTTP::Status)
Requires: perl(Plack) >= 0.99
Requires: perl(Try::Tiny)

### remove autoreq Perl dependencies
%filter_from_requires /^perl.*/d
%filter_setup

%description
Twiggy is a lightweight and fast HTTP server with unique features such as:

* PSGI

Can run any PSGI applications. Fully supports psgi.nonblocking and
psgi.streaming interfaces.

* AnyEvent

This server uses AnyEvent and runs in a non-blocking event loop, so it's best
to run event-driven web applications that runs I/O bound jobs or delayed
responses such as long-poll, WebSocket or streaming content (server push).

This software used to be called Plack::Server::AnyEvent but was renamed to
Twiggy. See "NAMING" for details.

* Fast header parser

Uses XS/C based HTTP header parser for the best performance. (optional)

* Lightweight and Fast

The memory required to run twiggy is 6MB and it can serve more than 4500 req/s
with a single process on Perl 5.10 with MacBook Pro 13" late 2009.

* Superdaemon aware

Supports Server::Starter for hot deploy and graceful restarts.


%prep
%setup -n %{real_name}-%{version}

# fix problem with modules generated by older versions of Dist::Zilla
#%{?el5:%{__perl} -pi -e '/.*ExtUtils::MakeMaker.*6\.31.*/ && s/6\.3\d/6.30/' Makefile.PL}

%build
%{__perl} Makefile.PL INSTALLDIRS="vendor" PREFIX="%{buildroot}%{_prefix}"
%{__make} %{?_smp_mflags}

%install
%{__rm} -rf %{buildroot}
%{__make} pure_install
#%{__rm} -rf %{buildroot}%{perl_archlib} %{buildroot}%{perl_vendorarch}

# fix for stupid strip issue
#%{__chmod} -R u+w %{buildroot}/*

%clean
%{__rm} -rf %{buildroot}

%files
%defattr(-, root, root, 0755)
%doc Changes META.yml README eg/
%doc %{_mandir}/man?/*
%{_bindir}/*
%{perl_vendorlib}/AnyEvent/Server/PSGI.pm
%{perl_vendorlib}/Plack/Handler/Twiggy.pm
%{perl_vendorlib}/Twiggy.pm
%{perl_vendorlib}/Twiggy/*
#%exclude %{perl_archlib}/perllocal.pod
%exclude %{perl_vendorarch}/auto/*/.packlist

%changelog
* Thu Sep 01 2011 Steve Huff <shuff@vecna.org> - 0.1010-2
- RFX on el5

* Mon Jul 18 2011 Steve Huff <shuff@vecna.org> - 0.1010-1
- Initial package.