Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-IO-Pipely for openSUSE:Factory checked in at 2022-01-04 19:38:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-IO-Pipely (Old) and /work/SRC/openSUSE:Factory/.perl-IO-Pipely.new.1896 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-IO-Pipely" Tue Jan 4 19:38:03 2022 rev:3 rq:943739 version:0.006 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-IO-Pipely/perl-IO-Pipely.changes 2013-10-21 15:13:57.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-IO-Pipely.new.1896/perl-IO-Pipely.changes 2022-01-04 19:38:30.670010247 +0100 @@ -1,0 +2,6 @@ +Wed Dec 15 03:06:56 UTC 2021 - Tina M??ller <[email protected]> + +- updated to 0.006 + see /usr/share/doc/packages/perl-IO-Pipely/CHANGES + +------------------------------------------------------------------- Old: ---- IO-Pipely-0.005.tar.gz New: ---- IO-Pipely-0.006.tar.gz cpanspec.yml ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-IO-Pipely.spec ++++++ --- /var/tmp/diff_new_pack.iRDrep/_old 2022-01-04 19:38:31.186010922 +0100 +++ /var/tmp/diff_new_pack.iRDrep/_new 2022-01-04 19:38:31.190010928 +0100 @@ -1,7 +1,7 @@ # # spec file for package perl-IO-Pipely # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,34 +12,33 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # +%define cpan_name IO-Pipely Name: perl-IO-Pipely -Version: 0.005 +Version: 0.006 Release: 0 -%define cpan_name IO-Pipely -Summary: Portably create pipe() or pipe-like handles, one way or another. -License: Artistic-1.0 or GPL-1.0+ -Group: Development/Libraries/Perl -Url: http://search.cpan.org/dist/IO-Pipely/ -Source: http://www.cpan.org/authors/id/R/RC/RCAPUTO/%{cpan_name}-%{version}.tar.gz +Summary: Portably create pipe() or pipe-like handles, one way or another +License: Artistic-1.0 OR GPL-1.0-or-later +URL: https://metacpan.org/release/%{cpan_name} +Source0: https://cpan.metacpan.org/authors/id/R/RC/RCAPUTO/%{cpan_name}-%{version}.tar.gz +Source1: cpanspec.yml BuildArch: noarch -BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros -BuildRequires: perl(Carp) >= 1.26 -BuildRequires: perl(Exporter) >= 5.68 -BuildRequires: perl(Fcntl) >= 1.06 -BuildRequires: perl(IO::Socket) >= 1.31 -BuildRequires: perl(Scalar::Util) >= 1.29 -BuildRequires: perl(Test::More) >= 0.98 -BuildRequires: perl(base) >= 2.18 -Requires: perl(Exporter) >= 5.68 -Requires: perl(Fcntl) >= 1.06 -Requires: perl(IO::Socket) >= 1.31 -Requires: perl(base) >= 2.18 +BuildRequires: perl(Carp) >= 1.42 +BuildRequires: perl(Exporter) >= 5.72 +BuildRequires: perl(Fcntl) >= 1.13 +BuildRequires: perl(IO::Socket) >= 1.38 +BuildRequires: perl(Scalar::Util) >= 1.46_02 +BuildRequires: perl(Symbol) >= 1.08 +BuildRequires: perl(Test::More) >= 1.302120 +Requires: perl(Exporter) >= 5.72 +Requires: perl(Fcntl) >= 1.13 +Requires: perl(IO::Socket) >= 1.38 +Requires: perl(Symbol) >= 1.08 %{perl_requires} %description @@ -65,14 +64,14 @@ autodetection may be overridden by specifying a particular pipe type. %prep -%setup -q -n %{cpan_name}-%{version} +%autosetup -n %{cpan_name}-%{version} %build -%{__perl} Makefile.PL INSTALLDIRS=vendor -%{__make} %{?_smp_mflags} +perl Makefile.PL INSTALLDIRS=vendor +%make_build %check -%{__make} test +make test %install %perl_make_install @@ -80,7 +79,7 @@ %perl_gen_filelist %files -f %{name}.files -%defattr(-,root,root,755) -%doc CHANGES LICENSE README README.mkdn +%doc CHANGES README README.mkdn +%license LICENSE %changelog ++++++ IO-Pipely-0.005.tar.gz -> IO-Pipely-0.006.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/CHANGES new/IO-Pipely-0.006/CHANGES --- old/IO-Pipely-0.005/CHANGES 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/CHANGES 2021-12-14 02:56:43.000000000 +0100 @@ -1,37 +1,47 @@ ================================================== -Changes from 2012-08-12 00:00:00 +0000 to present. +Changes from 2020-12-14 00:00:00 +0000 to present. ================================================== ------------------------------------------ -version 0.005 at 2013-08-12 13:08:39 +0000 +version 0.006 at 2021-12-14 01:56:39 +0000 ------------------------------------------ - Change: 7f5c663b5f275b84b2d3a02fcceb8569823b3270 + Change: ae3e73a1a6dd1bd5421e16eb9724f67c6af8f766 Author: Rocco Caputo <[email protected]> - Date : 2013-08-12 09:08:07 +0000 + Date : 2021-12-13 20:41:21 +0000 - Exclude more indirect perl dependencies from auto-versioning. + Try to make `dzil release` more working. ------------------------------------------- -version 0.004 at 2013-08-10 21:36:25 +0000 ------------------------------------------- - - Change: 5a8d613d6e9bbce08194158a3f4715a8a72c33af + Change: b68a6402bc0744cf42d6b53263ab70809e1ed90c Author: Rocco Caputo <[email protected]> - Date : 2013-08-10 17:36:25 +0000 + Date : 2021-12-12 23:15:57 +0000 - Revising my workflow. Update dist.ini to support it. + Fix a `dzil release` runtime complaint about base's required version. ------------------------------------------- -version 0.003 at 2013-08-04 19:15:09 +0000 ------------------------------------------- + Change: 75e80bcf7007d8a28c4914e4af7cfef76db76125 + Author: Rocco Caputo <[email protected]> + Date : 2021-12-12 22:29:53 +0000 - Change: 27d8c942881e34680cfa35e0182a5d3e03badeda + Update copyright date. + + Change: 7cde30af6484ff4af88beb59df73712cdccbf770 Author: Rocco Caputo <[email protected]> - Date : 2013-08-04 15:15:09 +0000 + Date : 2021-12-12 22:23:09 +0000 + + Merge pull request #1 from zmughal/fix-socketpairly-docs + + Fix socketpairly() docs to match code. + + Change: 03c8d1aa97f579eadb8107fa40ce6b95538ccf14 + Author: Zakariyya Mughal <[email protected]> + Date : 2021-12-12 21:57:17 +0000 + + Fix socketpairly() docs to match code - Copyright date overdue for an overhaul. + Partially reverts 0eebdd0dee0fa90bf47ca4e8ae4e0216d66ac785 where the + order of the list of handles returned by `socketpairly()` was changed + only in the documentation, but not the code. ================================================ -Plus 2 releases after 2012-08-12 00:00:00 +0000. +Plus 5 releases after 2020-12-14 00:00:00 +0000. ================================================ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/LICENSE new/IO-Pipely-0.006/LICENSE --- old/IO-Pipely-0.005/LICENSE 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/LICENSE 2021-12-14 02:56:43.000000000 +0100 @@ -1,4 +1,4 @@ -This software is copyright (c) 2013 by Rocco Caputo. +This software is copyright (c) 2021 by Rocco Caputo. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. @@ -12,7 +12,7 @@ --- The GNU General Public License, Version 1, February 1989 --- -This software is Copyright (c) 2013 by Rocco Caputo. +This software is Copyright (c) 2021 by Rocco Caputo. This is free software, licensed under: @@ -22,7 +22,7 @@ Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -272,7 +272,7 @@ --- The Artistic License 1.0 --- -This software is Copyright (c) 2013 by Rocco Caputo. +This software is Copyright (c) 2021 by Rocco Caputo. This is free software, licensed under: @@ -292,21 +292,21 @@ - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through - textual modification. + textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright - Holder. + Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for - the package. + the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the - computing community at large as a market that must bear the fee.) + computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they - received it. + received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you @@ -373,7 +373,7 @@ 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/MANIFEST new/IO-Pipely-0.006/MANIFEST --- old/IO-Pipely-0.005/MANIFEST 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/MANIFEST 2021-12-14 02:56:43.000000000 +0100 @@ -1,3 +1,4 @@ +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.024. CHANGES LICENSE MANIFEST @@ -16,5 +17,5 @@ t/11-pipely-base.t t/12-pipely-oneway.t t/13-pipely-twoway.t -t/release-pod-coverage.t -t/release-pod-syntax.t +t/author-pod-coverage.t +t/author-pod-syntax.t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/META.json new/IO-Pipely-0.006/META.json --- old/IO-Pipely-0.005/META.json 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/META.json 2021-12-14 02:56:43.000000000 +0100 @@ -4,19 +4,19 @@ "Rocco Caputo <[email protected]>" ], "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 4.300035, CPAN::Meta::Converter version 2.132140", + "generated_by" : "Dist::Zilla version 6.024, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" + "version" : 2 }, "name" : "IO-Pipely", "prereqs" : { "configure" : { "requires" : { - "ExtUtils::MakeMaker" : "6.30" + "ExtUtils::MakeMaker" : "0" } }, "develop" : { @@ -28,20 +28,20 @@ }, "runtime" : { "requires" : { - "Exporter" : "5.68", - "Fcntl" : "1.06", - "IO::Socket" : "1.31", - "Symbol" : "1.06", - "base" : "2.18", + "Exporter" : "5.72", + "Fcntl" : "1.13", + "IO::Socket" : "1.38", + "Symbol" : "1.08", + "base" : "0", "strict" : "0", "warnings" : "0" } }, "test" : { "requires" : { - "Carp" : "1.26", - "Scalar::Util" : "1.29", - "Test::More" : "0.98", + "Carp" : "1.42", + "Scalar::Util" : "1.46_02", + "Test::More" : "1.302120", "perl" : "5.004" } } @@ -62,6 +62,9 @@ "web" : "https://github.com/rcaputo/io-pipely" } }, - "version" : "0.005" + "version" : "0.006", + "x_generated_by_perl" : "v5.26.1", + "x_serialization_backend" : "Cpanel::JSON::XS version 3.0239", + "x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/META.yml new/IO-Pipely-0.006/META.yml --- old/IO-Pipely-0.005/META.yml 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/META.yml 2021-12-14 02:56:43.000000000 +0100 @@ -3,30 +3,33 @@ author: - 'Rocco Caputo <[email protected]>' build_requires: - Carp: 1.26 - Scalar::Util: 1.29 - Test::More: 0.98 - perl: 5.004 + Carp: '1.42' + Scalar::Util: 1.46_02 + Test::More: '1.302120' + perl: '5.004' configure_requires: - ExtUtils::MakeMaker: 6.30 + ExtUtils::MakeMaker: '0' dynamic_config: 0 -generated_by: 'Dist::Zilla version 4.300035, CPAN::Meta::Converter version 2.132140' +generated_by: 'Dist::Zilla version 6.024, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: 1.4 + version: '1.4' name: IO-Pipely requires: - Exporter: 5.68 - Fcntl: 1.06 - IO::Socket: 1.31 - Symbol: 1.06 - base: 2.18 - strict: 0 - warnings: 0 + Exporter: '5.72' + Fcntl: '1.13' + IO::Socket: '1.38' + Symbol: '1.08' + base: '0' + strict: '0' + warnings: '0' resources: bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=IO-Pipely homepage: http://search.cpan.org/dist/IO-Pipely/ license: http://dev.perl.org/licenses/ repository: git://github.com/rcaputo/io-pipely.git -version: 0.005 +version: '0.006' +x_generated_by_perl: v5.26.1 +x_serialization_backend: 'YAML::Tiny version 1.70' +x_spdx_expression: 'Artistic-1.0-Perl OR GPL-1.0-or-later' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/Makefile.PL new/IO-Pipely-0.006/Makefile.PL --- old/IO-Pipely-0.005/Makefile.PL 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/Makefile.PL 2021-12-14 02:56:43.000000000 +0100 @@ -1,75 +1,63 @@ - +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.024. use strict; use warnings; +use 5.004; - -use ExtUtils::MakeMaker 6.30; - - +use ExtUtils::MakeMaker; my %WriteMakefileArgs = ( "ABSTRACT" => "Portably create pipe() or pipe-like handles, one way or another.", "AUTHOR" => "Rocco Caputo <rcaputo\@cpan.org>", - "BUILD_REQUIRES" => {}, "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.30" + "ExtUtils::MakeMaker" => 0 }, "DISTNAME" => "IO-Pipely", - "EXE_FILES" => [], "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.004", "NAME" => "IO::Pipely", "PREREQ_PM" => { - "Exporter" => "5.68", - "Fcntl" => "1.06", - "IO::Socket" => "1.31", - "Symbol" => "1.06", - "base" => "2.18", + "Exporter" => "5.72", + "Fcntl" => "1.13", + "IO::Socket" => "1.38", + "Symbol" => "1.08", + "base" => 0, "strict" => 0, "warnings" => 0 }, "TEST_REQUIRES" => { - "Carp" => "1.26", - "Scalar::Util" => "1.29", - "Test::More" => "0.98" + "Carp" => "1.42", + "Scalar::Util" => "1.46_02", + "Test::More" => "1.302120" }, - "VERSION" => "0.005", + "VERSION" => "0.006", "test" => { "TESTS" => "t/*.t" } ); -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - my $tr = delete $WriteMakefileArgs{TEST_REQUIRES}; - my $br = $WriteMakefileArgs{BUILD_REQUIRES}; - for my $mod ( keys %$tr ) { - if ( exists $br->{$mod} ) { - $br->{$mod} = $tr->{$mod} if $tr->{$mod} > $br->{$mod}; - } - else { - $br->{$mod} = $tr->{$mod}; - } - } -} +my %FallbackPrereqs = ( + "Carp" => "1.42", + "Exporter" => "5.72", + "Fcntl" => "1.13", + "IO::Socket" => "1.38", + "Scalar::Util" => "1.46_02", + "Symbol" => "1.08", + "Test::More" => "1.302120", + "base" => 0, + "strict" => 0, + "warnings" => 0 +); -unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) { - my $br = delete $WriteMakefileArgs{BUILD_REQUIRES}; - my $pp = $WriteMakefileArgs{PREREQ_PM}; - for my $mod ( keys %$br ) { - if ( exists $pp->{$mod} ) { - $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod}; - } - else { - $pp->{$mod} = $br->{$mod}; - } - } + +unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { + delete $WriteMakefileArgs{TEST_REQUIRES}; + delete $WriteMakefileArgs{BUILD_REQUIRES}; + $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; } delete $WriteMakefileArgs{CONFIGURE_REQUIRES} unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; WriteMakefile(%WriteMakefileArgs); - - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/README new/IO-Pipely-0.006/README --- old/IO-Pipely-0.005/README 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/README 2021-12-14 02:56:43.000000000 +0100 @@ -1,46 +1,46 @@ NAME + IO::Pipely - Portably create pipe() or pipe-like handles, one way or another. -VERSION - version 0.005 - SYNOPSIS + Please read DESCRIPTION for detailed semantics and caveats. use IO::Pipely qw(pipely socketpairly); - + # Create a one-directional pipe() or pipe-like thing # the best conduit type available. - + my ($read, $write) = pipely(); - + # Create a one-directional pipe-like thing using an # INET socket specifically. Other types are available. - + my ($read, $write) = pipely(type => 'inet'); - + # Create a bidirectional pipe-like thing using # the best conduit type available. - + my ( - $side_a_read, $side_b_read, - $side_a_write, $side_b_write, + $side_a_read, $side_a_write, + $side_b_read, $side_b_write, ) = socketpairly(); - + # Create a bidirectional pipe-like thing using an INET socket # specifically. - + my ( - $side_a_read, $side_b_read, - $side_a_write, $side_b_write, + $side_a_read, $side_a_write, + $side_b_read, $side_b_write, ) = socketpairly(type => 'inet'); DESCRIPTION + Pipes are troublesome beasts because there are a few different, incompatible ways to create them. Not all platforms support all ways, - and some platforms may have hidden difficulties like incomplete or buggy - support. + and some platforms may have hidden difficulties like incomplete or + buggy support. IO::Pipely provides a couple functions to portably create one- and two-way pipes and pipe-like socket pairs. It acknowledges and works @@ -54,12 +54,13 @@ far, but it's hardly complete. Please help support other mechanisms, such as INET-domain socketpair() and IPv6 localhost sockets. - IO::Pipely will use different kinds of pipes or sockets depending on the - operating system's capabilities and the number of directions requested. - The autodetection may be overridden by specifying a particular pipe - type. + IO::Pipely will use different kinds of pipes or sockets depending on + the operating system's capabilities and the number of directions + requested. The autodetection may be overridden by specifying a + particular pipe type. + + pipely - pipely pipely() creates a one-directional pipe() or socket. It's modeled after Perl's built-in pipe() function, but it creates and returns handles rather than opening ones given to it. @@ -95,17 +96,18 @@ MacPerl (MacOS 9 and earlier) has similar capaibilities to Windows. - socketpairly - socketpairly() creates a two-directional socket pair. It's modeled after - Perl's built-in socketpair(), but it creates and returns handles rather - than opening ones given to it. + socketpairly - On success, socketpairly() returns four file handles, read and write for - one end, and read and write for the other. On failure, it returns + socketpairly() creates a two-directional socket pair. It's modeled + after Perl's built-in socketpair(), but it creates and returns handles + rather than opening ones given to it. + + On success, socketpairly() returns four file handles, read and write + for one end, and read and write for the other. On failure, it returns nothing. use IO::Pipely qw(socketpairly); - my ($a_read, $b_read, $a_write, $b_write) = socketpairly(); + my ($a_read, $a_write, $b_read, $b_write) = socketpairly(); die "socketpairly() failed: $!" unless $a_read; socketpairly() returns two extra "writer" handles. They exist for the @@ -114,7 +116,7 @@ used. For example: use IO::Pipely qw(socketpairly); - my ($side_a, $side_b) = socketpairly( type => 'socketpair' ); + my ($side_a, undef, $side_b, undef) = socketpairly( type => 'socketpair' ); die "socketpairly() failed: $!" unless $side_a; When given a choice, it will prefer bidirectional sockets instead of @@ -125,7 +127,7 @@ example, two unidirectional pipes wil be used instead of a more efficient pair of sockets: - my ($a_read, $a_write, $b_read, $b_write) = pipely( + my ($a_read, $a_write, $b_read, $b_write) = socketpairly( type => 'pipe', ); @@ -138,19 +140,21 @@ UNIX socketpair(), and finally a couple of pipe() calls. The fallback options will probably fail, but the code remains hopeful. - Cygwin Perl prefers localhost Internet sockets first, followed by a pair - of pipe() calls, and finally a UNIX socketpair(). Those who know may - find this counter-intuitive, but it works around known issues in some - versions of Cygwin socketpair(). + Cygwin Perl prefers localhost Internet sockets first, followed by a + pair of pipe() calls, and finally a UNIX socketpair(). Those who know + may find this counter-intuitive, but it works around known issues in + some versions of Cygwin socketpair(). MacPerl (MacOS 9 and earlier) has similar capaibilities to Windows. - PIPE TYPES + PIPE TYPES + IO::Pipely currently supports three types of pipe and socket. Other types are possible, but these three cover all known uses so far. Please ask (or send patches) if additional types are needed. - pipe + pipe + Attempt to establish a one-way pipe using one pipe() filehandle pair (2 file descriptors), or a two-way pipe-like connection using two pipe() pairs (4 file descriptors). @@ -158,7 +162,8 @@ IO::Pipely prefers to use pipe() for one-way pipes and some form of socket pair for two-way pipelike things. - socketpair + socketpair + Attempt to establish a one- or two-way pipelike connection using a single socketpair() call. This uses two file descriptors regardless whether the connection is one- or two-way. @@ -170,21 +175,24 @@ it improves compatibility on some platform, or if someone contributes the code. - inet + inet + Attempt to establish a one- or two-way pipelike connection using localhost socket() calls. This uses two file descriptors regardless whether the connection is one- or two-way. - Localhost INET domain sockets are a last resort for platforms that don't - support something better. They are the least secure method of + Localhost INET domain sockets are a last resort for platforms that + don't support something better. They are the least secure method of communication since tools like tcpdump and Wireshark can tap into them. On the other hand, this makes them easiest to debug. KNOWN ISSUES + These are issues known to the developers at the time of this writing. Things change, so check back now and then. - Cygwin + Cygwin + CygWin seems to have a problem with socketpair() and exec(). When an exec'd process closes, any data on sockets created with socketpair() is not flushed. From irc.perl.org channel #poe: @@ -201,18 +209,21 @@ one with cygwin, according to searches on google, but never been fixed. - MacOS 9 - IO::Pipely supports MacOS 9 for historical reasons. It's unclear whether - anyone still uses MacPerl, but the support is cheap since pipes and - sockets there have many of the same caveats as they do on Windows. + MacOS 9 + + IO::Pipely supports MacOS 9 for historical reasons. It's unclear + whether anyone still uses MacPerl, but the support is cheap since pipes + and sockets there have many of the same caveats as they do on Windows. + + Symbol::gensym - Symbol::gensym IO::Pipely uses Symbol::gensym() instead of autovivifying file handles. The main reasons against gensym() have been stylistic ones so far. Meanwhile, gensym() is compatible farther back than handle autovivification. - Windows + Windows + ActiveState and Strawberry Perl don't support pipe() or UNIX socketpair(). Localhost Internet sockets are used for everything there, including one-way pipes. @@ -221,12 +232,13 @@ sending data the wrong way through them. Use socketpairly() instead. BUGS + The functions implemented here die outright upon failure, requiring eval{} around their calls. - The following conduit types are currently unsupported because nobody has - needed them so far. Please submit a request (and/or a patch) if any of - these is needed: + The following conduit types are currently unsupported because nobody + has needed them so far. Please submit a request (and/or a patch) if any + of these is needed: UNIX socket() INET-domain socketpair() @@ -234,12 +246,14 @@ IPv6-specific localhost sockets AUTHOR & COPYRIGHT - IO::Pipely is copyright 2000-2013 by Rocco Caputo. All rights reserved. + + IO::Pipely is copyright 2000-2021 by Rocco Caputo. All rights reserved. IO::Pipely is free software; you may redistribute it and/or modify it under the same terms as Perl itself. HISTORY + IO::Pipely is a spin-off of the POE project's portable pipes. Earlier - versions of the code have been tested and used in production systems for - over a decade. + versions of the code have been tested and used in production systems + for over a decade. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/README.mkdn new/IO-Pipely-0.006/README.mkdn --- old/IO-Pipely-0.005/README.mkdn 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/README.mkdn 2021-12-14 02:56:43.000000000 +0100 @@ -4,7 +4,7 @@ # VERSION -version 0.005 +version 0.006 # SYNOPSIS @@ -26,16 +26,16 @@ # the best conduit type available. my ( - $side_a_read, $side_b_read, - $side_a_write, $side_b_write, + $side_a_read, $side_a_write, + $side_b_read, $side_b_write, ) = socketpairly(); # Create a bidirectional pipe-like thing using an INET socket # specifically. my ( - $side_a_read, $side_b_read, - $side_a_write, $side_b_write, + $side_a_read, $side_a_write, + $side_b_read, $side_b_write, ) = socketpairly(type => 'inet'); # DESCRIPTION @@ -80,7 +80,7 @@ of socketpair() and socket(). pipely()'s choice can be forced using an optional named "type" -parameter. See ["PIPE TYPES"](#PIPE TYPES) for the types that can be used. +parameter. See ["PIPE TYPES"](#pipe-types) for the types that can be used. my ($a_read, $b_write) = pipely( type => 'pipe', @@ -110,7 +110,7 @@ nothing. use IO::Pipely qw(socketpairly); - my ($a_read, $b_read, $a_write, $b_write) = socketpairly(); + my ($a_read, $a_write, $b_read, $b_write) = socketpairly(); die "socketpairly() failed: $!" unless $a_read; socketpairly() returns two extra "writer" handles. They exist for the @@ -119,18 +119,18 @@ used. For example: use IO::Pipely qw(socketpairly); - my ($side_a, $side_b) = socketpairly( type => 'socketpair' ); + my ($side_a, undef, $side_b, undef) = socketpairly( type => 'socketpair' ); die "socketpairly() failed: $!" unless $side_a; When given a choice, it will prefer bidirectional sockets instead of pipe() calls. socketpairly()'s choice can be forced using an optional named "type" -parameter. See ["PIPE TYPES"](#PIPE TYPES) for the types that can be used. In +parameter. See ["PIPE TYPES"](#pipe-types) for the types that can be used. In this example, two unidirectional pipes wil be used instead of a more efficient pair of sockets: - my ($a_read, $a_write, $b_read, $b_write) = pipely( + my ($a_read, $a_write, $b_read, $b_write) = socketpairly( type => 'pipe', ); @@ -198,7 +198,7 @@ CygWin seems to have a problem with socketpair() and exec(). When an exec'd process closes, any data on sockets created with -socketpair() is not flushed. From irc.perl.org channel \#poe: +socketpair() is not flushed. From irc.perl.org channel #poe: <dngnand> Sounds like a lapse in cygwin's exec implementation. It works ok under Unix-ish systems? @@ -251,13 +251,13 @@ # AUTHOR & COPYRIGHT -IO::Pipely is copyright 2000-2013 by Rocco Caputo. +IO::Pipely is copyright 2000-2021 by Rocco Caputo. All rights reserved. IO::Pipely is free software; you may redistribute it and/or modify it under the same terms as Perl itself. # HISTORY -IO::Pipely is a spin-off of the [POE](http://search.cpan.org/perldoc?POE) project's portable pipes. +IO::Pipely is a spin-off of the [POE](https://metacpan.org/pod/POE) project's portable pipes. Earlier versions of the code have been tested and used in production systems for over a decade. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/dist.ini new/IO-Pipely-0.006/dist.ini --- old/IO-Pipely-0.005/dist.ini 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/dist.ini 2021-12-14 02:56:43.000000000 +0100 @@ -14,6 +14,7 @@ exclude = strict exclude = vars exclude = warnings +exclude = base [AutoMetaResources] bugtracker.rt = 1 @@ -43,3 +44,7 @@ [@Classic] [MetaJSON] + +[TestRelease] +[ConfirmRelease] +[UploadToCPAN] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/lib/IO/Pipely.pm new/IO-Pipely-0.006/lib/IO/Pipely.pm --- old/IO-Pipely-0.005/lib/IO/Pipely.pm 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/lib/IO/Pipely.pm 2021-12-14 02:56:43.000000000 +0100 @@ -1,8 +1,5 @@ package IO::Pipely; -{ - $IO::Pipely::VERSION = '0.005'; -} - +$IO::Pipely::VERSION = '0.006'; use warnings; use strict; @@ -417,7 +414,7 @@ =head1 VERSION -version 0.005 +version 0.006 =head1 SYNOPSIS @@ -439,16 +436,16 @@ # the best conduit type available. my ( - $side_a_read, $side_b_read, - $side_a_write, $side_b_write, + $side_a_read, $side_a_write, + $side_b_read, $side_b_write, ) = socketpairly(); # Create a bidirectional pipe-like thing using an INET socket # specifically. my ( - $side_a_read, $side_b_read, - $side_a_write, $side_b_write, + $side_a_read, $side_a_write, + $side_b_read, $side_b_write, ) = socketpairly(type => 'inet'); =head1 DESCRIPTION @@ -523,7 +520,7 @@ nothing. use IO::Pipely qw(socketpairly); - my ($a_read, $b_read, $a_write, $b_write) = socketpairly(); + my ($a_read, $a_write, $b_read, $b_write) = socketpairly(); die "socketpairly() failed: $!" unless $a_read; socketpairly() returns two extra "writer" handles. They exist for the @@ -532,7 +529,7 @@ used. For example: use IO::Pipely qw(socketpairly); - my ($side_a, $side_b) = socketpairly( type => 'socketpair' ); + my ($side_a, undef, $side_b, undef) = socketpairly( type => 'socketpair' ); die "socketpairly() failed: $!" unless $side_a; When given a choice, it will prefer bidirectional sockets instead of @@ -543,7 +540,7 @@ this example, two unidirectional pipes wil be used instead of a more efficient pair of sockets: - my ($a_read, $a_write, $b_read, $b_write) = pipely( + my ($a_read, $a_write, $b_read, $b_write) = socketpairly( type => 'pipe', ); @@ -664,7 +661,7 @@ =head1 AUTHOR & COPYRIGHT -IO::Pipely is copyright 2000-2013 by Rocco Caputo. +IO::Pipely is copyright 2000-2021 by Rocco Caputo. All rights reserved. IO::Pipely is free software; you may redistribute it and/or modify it under the same terms as Perl itself. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/t/author-pod-coverage.t new/IO-Pipely-0.006/t/author-pod-coverage.t --- old/IO-Pipely-0.005/t/author-pod-coverage.t 1970-01-01 01:00:00.000000000 +0100 +++ new/IO-Pipely-0.006/t/author-pod-coverage.t 2021-12-14 02:56:43.000000000 +0100 @@ -0,0 +1,15 @@ +#!perl + +BEGIN { + unless ($ENV{AUTHOR_TESTING}) { + print qq{1..0 # SKIP these tests are for testing by the author\n}; + exit + } +} + +# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. + +use Test::Pod::Coverage 1.08; +use Pod::Coverage::TrustPod; + +all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/t/author-pod-syntax.t new/IO-Pipely-0.006/t/author-pod-syntax.t --- old/IO-Pipely-0.005/t/author-pod-syntax.t 1970-01-01 01:00:00.000000000 +0100 +++ new/IO-Pipely-0.006/t/author-pod-syntax.t 2021-12-14 02:56:43.000000000 +0100 @@ -0,0 +1,15 @@ +#!perl + +BEGIN { + unless ($ENV{AUTHOR_TESTING}) { + print qq{1..0 # SKIP these tests are for testing by the author\n}; + exit + } +} + +# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. +use strict; use warnings; +use Test::More; +use Test::Pod 1.41; + +all_pod_files_ok(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/t/release-pod-coverage.t new/IO-Pipely-0.006/t/release-pod-coverage.t --- old/IO-Pipely-0.005/t/release-pod-coverage.t 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/t/release-pod-coverage.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,21 +0,0 @@ -#!perl - -BEGIN { - unless ($ENV{RELEASE_TESTING}) { - require Test::More; - Test::More::plan(skip_all => 'these tests are for release candidate testing'); - } -} - - -use Test::More; - -eval "use Test::Pod::Coverage 1.08"; -plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage" - if $@; - -eval "use Pod::Coverage::TrustPod"; -plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage" - if $@; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Pipely-0.005/t/release-pod-syntax.t new/IO-Pipely-0.006/t/release-pod-syntax.t --- old/IO-Pipely-0.005/t/release-pod-syntax.t 2013-08-12 15:08:42.000000000 +0200 +++ new/IO-Pipely-0.006/t/release-pod-syntax.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,15 +0,0 @@ -#!perl - -BEGIN { - unless ($ENV{RELEASE_TESTING}) { - require Test::More; - Test::More::plan(skip_all => 'these tests are for release candidate testing'); - } -} - -use Test::More; - -eval "use Test::Pod 1.41"; -plan skip_all => "Test::Pod 1.41 required for testing POD" if $@; - -all_pod_files_ok(); ++++++ cpanspec.yml ++++++ --- #description_paragraphs: 3 #description: |- # override description from CPAN #summary: override summary from CPAN #no_testing: broken upstream #sources: # - source1 # - source2 #patches: # foo.patch: -p1 # bar.patch: # baz.patch: PATCH-FIX-OPENSUSE #preamble: |- # BuildRequires: gcc-c++ #post_prep: |- # hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'` # sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL #post_build: |- # rm unused.files #post_install: |- # sed on %{name}.files #license: SUSE-NonFree #skip_noarch: 1 #custom_build: |- #./Build build flags=%{?_smp_mflags} --myflag #custom_test: |- #startserver && make test #ignore_requires: Bizarre::Module #skip_doc: regexp_to_skip_for_doc.* #add_doc: files to add to docs #misc: |- #anything else to be added to spec file #follows directly after %files section, so it can contain new blocks or also #changes to %files section
