%define real_name Thread-Conveyor

Summary:        Transport of any data-structure between threads
Name:           perl-Thread-Conveyor
Version:        0.19
Release:        1%{?_dist_release}
License:        Artistic or GPL+
Group:          Development/Libraries
URL:            http://search.cpan.org/dist/Thread-Conveyor/
Source:         http://www.cpan.org/modules/by-module/Thread/Thread-Conveyor-%{version}.tar.gz
BuildArch:      noarch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root

BuildRequires:  perl
BuildRequires:  perl(ExtUtils::MakeMaker)
BuildRequires:  perl(load)
BuildRequires:  perl(Thread::Tie) >= 0.09
BuildRequires:  perl(Thread::Serialize)
Requires:       perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))

Vendor:         Project Vine
Distribution:   Vine Linux

%description
The Thread::Conveyor object is a thread-safe data structure that 
mimics the behaviour of a conveyor belt. One or more worker threads
can put boxes with frozen values and references on one end of the belt
to be taken off by one or more worker threads on the other end of the
belt to be thawed and returned.

A box may consist of any combination of scalars and references to
scalars, arrays (lists) and hashes. Freezing and thawing is currently
done with the Thread::Serialize module, but that may change in the 
future. Objects and code references are currently not allowed.

By default, the maximum number of boxes on the belt is limited to 50.
Putting of boxes on the belt is halted if the maximum number of boxes
is exceeded. This throttling feature was added because it was found 
that excessive memory usage could be caused by having the belt growing
too large. Throttling can be disabled if so desired.

This module only functions on Perl versions 5.8.0 and later.
And then only when threads are enabled with -Dusethreads.  It
is of no use with any version of Perl before 5.8.0 or without
threads enabled.
%prep
%setup -q -n %{real_name}-%{version}

%build
%{expand: %%define optflags %{optflags} -fPIC}
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
make %{?_smp_mflags}

%install
rm -rf %{buildroot}
make pure_install DESTDIR=%{buildroot}
find %{buildroot} -type f -name .packlist -exec rm -f {} ';'
find %{buildroot} -depth -type d -exec rmdir {} ';' 2>/dev/null
%{_fixperms} %{buildroot}

%check
make test

%clean
rm -rf %{buildroot}

%files
%defattr(-, root, root, -)
%doc MANIFEST README CHANGELOG TODO
%{perl_vendorlib}/*
%{_mandir}/man3/*

%changelog
* Sat Mar 10 2012 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 0.19-1
- initial build for Vine Linux
