import perl-IPC-Run3-0.049-3.el10

i10cs changed/i10cs/perl-IPC-Run3-0.049-3.el10
MSVSphere Packaging Team 4 months ago
commit 447cdf1cb0
Signed by: sys_gitsync
GPG Key ID: B2B0B9F29E528FE8

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/IPC-Run3-0.049.tar.gz

@ -0,0 +1 @@
46818b42ce868d5a818944c56f3bfdeec570f8ba SOURCES/IPC-Run3-0.049.tar.gz

@ -0,0 +1,134 @@
From 8ebe48760cfdc78fbf4fc46413dde9470121b99e Mon Sep 17 00:00:00 2001
From: Roderich Schupp <roderich.schupp@gmail.com>
Date: Sun, 29 Sep 2013 18:12:03 +0200
Subject: [PATCH 5/5] test and fix for RT #52317: Calling run3 garbles STDIN
---
lib/IPC/Run3.pm | 26 ++++++-------------------
t/preserve_stdin.t | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 20 deletions(-)
create mode 100644 t/preserve_stdin.t
diff --git a/lib/IPC/Run3.pm b/lib/IPC/Run3.pm
index 12c9d8a..777e290 100644
--- a/lib/IPC/Run3.pm
+++ b/lib/IPC/Run3.pm
@@ -363,14 +363,12 @@ sub run3 {
$options if defined $stderr;
# this should make perl close these on exceptions
-# local *STDIN_SAVE;
+ local *STDIN_SAVE;
local *STDOUT_SAVE;
local *STDERR_SAVE;
- my $saved_fd0 = dup( 0 ) if defined $in_fh;
-
-# open STDIN_SAVE, "<&STDIN"# or croak "run3(): $! saving STDIN"
-# if defined $in_fh;
+ open STDIN_SAVE, "<&STDIN" or croak "run3(): $! saving STDIN"
+ if defined $in_fh;
open STDOUT_SAVE, ">&STDOUT" or croak "run3(): $! saving STDOUT"
if defined $out_fh;
open STDERR_SAVE, ">&STDERR" or croak "run3(): $! saving STDERR"
@@ -378,17 +376,10 @@ sub run3 {
my $errno;
my $ok = eval {
- # The open() call here seems to not force fd 0 in some cases;
- # I ran in to trouble when using this in VCP, not sure why.
- # the dup2() seems to work.
- dup2( fileno $in_fh, 0 )
-# open STDIN, "<&=" . fileno $in_fh
+ open STDIN, "<&=" . fileno $in_fh
or croak "run3(): $! redirecting STDIN"
if defined $in_fh;
-# close $in_fh or croak "$! closing STDIN temp file"
-# if ref $stdin;
-
open STDOUT, ">&" . fileno $out_fh
or croak "run3(): $! redirecting STDOUT"
if defined $out_fh;
@@ -428,13 +419,8 @@ sub run3 {
my @errs;
- if ( defined $saved_fd0 ) {
- dup2( $saved_fd0, 0 );
- POSIX::close( $saved_fd0 );
- }
-
-# open STDIN, "<&STDIN_SAVE"# or push @errs, "run3(): $! restoring STDIN"
-# if defined $in_fh;
+ open STDIN, "<&STDIN_SAVE" or push @errs, "run3(): $! restoring STDIN"
+ if defined $in_fh;
open STDOUT, ">&STDOUT_SAVE" or push @errs, "run3(): $! restoring STDOUT"
if defined $out_fh;
open STDERR, ">&STDERR_SAVE" or push @errs, "run3(): $! restoring STDERR"
diff --git a/t/preserve_stdin.t b/t/preserve_stdin.t
new file mode 100644
index 0000000..8e090ee
--- /dev/null
+++ b/t/preserve_stdin.t
@@ -0,0 +1,57 @@
+#!perl -w
+
+## test whether reading from STDIN is preserved when
+## run3 is called in between reads
+
+use Test::More;
+use IPC::Run3;
+use File::Temp qw(tempfile);
+use strict;
+
+# call run3 at different lines (problems might manifest itself
+# on different lines, probably due to different buffering of input)
+my @check_at = (5, 10, 50, 100, 200, 500);
+plan tests => @check_at * 3;
+
+# create a test file for input containing 1000 lines
+my $nlines = 1000;
+my @exp_lines;
+my ($fh, $file) = tempfile(UNLINK => 1);
+for (my $i = 1; $i <= $nlines; $i++)
+{
+ my $line = "this is line $i";
+ push @exp_lines, $line;
+ print $fh $line, "\n";
+}
+close $fh;
+
+
+my ( $in, $out, $err );
+
+foreach my $n (@check_at)
+{
+ my $nread = 0;
+ my $unexpected;
+ open STDIN, "<", $file or die "can't open file $file: $!";
+ while (<STDIN>)
+ {
+ chomp;
+ $unexpected = qq[line $nread: expected "$exp_lines[$nread]", got "$_"\n]
+ unless $exp_lines[$nread] eq $_ || $unexpected;
+ $nread++;
+
+ if ($nread == $n)
+ {
+ $in = "checking at line $n";
+ run3 [ $^X, '-e', 'print uc $_ while <>' ], \$in, \$out, \$err;
+ die "command failed" unless $? == 0;
+ is($out, uc $in);
+ }
+ }
+ close STDIN;
+
+ is($nread, $nlines, "STDIN was read completely");
+ ok(!$unexpected, "STDIN as expected") or diag($unexpected);
+}
+
+
--
1.8.5.3

@ -0,0 +1,309 @@
Name: perl-IPC-Run3
Version: 0.049
Release: 3%{?dist}
Summary: Run a subprocess in batch mode
License: GPL-1.0-or-later OR Artistic-1.0-Perl OR BSD-2-Clause
URL: https://metacpan.org/release/IPC-Run3
Source0: https://cpan.metacpan.org/authors/id/R/RJ/RJBS/IPC-Run3-%{version}.tar.gz
BuildArch: noarch
BuildRequires: %{__make}
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(Carp)
BuildRequires: perl(Exporter)
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: perl(File::Temp)
BuildRequires: perl(Getopt::Long)
BuildRequires: perl(POSIX)
BuildRequires: perl(Test)
BuildRequires: perl(Test::More) >= 0.31
BuildRequires: perl(Time::HiRes)
BuildRequires: perl(constant)
BuildRequires: perl(strict)
# For improved tests
BuildRequires: perl(Test::Pod::Coverage)
BuildRequires: perl(Test::Pod)
# RHBZ #1062267 / https://rt.cpan.org/Public/Bug/Display.html?id=52317
# Patch against IPC-Run3-0.048 from
# https://github.com/rschupp/IPC-Run3/commit/8ebe48760cfdc78fbf4fc46413dde9470121b99e
# FIXME: For now, keep the patch, but do not apply it.
# Upstream considers the issue to be a known implementation limitation.
Patch0: 0001-test-and-fix-for-RT-52317-Calling-run3-garbles-STDIN.patch
%description
This module allows you to run a subprocess and redirect stdin, stdout,
and/or stderr to files and perl data structures. It aims to satisfy 99% of
the need for using system, qx, and open3 with a simple, extremely Perlish
API and none of the bloat and rarely used features of IPC::Run.
%package tests
Summary: Tests for %{name}
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: perl-Test-Harness
%description tests
Tests from %{name}. Execute them
with "%{_libexecdir}/%{name}/test".
%prep
%setup -q -n IPC-Run3-%{version}
# Help generators to recognize Perl scripts
for F in t/*.t; do
perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!.*perl\b}{$Config{startperl}}' "$F"
chmod +x "$F"
done
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
%{make_build}
%install
%{make_install}
%{_fixperms} %{buildroot}/*
# Install tests
mkdir -p %{buildroot}%{_libexecdir}/%{name}
cp -a t %{buildroot}%{_libexecdir}/%{name}
rm %{buildroot}%{_libexecdir}/%{name}/t/pod*
cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF'
#!/bin/bash
set -e
DIR=$(mktemp -d)
pushd "$DIR"
cp -a %{_libexecdir}/%{name}/* ./
prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
popd
rm -rf "$DIR"
EOF
chmod +x %{buildroot}%{_libexecdir}/%{name}/test
%check
%{__make} test RELEASE_TESTING=1
%files
%doc Changes README
%license LICENSE
%{perl_vendorlib}/*
%{_mandir}/man3/*
%files tests
%{_libexecdir}/%{name}
%changelog
* Fri Oct 25 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 0.049-3
- Rebuilt for MSVSphere 10
* Wed Jul 24 2024 Jitka Plesnikova <jplesnik@redhat.com> - 0.049-3
- Package tests
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 0.049-2
- Bump release for June 2024 mass rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.049-1
- Update to 0.049.
- Do not apply 0001-test-and-fix-for-RT-52317-Calling-run3-garbles-STDIN.patch
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-30
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Nov 28 2022 Ralf Corsépius <corsepiu@fedoraproject.org> - 0.048-27
- Convert License to SPDX.
- Modernize spec.
- Update sources sha512.
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue May 31 2022 Jitka Plesnikova <jplesnik@redhat.com> - 0.048-25
- Perl 5.36 rebuild
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 0.048-22
- Perl 5.34 rebuild
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jun 23 2020 Jitka Plesnikova <jplesnik@redhat.com> - 0.048-19
- Perl 5.32 rebuild
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri May 31 2019 Jitka Plesnikova <jplesnik@redhat.com> - 0.048-16
- Perl 5.30 rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Jun 28 2018 Jitka Plesnikova <jplesnik@redhat.com> - 0.048-13
- Perl 5.28 rebuild
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sun Jun 04 2017 Jitka Plesnikova <jplesnik@redhat.com> - 0.048-10
- Perl 5.26 rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sun May 15 2016 Jitka Plesnikova <jplesnik@redhat.com> - 0.048-8
- Perl 5.24 rebuild
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.048-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Jan 27 2016 Ralf Corsépius <corsepiu@fedoraproject.org> - 0.048-6
- Add %%license.
- Modernize spec.
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.048-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Fri Jun 05 2015 Jitka Plesnikova <jplesnik@redhat.com> - 0.048-4
- Perl 5.22 rebuild
* Wed Aug 27 2014 Jitka Plesnikova <jplesnik@redhat.com> - 0.048-3
- Perl 5.20 rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.048-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon Mar 31 2014 Ralf Corsépius <corsepiu@fedoraproject.org> - 0.048-1
- Upstream update.
- Add RELEASE_TESTING=1 to work around upstream trying to discourage
us from running pod-tests.
* Tue Feb 11 2014 Ralf Corsépius <corsepiu@fedoraproject.org> - 0.046-4
- Add 0001-test-and-fix-for-RT-52317-Calling-run3-garbles-STDIN.patch (RHBZ#1062267).
- Spec-file cosmetics.
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.046-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Sat Jul 20 2013 Petr Pisar <ppisar@redhat.com> - 0.046-2
- Perl 5.18 rebuild
* Wed Jul 17 2013 Ralf Corsépius <corsepiu@fedoraproject.org> - 0.046-1
- Upstream update.
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.045-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Fri Nov 23 2012 Petr Šabata <contyk@redhat.com> - 0.045-4
- Add missing BRs
- Drop command macros
- Remove redundant parens from the Licence tag
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.045-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Jun 12 2012 Petr Pisar <ppisar@redhat.com> - 0.045-2
- Perl 5.16 rebuild
* Thu Jan 05 2012 Ralf Corsépius <corsepiu@fedoraproject.org> - 0.045-1
- Upstream update.
- Modernize spec file.
* Mon Jun 20 2011 Marcela Mašláňová <mmaslano@redhat.com> - 0.044-4
- Perl mass rebuild
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.044-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Mon Dec 20 2010 Marcela Maslanova <mmaslano@redhat.com> - 0.044-2
- 661697 rebuild for fixing problems with vendorach/lib
* Mon Sep 13 2010 Ralf Corsépius <corsepiu@fedoraproject.org> - 0.044-1
- Upstream update.
- BR: perl(Test::More), perl(Time::HiRes).
* Sun May 02 2010 Marcela Maslanova <mmaslano@redhat.com> - 0.043-4
- Mass rebuild with perl-5.12.0
* Mon Dec 7 2009 Stepan Kasal <skasal@redhat.com> - 0.043-3
- rebuild against perl 5.10.1
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.043-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Jun 17 2009 Ralf Corsépius <corsepiu@fedoraproject.org> 0.043-1
- Upstream update.
- Reflect upstream URL having changed.
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.042-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Sat Nov 29 2008 Ralf Corsépius <corsepiu@fedoraproject.org> 0.042-3
- Change %%summary.
* Thu Aug 28 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.042-2
- fix license tag (technically, it was correct before, but this keeps rpmlint from
flagging this package as a false positive)
* Mon Aug 25 2008 Ralf Corsépius <corsepiu@fedoraproject.org> 0.042-1
- Upstream update.
* Fri Aug 08 2008 Ralf Corsépius <rc040203@freenet.de> 0.041-1
- Upstream update.
* Thu May 22 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.040-5
- reorder license tag so it doesn't flag as a false positive
* Thu Feb 28 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.040-4
- Rebuild normally, second pass
* Wed Feb 27 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.040-3
- Rebuild for perl 5.10 (again), disable tests for first pass
* Mon Jan 14 2008 Tom "spot" Callaway <tcallawa@redhat.com> 0.040-2
- rebuild normally, second pass
* Sat Jan 12 2008 Tom "spot" Callaway <tcallawa@redhat.com> 0.040-1.1
- rebuild for new perl, disable tests and TPC for first pass
* Fri Dec 28 2007 Ralf Corsépius <rc040203@freenet.de> 0.040-1
- Upstream update.
- chmod -x files from source tarball.
* Tue Nov 27 2007 Ralf Corsépius <rc040203@freenet.de> 0.039-2
- Bump release to please koji suckage.
* Tue Nov 27 2007 Ralf Corsépius <rc040203@freenet.de> 0.039-1
- Upstream update.
* Fri Sep 07 2007 Ralf Corsépius <rc040203@freenet.de> 0.037-2
- Initial import.
- Update license tag.
* Tue Aug 07 2007 Ralf Corsépius <rc040203@freenet.de> 0.037-1
- Initial submission.
Loading…
Cancel
Save