Blob Blame History Raw
Name:           perl-MCE
Version:        1.829
Release:        1%{?dist}
Summary:        Many-core Engine for Perl providing parallel processing capabilities
License:        GPL+ or Artistic
URL:            http://search.cpan.org/dist/MCE/
Source0:        http://www.cpan.org/authors/id/M/MA/MARIOROY/MCE-%{version}.tar.gz
Patch0:         MCE-1.818-Fix-sharp-bang-line.patch
Patch1:         MCE-1.812-Sereal-deps.patch
BuildArch:      noarch
# Module Build
BuildRequires:  coreutils
BuildRequires:  findutils
BuildRequires:  make
BuildRequires:  perl
BuildRequires:  perl-generators
BuildRequires:  perl(ExtUtils::MakeMaker)
# Module Runtime
BuildRequires:  perl(base)
BuildRequires:  perl(bytes)
BuildRequires:  perl(Carp)
BuildRequires:  perl(constant)
BuildRequires:  perl(Exporter)
BuildRequires:  perl(Fcntl)
BuildRequires:  perl(File::Path)
BuildRequires:  perl(IO::Handle)
BuildRequires:  perl(Scalar::Util)
BuildRequires:  perl(Sereal) >= 3.015
BuildRequires:  perl(Socket)
BuildRequires:  perl(Storable) >= 2.04
BuildRequires:  perl(strict)
BuildRequires:  perl(Symbol)
BuildRequires:  perl(threads::shared)
BuildRequires:  perl(Time::HiRes)
BuildRequires:  perl(warnings)
# Script Runtime
BuildRequires:  perl(Cwd)
BuildRequires:  perl(Getopt::Long)
BuildRequires:  perl(lib)
BuildRequires:  perl(vars)
# Test Suite
BuildRequires:  perl(Test::More) >= 0.88
# Dependencies
Requires:       perl(:MODULE_COMPAT_%(eval "$(perl -V:version)"; echo $version))
Requires:       perl(File::Path)
Requires:       perl(IO::Handle)
Requires:       perl(Sereal) >= 3.015
Requires:       perl(Storable) >= 2.04
Requires:       perl(Symbol)
Requires:       perl(threads::shared)

%description
Many-core Engine (MCE) for Perl helps enable a new level of performance by
maximizing all available cores. MCE spawns a pool of workers and therefore
does not fork a new process per each element of data. Instead, MCE follows
a bank queuing model. Imagine the line being the data and bank-tellers the
parallel workers. MCE enhances that model by adding the ability to chunk
the next n elements from the input stream to the next available worker.

%package tools
Summary:        Many-core Engine command line tools
Requires:       %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires:       grep, gzip

%description tools
This package delivers command line tools like mce_grep(1) that utilize
the Many-core Engine (MCE) Perl library.

%prep
%setup -q -n MCE-%{version}

# Fix sharp-bang line
%patch0

# Avoid hard dependencies on Sereal
%patch1

%build
MCE_INSTALL_TOOLS=1 perl Makefile.PL INSTALLDIRS=vendor
make %{?_smp_mflags}

%install
make pure_install DESTDIR=%{buildroot}
find %{buildroot} -type f -name .packlist -delete
%{_fixperms} -c %{buildroot}

# Add symlinks for grep variants
ln -s mce_grep %{buildroot}%{_bindir}/mce_egrep
ln -s mce_grep %{buildroot}%{_bindir}/mce_fgrep
ln -s mce_grep %{buildroot}%{_bindir}/mce_zgrep
ln -s mce_grep %{buildroot}%{_bindir}/mce_zegrep
ln -s mce_grep %{buildroot}%{_bindir}/mce_zfgrep

%check
make test

%files
%if 0%{?_licensedir:1}
%license LICENSE Copying
%else
%doc LICENSE Copying
%endif
%doc Changes Credits README.md
%doc %{perl_vendorlib}/MCE.pod
%doc %{perl_vendorlib}/MCE/Core.pod
%doc %{perl_vendorlib}/MCE/Examples.pod
%dir %{perl_vendorlib}/MCE/
%dir %{perl_vendorlib}/MCE/Core/
%{perl_vendorlib}/MCE.pm
%{perl_vendorlib}/MCE/Candy.pm
%{perl_vendorlib}/MCE/Core/Input/
%{perl_vendorlib}/MCE/Core/Manager.pm
%{perl_vendorlib}/MCE/Core/Validation.pm
%{perl_vendorlib}/MCE/Core/Worker.pm
%{perl_vendorlib}/MCE/Flow.pm
%{perl_vendorlib}/MCE/Grep.pm
%{perl_vendorlib}/MCE/Loop.pm
%{perl_vendorlib}/MCE/Map.pm
%{perl_vendorlib}/MCE/Mutex.pm
%{perl_vendorlib}/MCE/Mutex/
%{perl_vendorlib}/MCE/Queue.pm
%{perl_vendorlib}/MCE/Relay.pm
%{perl_vendorlib}/MCE/Signal.pm
%{perl_vendorlib}/MCE/Step.pm
%{perl_vendorlib}/MCE/Stream.pm
%{perl_vendorlib}/MCE/Subs.pm
%{perl_vendorlib}/MCE/Util.pm
%{_mandir}/man3/MCE.3*
%{_mandir}/man3/MCE::Candy.3*
%{_mandir}/man3/MCE::Core.3*
%{_mandir}/man3/MCE::Examples.3*
%{_mandir}/man3/MCE::Flow.3*
%{_mandir}/man3/MCE::Grep.3*
%{_mandir}/man3/MCE::Loop.3*
%{_mandir}/man3/MCE::Map.3*
%{_mandir}/man3/MCE::Mutex.3*
%{_mandir}/man3/MCE::Mutex::Channel.3*
%{_mandir}/man3/MCE::Mutex::Flock.3*
%{_mandir}/man3/MCE::Queue.3*
%{_mandir}/man3/MCE::Relay.3*
%{_mandir}/man3/MCE::Signal.3*
%{_mandir}/man3/MCE::Step.3*
%{_mandir}/man3/MCE::Stream.3*
%{_mandir}/man3/MCE::Subs.3*
%{_mandir}/man3/MCE::Util.3*

%files tools
%{_bindir}/mce_grep
%{_bindir}/mce_egrep
%{_bindir}/mce_fgrep
%{_bindir}/mce_zgrep
%{_bindir}/mce_zegrep
%{_bindir}/mce_zfgrep

%changelog
* Wed May  3 2017 Paul Howarth <paul@city-fan.org> - 1.829-1
- Update to 1.829
  - Reduced memory consumption

* Sat Apr 29 2017 Paul Howarth <paul@city-fan.org> - 1.828-1
- Update to 1.828
  - Do not enable barrier mode for Queue on the Windows platform
  - Fixed MCE::Mutex::Flock, tmp_file missing script name in path
  - Added Curses and Prima to list for enabling the posix_exit option
  - Allow a hash as input_data: Core API, MCE::{ Flow, Loop, Step }
  - Improved API documentation on MCE models with more synopsis
  - Enhanced IPC and signal handling, reduced memory consumption
  - Make tmp_dir on demand in MCE::Signal; ditto for sess_dir in MCE
  - Load Fcntl, File::Path, Symbol on demand

* Wed Apr  5 2017 Paul Howarth <paul@city-fan.org> - 1.827-1
- Update to 1.827
  - Do not enable barrier mode in Queue if constructed inside a thread or by
    MCE Model (e.g. Step, Stream); ditto for fast => 1 option
  - Updated MCE not to croak when running Perl in taint mode via perl -T;
    failing -T were MCE::Core::Input::{ Generator, Sequence }, MCE::Signal and
    MCE::Util
  - Added Denis Fateyev, Felipe Gasper and Paul Howarth to Credits

* Mon Apr  3 2017 Paul Howarth <paul@city-fan.org> - 1.826-1
- Update to 1.826
  - Performance improvements in MCE::Queue
  - Is now safe running MCE with the Wx GUI toolkit (wxWidgets)
- BR:/R: perl(Sereal) unconditionally

* Sat Apr  1 2017 Paul Howarth <paul@city-fan.org> - 1.824-1
- Update to 1.824
  - Check for EINTR during sysread and syswrite
  - Improved reliability when running nested MCE sessions
  - Updated MCE::Mutex with Channel and Fcntl implementations
  - Calibrated the number of data-channels for IPC
  - Completed validation for using MCE with 200+ cores
  - Completed validation for running MCE on a box having 100+ cores
  - Tuned the number of data-channels for IPC, setting upper limit in
    MCE::Core::Input::{ Handle and Sequence } to not impact the OS kernel; the
    result is better performance, yet graceful

* Sun Mar 19 2017 Paul Howarth <paul@city-fan.org> - 1.821-1
- Update to 1.821
  - Improved reliability when running MCE with threads
  - Added parallel Net::Pcap and Ping demonstrations on Github:
    https://github.com/marioroy/mce-examples/tree/master/network
  - Optimized 'dequeue' method in MCE::Queue
  - Optimized 'synchronize' method in MCE::Mutex

* Thu Mar  9 2017 Paul Howarth <paul@city-fan.org> - 1.820-1
- Update to 1.820
  - Improved reliability when running MCE inside an eval block

* Sat Mar  4 2017 Paul Howarth <paul@city-fan.org> - 1.819-1
- Update to 1.819
  - Fixed issue with localizing AUTOFLUSH variable before autoflush handles

* Thu Mar  2 2017 Paul Howarth <paul@city-fan.org> - 1.818-1
- Update to 1.818
  - Updated bin/mce_grep for determining chunk level and chunk size
  - Fixed an issue for not seeing STDERR output with '--chunk-level=file'
  - Added support for zgrep, zegrep, and zfgrep
  - Replaced Sereal with Sereal::Decoder and Sereal::Encoder in Makefile,
    inside recommends section; ditto for META files
  - Refactored MCE::Queue: merged local and manager code base into one
  - Removed t/04_norm_que_local.t and t/04_prio_que_local.t
  - Added 'end' method to MCE::Queue
  - Updated documentation on dequeue and pending
- Add symlinks for mce_grep variants

* Sat Feb 25 2017 Paul Howarth <paul@city-fan.org> - 1.817-1
- Update to 1.817
  - Revised the description of max_retries in MCE::Core.pod
  - Improved bin/mce_grep with -r parameter:
    - If no paths are given, start recursively in the current directory
      rather than await data from STDIN
    - Set chunk-level accordingly to list mode

* Fri Feb 24 2017 Paul Howarth <paul@city-fan.org> - 1.815-1
- Update to 1.815
  - Fixed divide-by-zero error in MCE->yield
  - Refactored code for the interval option by moving the code to the manager
    process, which allows the manager process to accommodate the next available
    worker ready to run; previously, a worker taking a long time resulted in
    empty time slots
  - Revised the description of posix_exit in MCE::Core.pod

* Mon Feb 20 2017 Paul Howarth <paul@city-fan.org> - 1.814-1
- Update to 1.814
  - Enhanced the progress option for use with MCE->process
  - Updated progress demonstrations in MCE::Core.pod

* Thu Feb 16 2017 Paul Howarth <paul@city-fan.org> - 1.813-1
- Update to 1.813
  - Added progress option, a code block for receiving info on progress made;
    see MCE::Core.pod for demonstrations accommodating all input data types

* Wed Feb 15 2017 Paul Howarth <paul@city-fan.org> - 1.812-1
- Update to 1.812
  - Bumped minimum requirement for Sereal to 3.015 when available; added check
    ensuring matching version for Encoder and Decoder
- Add patch to avoid unintentional hard dependencies on Sereal

* Tue Feb 14 2017 Paul Howarth <paul@city-fan.org> - 1.811-1
- Update to 1.811
  - Fixed bug in MCE::Queue (dequeue_nb) when queue has zero items
  - Applied small optimization in MCE::Core::Input::Sequence and Generator
  - Added cross-platform template to MCE::Examples for making an executable
  - Removed signal handling for XCPU and XFSZ from MCE::Signal
  - Imply posix_exit => 1 if Gearman::XS or Gearman::Util is present during
    MCE construction
  - Added MCE + Gearman demonstrations (xs and non-xs) on Github:
    https://github.com/marioroy/mce-examples/tree/master/gearman_xs
    https://github.com/marioroy/mce-examples/tree/master/gearman
  - Changed kilobytes and megabytes to kibiBytes (KiB) and mebiBytes (MiB)
    respectively inside the documentation

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.810-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Sat Dec 10 2016 Paul Howarth <paul@city-fan.org> - 1.810-1
- Update to 1.810
  - Updated check for IO handle allowed; this allows $gather_fh = *STDOUT{IO}
    construction in Perl ≤ 5.10.1

* Thu Nov 24 2016 Paul Howarth <paul@city-fan.org> - 1.809-1
- Update to 1.809
  - Bug fixes for running MCE inside threads
  - Random numbers are unique between workers

* Sat Nov  5 2016 Paul Howarth <paul@city-fan.org> - 1.808-1
- Update to 1.808
  - Workers persist unless shutdown explicitly while running alongside the
    Mojolicious framework

* Wed Nov  2 2016 Paul Howarth <paul@city-fan.org> - 1.807-1
- Update to 1.807
  - Enhanced relay capabilities
    - Added Mandelbrot example to MCE::Example
    - Added extra demonstrations to MCE::Relay
    - Added test script
  - Tweaked manager-loop delay for special cases - applies to MSWin32 only

* Wed Oct 12 2016 Paul Howarth <paul@city-fan.org> - 1.806-1
- Update to 1.806
  - Fixed two typos
  - Support input_data with nested arrays in MCE Models

* Fri Sep  2 2016 Paul Howarth <paul@city-fan.org> - 1.805-1
- Update to 1.805
  - Fixed bug in MCE::Queue (GH#4)
  - Improved support for running MCE with Tk; added Tk demonstrations to
    MCE::Examples

* Fri Jul 29 2016 Paul Howarth <paul@city-fan.org> - 1.804-1
- Update to 1.804
  - Removed the sleep statement in MCE->restart_worker
  - Added FCGI::ProcManager demonstrations to MCE::Examples
  - Automatically set posix_exit to 1 whenever (F)CGI.pm is present
    (https://github.com/marioroy/mce-perl/issues/1)

* Mon Jul 11 2016 Paul Howarth <paul@city-fan.org> - 1.803-1
- Update to 1.803
  - Re-enabled Sereal 3.008+ for Perl < v5.12.0, if available
  - Optimized dequeue methods in MCE::Queue

* Mon Jul  4 2016 Paul Howarth <paul@city-fan.org> - 1.802-1
- Update to 1.802
  - Default to Storable for serialization in Perl less than v5.12.0;
    Sereal 3.008+, if available, is loaded automatically in Perl v5.12+

* Sun Jul  3 2016 Paul Howarth <paul@city-fan.org> - 1.801-1
- Update to 1.801
  - Fixed race condition in Queue->await
  - MCE 1.801 is stable on all supported platforms
  - Completed work supporting cyclical include of MCE Core / Models
  - Updated MCE to support Perl included with Git Bash
  - Renamed temp dir from 'mce' to 'Perl-MCE' under user's %%TEMP%% location on
    Windows, e.g. Native Perl, Cygwin, Git Bash
- BR: perl-generators unconditionally

* Sun Jun 19 2016 Paul Howarth <paul@city-fan.org> - 1.800-1
- Update to 1.800
  - Fixed dequeue (count) in MCE::Queue for standalone mode
  - On Windows, improved stablity and feature parity with UNIX
  - Use Sereal 3.008+ automatically if available on the box
  - Added support for cyclical include of MCE Core, MCE Models, and MCE Queue
    by scoping the configuration to the local package (CPAN RT#107384)

* Sun May 29 2016 Paul Howarth <paul@city-fan.org> - 1.708-1
- Update to 1.708
  - Improved import routine in MCE Models and MCE::Subs; this resolves an issue
    where functions are not exported; e.g. mce_flow, mce_flow_s
  - Added support for IO::TieCombine handles, which enables MCE->print and
    MCE->sendto to work reliably with App::Cmd and App::Cmd::Tester; see
    Testing and Capturing Output in MCE::Examples

* Thu May 26 2016 Paul Howarth <paul@city-fan.org> - 1.707-1
- Update to 1.707
  - Fixed logic when workers exit; improved reliability on Windows
  - Applied MCE-1.700-provides.patch from Red Hat
  - Added META.json to the distribution
- BR: perl-generators where available
- Drop upstreamed provides patch

* Mon May 16 2016 Jitka Plesnikova <jplesnik@redhat.com> - 1.706-2
- Perl 5.24 rebuild

* Sun Apr 24 2016 Paul Howarth <paul@city-fan.org> - 1.706-1
- Update to 1.706
  - Time::HiRes sleep resolution is 15 milliseconds on Windows and Cygwin;
    adjusted timeout values accordingly
  - Reinstated the hack for faster IO when use_slurpio => 1 is specified; tuned
    chunk_size => 'auto'

* Fri Apr 15 2016 Paul Howarth <paul@city-fan.org> - 1.705-1
- Update to 1.705
  - Bumped version for Test::More to 0.88
- BR:/R: perl(Sereal) where available

* Thu Apr 14 2016 Paul Howarth <paul@city-fan.org> - 1.704-1
- Update to 1.704
  BUG FIXES
  - Fixed restart on the Windows platform, bug introduced in 1.700
  - Reached *stable* on all major platforms for MCE 1.7x
  ENHANCEMENTS
  - Enabled auto-destroy for MCE objects
  - Enabled freeze callbacks for Sereal
  - Switched bug tracking to Github
  - Tweaked test scripts

* Sun Mar 20 2016 Paul Howarth <paul@city-fan.org> - 1.703-1
- Update to 1.703
  - Completed IPC optimizations for 1.7

* Wed Mar 16 2016 Paul Howarth <paul@city-fan.org> - 1.702-1
- Update to 1.702
- Use a patch to fix unversioned provides of perl(MCE)
- Get rid of redundant provides/requires filters
- Make %%files list more explicit

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.608-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.608-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Wed Jun 03 2015 Jitka Plesnikova <jplesnik@redhat.com> - 1.608-2
- Perl 5.22 rebuild

* Fri Apr 10 2015 Petr Šabata <contyk@redhat.com> - 1.608-1
- 1.608 bump

* Thu Apr 09 2015 Petr Šabata <contyk@redhat.com> - 1.606-1
- 1.606 bump

* Wed Apr 08 2015 Petr Šabata <contyk@redhat.com> - 1.605-1
- 1.605 bump

* Mon Mar 23 2015 Petr Šabata <contyk@redhat.com> - 1.604-1
- 1.604 bump

* Wed Feb 11 2015 Petr Pisar <ppisar@redhat.com> - 1.600-3
- Move mce_grep tool into a separate sub-package

* Tue Feb 10 2015 Petr Pisar <ppisar@redhat.com> - 1.600-2
- Correct dependencies

* Wed Feb 04 2015 Petr Šabata <contyk@redhat.com> - 1.600-1
- 1.600 bump

* Mon Jan 05 2015 Petr Šabata <contyk@redhat.com> - 1.522-1
- 1.522 bump

* Wed Dec 17 2014 Petr Šabata <contyk@redhat.com> - 1.521-1
- 1.521 bump

* Tue Nov 11 2014 Petr Šabata <contyk@redhat.com> 1.520-1
- Initial packaging