Compare commits

..

17 Commits
master ... f37

Author SHA1 Message Date
Fedora Release Engineering
e0ac4c27df Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 04:42:58 +00:00
Jitka Plesnikova
14be133a78 Perl 5.36 re-rebuild of bootstrapped packages 2022-06-03 12:37:22 +02:00
Jitka Plesnikova
b52633ec79 Increase release to favour standalone package 2022-05-30 14:46:48 +02:00
Jitka Plesnikova
b36e139f61 Upgrade to 2.184 based on perl-5.35.11 2022-05-11 12:10:15 +02:00
Fedora Release Engineering
e313732da7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-21 00:47:13 +00:00
Fedora Release Engineering
2b649ba73f - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 19:29:04 +00:00
Jitka Plesnikova
e614c4c0dd 2.183 bump 2021-07-08 10:57:33 +02:00
Jitka Plesnikova
f2a5d85988 2.182 bump 2021-07-02 08:34:14 +02:00
Jitka Plesnikova
057e5879a4 2.181 bump 2021-05-31 12:07:16 +02:00
Jitka Plesnikova
9ddf9accf9 Perl 5.34 re-rebuild of bootstrapped packages 2021-05-24 10:03:12 +02:00
Jitka Plesnikova
c62da7f21d Perl 5.34 re-rebuild of bootstrapped packages 2021-05-24 09:43:29 +02:00
Jitka Plesnikova
e16868896d Perl 5.34 rebuild 2021-05-21 09:58:48 +02:00
Jitka Plesnikova
54f1640984 Package tests 2021-05-17 14:36:25 +02:00
Jitka Plesnikova
0a8deb9fc8 2.180 bump 2021-05-17 14:21:39 +02:00
Fedora Release Engineering
ba0c761b02 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 00:34:15 +00:00
Petr Písař
126ad9fb2f Fix a memory leak when a magic throws an exception 2020-08-20 12:27:02 +02:00
Fedora Release Engineering
86fcb5e476 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 14:50:58 +00:00
9 changed files with 388 additions and 178 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

4
.gitignore vendored
View File

@ -9,3 +9,7 @@
/Data-Dumper-2.161.tar.gz /Data-Dumper-2.161.tar.gz
/Data-Dumper-2.172.tar.gz /Data-Dumper-2.172.tar.gz
/Data-Dumper-2.173.tar.gz /Data-Dumper-2.173.tar.gz
/Data-Dumper-2.180.tar.gz
/Data-Dumper-2.181.tar.gz
/Data-Dumper-2.182.tar.gz
/Data-Dumper-2.183.tar.gz

View File

@ -1,167 +0,0 @@
From d9c4b4ae5a1a17347ff5e3ecbf8e1d9da481f476 Mon Sep 17 00:00:00 2001
From: David Mitchell <davem@iabyn.com>
Date: Wed, 3 Apr 2019 13:23:24 +0100
Subject: [PATCH] Data::Dumper - avoid leak on croak
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
v5.21.3-742-g19be3be696 added a facility to Dumper.xs to croak if the
recursion level became too deep (1000 by default).
The trouble with this is that various parts of DD_dump() allocate
temporary SVs and buffers, which will leak if DD_dump() unceremoniously
just croaks().
This currently manifests as dist/Data-Dumper/t/recurse.t failing under
Address Sanitiser.
This commit makes the depth checking code just set a sticky 'too deep'
boolean flag, and
a) on entry, DD_dump() just returns immediately if the flag is set;
b) the flag is checked by the top-level called of DD_dump() and croaks
if set.
So the net effect is to defer croaking until the dump is complete,
and avoid any further recursion once the flag is set.
This is a bit of a quick fix. More long-term solutions would be to
convert DD_dump() to be iterative rather than recursive, and/or make
sure all temporary SVs and buffers are suitably anchored somewhere so
that they get cleaned up on croak.
Petr Písař: Ported from 6d65cb5d847ac93680949c4fa02111808207fbdc in
perl git tree.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
Dumper.pm | 6 +++---
Dumper.xs | 27 ++++++++++++++++++++-------
2 files changed, 23 insertions(+), 10 deletions(-)
diff --git a/Dumper.pm b/Dumper.pm
index 40aeb7d..06af4c4 100644
--- a/Dumper.pm
+++ b/Dumper.pm
@@ -10,7 +10,7 @@
package Data::Dumper;
BEGIN {
- $VERSION = '2.173'; # Don't forget to set version and release
+ $VERSION = '2.174'; # Don't forget to set version and release
} # date in POD below!
#$| = 1;
@@ -1461,13 +1461,13 @@ be to use the C<Sortkeys> filter of Data::Dumper.
Gurusamy Sarathy gsar@activestate.com
-Copyright (c) 1996-2017 Gurusamy Sarathy. All rights reserved.
+Copyright (c) 1996-2019 Gurusamy Sarathy. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
=head1 VERSION
-Version 2.173
+Version 2.174
=head1 SEE ALSO
diff --git a/Dumper.xs b/Dumper.xs
index 7f0b027..a324cb6 100644
--- a/Dumper.xs
+++ b/Dumper.xs
@@ -61,9 +61,10 @@
#endif
/* This struct contains almost all the user's desired configuration, and it
- * is treated as constant by the recursive function. This arrangement has
- * the advantage of needing less memory than passing all of them on the
- * stack all the time (as was the case in an earlier implementation). */
+ * is treated as mostly constant (except for maxrecursed) by the recursive
+ * function. This arrangement has the advantage of needing less memory
+ * than passing all of them on the stack all the time (as was the case in
+ * an earlier implementation). */
typedef struct {
SV *pad;
SV *xpad;
@@ -74,6 +75,7 @@ typedef struct {
SV *toaster;
SV *bless;
IV maxrecurse;
+ bool maxrecursed; /* at some point we exceeded the maximum recursion level */
I32 indent;
I32 purity;
I32 deepcopy;
@@ -97,7 +99,7 @@ static bool safe_decimal_number(const char *p, STRLEN len);
static SV *sv_x (pTHX_ SV *sv, const char *str, STRLEN len, I32 n);
static I32 DD_dump (pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval,
HV *seenhv, AV *postav, const I32 level, SV *apad,
- const Style *style);
+ Style *style);
#ifndef HvNAME_get
#define HvNAME_get HvNAME
@@ -615,7 +617,7 @@ deparsed_output(pTHX_ SV *val)
*/
static I32
DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
- AV *postav, const I32 level, SV *apad, const Style *style)
+ AV *postav, const I32 level, SV *apad, Style *style)
{
char tmpbuf[128];
Size_t i;
@@ -642,6 +644,9 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
if (!val)
return 0;
+ if (style->maxrecursed)
+ return 0;
+
/* If the output buffer has less than some arbitrary amount of space
remaining, then enlarge it. For the test case (25M of output),
*1.1 was slower, *2.0 was the same, so the first guess of 1.5 is
@@ -793,7 +798,7 @@ DD_dump(pTHX_ SV *val, const char *name, STRLEN namelen, SV *retval, HV *seenhv,
}
if (style->maxrecurse > 0 && level >= style->maxrecurse) {
- croak("Recursion limit of %" IVdf " exceeded", style->maxrecurse);
+ style->maxrecursed = TRUE;
}
if (realpack && !no_bless) { /* we have a blessed ref */
@@ -1528,6 +1533,7 @@ Data_Dumper_Dumpxs(href, ...)
style.indent = 2;
style.quotekeys = 1;
style.maxrecurse = 1000;
+ style.maxrecursed = FALSE;
style.purity = style.deepcopy = style.useqq = style.maxdepth
= style.use_sparse_seen_hash = style.trailingcomma = 0;
style.pad = style.xpad = style.sep = style.pair = style.sortkeys
@@ -1675,7 +1681,7 @@ Data_Dumper_Dumpxs(href, ...)
DD_dump(aTHX_ val, SvPVX_const(name), SvCUR(name), valstr, seenhv,
postav, 0, newapad, &style);
SPAGAIN;
-
+
if (style.indent >= 2 && !terse)
SvREFCNT_dec(newapad);
@@ -1715,6 +1721,13 @@ Data_Dumper_Dumpxs(href, ...)
}
SvREFCNT_dec(postav);
SvREFCNT_dec(valstr);
+
+ /* we defer croaking until here so that temporary SVs and
+ * buffers won't be leaked */
+ if (style.maxrecursed)
+ croak("Recursion limit of %" IVdf " exceeded",
+ style.maxrecurse);
+
}
else
croak("Call to new() method failed to return HASH ref");
--
2.20.1

View File

@ -0,0 +1,274 @@
From d3b09ae0076981fb5ef8a979fa387105278a7234 Mon Sep 17 00:00:00 2001
From: Jitka Plesnikova <jplesnik@redhat.com>
Date: Wed, 11 May 2022 11:01:46 +0200
Subject: [PATCH] Upgrade to 2.184
---
Dumper.pm | 51 +++++++++++++++++++--------------------------------
Dumper.xs | 10 ++++------
t/dumper.t | 52 ++++++++++++++++------------------------------------
3 files changed, 39 insertions(+), 74 deletions(-)
diff --git a/Dumper.pm b/Dumper.pm
index 3b1bb75..ba61ffe 100644
--- a/Dumper.pm
+++ b/Dumper.pm
@@ -29,7 +29,7 @@ our ( $Indent, $Trailingcomma, $Purity, $Pad, $Varname, $Useqq, $Terse, $Freezer
our ( @ISA, @EXPORT, @EXPORT_OK, $VERSION );
BEGIN {
- $VERSION = '2.183'; # Don't forget to set version and release
+ $VERSION = '2.184'; # Don't forget to set version and release
# date in POD below!
@ISA = qw(Exporter);
@@ -740,15 +740,15 @@ my %esc = (
"\e" => "\\e",
);
-my $low_controls = ($IS_ASCII)
-
- # This includes \177, because traditionally it has been
- # output as octal, even though it isn't really a "low"
- # control
- ? qr/[\0-\x1f\177]/
-
- # EBCDIC low controls.
- : qr/[\0-\x3f]/;
+# The low controls are considered to be everything below SPACE, plus the
+# outlier \c? control (but that wasn't properly in existence in early perls,
+# so reconstruct its value here. This abandons EBCDIC support for this
+# character for perls below 5.8)
+my $low_controls = join "", map { quotemeta chr $_ } 0.. (ord(" ") - 1);
+$low_controls .= ($] < 5.008 || $IS_ASCII)
+ ? "\x7f"
+ : chr utf8::unicode_to_native(0x9F);
+my $low_controls_re = qr/[$low_controls]/;
# put a string value in double quotes
sub qquote {
@@ -758,19 +758,10 @@ sub qquote {
# This efficiently changes the high ordinal characters to \x{} if the utf8
# flag is on. On ASCII platforms, the high ordinals are all the
# non-ASCII's. On EBCDIC platforms, we don't include in these the non-ASCII
- # controls whose ordinals are less than SPACE, excluded below by the range
- # \0-\x3f. On ASCII platforms this range just compiles as part of :ascii:.
- # On EBCDIC platforms, there is just one outlier high ordinal control, and
- # it gets output as \x{}.
+ # controls.
my $bytes; { use bytes; $bytes = length }
- s/([^[:ascii:]\0-\x3f])/sprintf("\\x{%x}",ord($1))/ge
- if $bytes > length
-
- # The above doesn't get the EBCDIC outlier high ordinal control when
- # the string is UTF-8 but there are no UTF-8 variant characters in it.
- # We want that to come out as \x{} anyway. We need is_utf8() to do
- # this.
- || (! $IS_ASCII && utf8::is_utf8($_));
+ s/([^[:ascii:]$low_controls])/sprintf("\\x{%x}",ord($1))/ge
+ if $bytes > length;
return qq("$_") unless /[[:^print:]]/; # fast exit if only printables
@@ -779,21 +770,17 @@ sub qquote {
s/([\a\b\t\n\f\r\e])/$esc{$1}/g;
# no need for 3 digits in escape for octals not followed by a digit.
- s/($low_controls)(?!\d)/'\\'.sprintf('%o',ord($1))/eg;
+ s/($low_controls_re)(?!\d)/'\\'.sprintf('%o',ord($1))/eg;
# But otherwise use 3 digits
- s/($low_controls)/'\\'.sprintf('%03o',ord($1))/eg;
+ s/($low_controls_re)/'\\'.sprintf('%03o',ord($1))/eg;
# all but last branch below not supported --BEHAVIOR SUBJECT TO CHANGE--
my $high = shift || "";
if ($high eq "iso8859") { # Doesn't escape the Latin1 printables
- if ($IS_ASCII) {
- s/([\200-\240])/'\\'.sprintf('%o',ord($1))/eg;
- }
- else {
- my $high_control = utf8::unicode_to_native(0x9F);
- s/$high_control/sprintf('\\%o',ord($1))/eg;
- }
+ # Could use /u and [:cntrl:] etc, if khw were confident it worked in
+ # early early perls
+ s/([\200-\240])/'\\'.sprintf('%o',ord($1))/eg if $IS_ASCII;
} elsif ($high eq "utf8") {
# Some discussion of what to do here is in
# https://rt.perl.org/Ticket/Display.html?id=113088
@@ -1461,7 +1448,7 @@ modify it under the same terms as Perl itself.
=head1 VERSION
-Version 2.183
+Version 2.184
=head1 SEE ALSO
diff --git a/Dumper.xs b/Dumper.xs
index 0eaa6c9..8bd6397 100644
--- a/Dumper.xs
+++ b/Dumper.xs
@@ -287,14 +287,13 @@ esc_q_utf8(pTHX_ SV* sv, const char *src, STRLEN slen, I32 do_utf8, I32 useqq)
* outputs the raw char */
normal++;
}
- else { /* Is qq, low ordinal, non-printable. Output escape
- * sequences */
+ else { /* Is qq, non-printable. Output escape sequences */
if ( k == '\a' || k == '\b' || k == '\t' || k == '\n' || k == '\r'
|| k == '\f' || k == ESC_NATIVE)
{
grow += 2; /* 1 char plus backslash */
}
- else /* The other low ordinals are output as an octal escape
+ else /* The other non-printable controls are output as an octal escape
* sequence */
if (s + 1 >= send || isDIGIT(*(s+1))) {
/* When the following character is a digit, use 3 octal digits
@@ -341,9 +340,8 @@ esc_q_utf8(pTHX_ SV* sv, const char *src, STRLEN slen, I32 do_utf8, I32 useqq)
}
/* Here 1) isn't UTF-8; or
- * 2) the current character is ASCII; or
- * 3) it is an EBCDIC platform and is a low ordinal
- * non-ASCII control.
+ * 2) the current character is represented as the same single
+ * byte regardless of the string's UTF-8ness
* In each case the character occupies just one byte */
k = *(U8*)s;
increment = 1;
diff --git a/t/dumper.t b/t/dumper.t
index 3cd86a6..80b2c8e 100644
--- a/t/dumper.t
+++ b/t/dumper.t
@@ -77,8 +77,8 @@ sub convert_to_native {
$index = utf8::unicode_to_native(ord eval "\"$2\"");
# But low hex numbers are always in octal. These are all
- # controls.
- my $format = ($index < ord(" "))
+ # controls. The outlier \c? control is also in octal.
+ my $format = ($index < ord(" ") || $index == ord("\c?"))
? "\\%o"
: "\\x{%x}";
$replacement = sprintf($format, $index);
@@ -1659,8 +1659,8 @@ EOW
# "\\x{41f}",
# qr/\x{8b80}/,
# qr/\x{41f}/,
-# qr/\x{e4}/,
-# '\xE4'
+# qr/\x{b6}/,
+# '\xb6'
#];
EOW
if ($] lt '5.010001') {
@@ -1671,9 +1671,9 @@ EOW
$want =~ s{/(,?)$}{/u$1}mg;
}
my $want_xs = $want;
- $want_xs =~ s/'\xE4'/"\\x{e4}"/;
- $want_xs =~ s<([^\0-\177])> <sprintf '\\x{%x}', ord $1>ge;
- TEST_BOTH(qq(Data::Dumper->Dumpxs([ [qq/\x{41f}/, qr/\x{8b80}/, qr/\x{41f}/, qr/\x{e4}/, "\xE4"] ])),
+ $want_xs =~ s/'\xb6'/"\\x{b6}"/;
+ $want_xs =~ s<([[:^ascii:]])> <sprintf '\\x{%x}', ord $1>ge;
+ TEST_BOTH(qq(Data::Dumper->Dumpxs([ [qq/\x{41f}/, qr/\x{8b80}/, qr/\x{41f}/, qr/\x{b6}/, "\xb6"] ])),
"string with Unicode + regexp with Unicode",
$want, $want_xs);
}
@@ -1715,7 +1715,7 @@ EOW
# qr/ \x{203d}\\/ /,
# qr/ \\\x{203d}\\/ /,
# qr/ \\\x{203d}$bs:\\/ /,
-# '\xA3'
+# '\xB6'
#];
EOW
if ($] lt '5.010001') {
@@ -1726,9 +1726,9 @@ EOW
$want =~ s{/(,?)$}{/u$1}mg;
}
my $want_xs = $want;
- $want_xs =~ s/'\x{A3}'/"\\x{a3}"/;
+ $want_xs =~ s/'\x{B6}'/"\\x{b6}"/;
$want_xs =~ s/\x{203D}/\\x{203d}/g;
- TEST_BOTH(qq(Data::Dumper->Dumpxs([ [ '\x{2e18}', qr! \x{203d}/ !, qr! \\\x{203d}/ !, qr! \\\x{203d}$bs:/ !, "\xa3"] ])),
+ TEST_BOTH(qq(Data::Dumper->Dumpxs([ [ '\x{2e18}', qr! \x{203d}/ !, qr! \\\x{203d}/ !, qr! \\\x{203d}$bs:/ !, "\xb6"] ])),
"github #18614, github #18764, perl #58608 corner cases",
$want, $want_xs);
}
@@ -1743,13 +1743,13 @@ EOW
# qr/^\$/,
# qr/${dollar}foo/,
# qr/\\\$foo/,
-# qr/$dollar \x{A3} /u,
+# qr/$dollar \x{B6} /u,
# qr/$dollar \x{203d} /u,
# qr/\\\$ \x{203d} /u,
# qr/\\\\$dollar \x{203d} /u,
# qr/ \$| \x{203d} /u,
# qr/ (\$) \x{203d} /u,
-# '\xA3'
+# '\xB6'
#];
EOW
if ($] lt '5.014') {
@@ -1760,8 +1760,8 @@ EOW
$want =~ s!/,!)/,!g;
}
my $want_xs = $want;
- $want_xs =~ s/'\x{A3}'/"\\x{a3}"/;
- $want_xs =~ s/\x{A3}/\\x{a3}/;
+ $want_xs =~ s/'\x{B6}'/"\\x{b6}"/;
+ $want_xs =~ s/\x{B6}/\\x{b6}/;
$want_xs =~ s/\x{203D}/\\x{203d}/g;
my $have = <<"EOT";
Data::Dumper->Dumpxs([ [
@@ -1770,13 +1770,13 @@ Data::Dumper->Dumpxs([ [
qr'^\$',
qr'\$foo',
qr/\\\$foo/,
- qr'\$ \x{A3} ',
+ qr'\$ \x{B6} ',
qr'\$ \x{203d} ',
qr/\\\$ \x{203d} /,
qr'\\\\\$ \x{203d} ',
qr/ \$| \x{203d} /,
qr/ (\$) \x{203d} /,
- '\xA3'
+ '\xB6'
] ]);
EOT
TEST_BOTH($have, "CPAN #84569", $want, $want_xs);
@@ -1808,26 +1808,6 @@ EOW
"name of code in *foo",
$want);
}
-#############
-
-{
- # There is special code to handle the single control that in EBCDIC is
- # not in the block with all the other controls, when it is UTF-8 and
- # there are no variants in it (All controls in EBCDIC are invariant.)
- # This tests that. There is no harm in testing this works on ASCII,
- # and is better to not have split code paths.
- my $outlier = chr utf8::unicode_to_native(0x9F);
- my $outlier_hex = sprintf "%x", ord $outlier;
- my $want = <<EOT;
-#\$VAR1 = \"\\x{$outlier_hex}\";
-EOT
- $foo = "$outlier\x{100}";
- chop $foo;
- local $Data::Dumper::Useqq = 1;
- TEST_BOTH (q(Data::Dumper::DumperX($foo)),
- 'EBCDIC outlier control: DumperX',
- $want);
-}
############# [perl #124091]
{
my $want = <<'EOT';
--
2.34.3

7
gating.yaml Normal file
View File

@ -0,0 +1,7 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

View File

@ -1,15 +1,15 @@
%global base_version 2.173 %global base_version 2.183
Name: perl-Data-Dumper Name: perl-Data-Dumper
Version: 2.174 Version: 2.184
Release: 457%{?dist} Release: 490%{?dist}
Summary: Stringify perl data structures, suitable for printing and eval Summary: Stringify perl data structures, suitable for printing and eval
License: GPL+ or Artistic License: GPL+ or Artistic
URL: https://metacpan.org/release/Data-Dumper URL: https://metacpan.org/release/Data-Dumper
Source0: https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX/Data-Dumper-%{base_version}.tar.gz Source0: https://cpan.metacpan.org/authors/id/N/NW/NWCLARK/Data-Dumper-%{base_version}.tar.gz
# Fix a memory leak when croaking about a too deep recursion, # Upgrade to 2.184 based on perl-5.35.11
# fixed in perl after 5.29.9 Patch0: Data-Dumper-2.183-Upgrade-to-2.184.patch
Patch0: Data-Dumper-2.173-Data-Dumper-avoid-leak-on-croak.patch BuildRequires: coreutils
BuildRequires: findutils BuildRequires: findutils
BuildRequires: gcc BuildRequires: gcc
BuildRequires: make BuildRequires: make
@ -19,6 +19,7 @@ BuildRequires: perl-interpreter
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76 BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
BuildRequires: perl(File::Copy) BuildRequires: perl(File::Copy)
BuildRequires: perl(strict) BuildRequires: perl(strict)
BuildRequires: perl(warnings)
# perl-Test-Simple is in cycle with perl-Data-Dumper # perl-Test-Simple is in cycle with perl-Data-Dumper
%if !%{defined perl_bootstrap} %if !%{defined perl_bootstrap}
# Run-time: # Run-time:
@ -37,7 +38,6 @@ BuildRequires: perl(overload)
BuildRequires: perl(strict) BuildRequires: perl(strict)
BuildRequires: perl(Test::More) >= 0.98 BuildRequires: perl(Test::More) >= 0.98
BuildRequires: perl(vars) BuildRequires: perl(vars)
BuildRequires: perl(warnings)
# Optional tests: # Optional tests:
BuildRequires: perl(Encode) BuildRequires: perl(Encode)
%endif %endif
@ -49,27 +49,57 @@ Requires: perl(XSLoader)
%{?perl_default_filter} %{?perl_default_filter}
# Filter modules bundled for tests
%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}^%{_libexecdir}
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(Testing\\)
%description %description
Given a list of scalars or reference variables, writes out their contents Given a list of scalars or reference variables, writes out their contents
in perl syntax. The references can also be objects. The content of each in perl syntax. The references can also be objects. The content of each
variable is output in a single Perl statement. Handles self-referential variable is output in a single Perl statement. Handles self-referential
structures correctly. structures correctly.
%package tests
Summary: Tests for %{name}
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: perl(Encode)
Requires: perl-Test-Harness
%description tests
Tests from %{name}. Execute them
with "%{_libexecdir}/%{name}/test".
%prep %prep
%setup -q -n Data-Dumper-%{base_version} %setup -q -n Data-Dumper-%{base_version}
%patch0 -p1 %patch0 -p1
# Help file to recognise the 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 %build
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 OPTIMIZE="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 OPTIMIZE="$RPM_OPT_FLAGS"
%{make_build} %{make_build}
%install %install
%{make_install} %{make_install}
find $RPM_BUILD_ROOT -type f -name '*.bs' -size 0 -delete find %{buildroot} -type f -name '*.bs' -size 0 -delete
%{_fixperms} $RPM_BUILD_ROOT/* %{_fixperms} %{buildroot}/*
# Install tests
mkdir -p %{buildroot}%{_libexecdir}/%{name}
cp -a t %{buildroot}%{_libexecdir}/%{name}
cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF'
#!/bin/sh
cd %{_libexecdir}/%{name} && exec prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
EOF
chmod +x %{buildroot}%{_libexecdir}/%{name}/test
%check %check
%if !%{defined perl_bootstrap} %if !%{defined perl_bootstrap}
export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}')
make test make test
%endif %endif
@ -79,7 +109,59 @@ make test
%{perl_vendorarch}/Data* %{perl_vendorarch}/Data*
%{_mandir}/man3/* %{_mandir}/man3/*
%files tests
%{_libexecdir}/%{name}
%changelog %changelog
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.184-490
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jun 03 2022 Jitka Plesnikova <jplesnik@redhat.com> - 2.184-489
- Perl 5.36 re-rebuild of bootstrapped packages
* Mon May 30 2022 Jitka Plesnikova <jplesnik@redhat.com> - 2.184-488
- Increase release to favour standalone package
* Wed May 11 2022 Jitka Plesnikova <jplesnik@redhat.com> - 2.184-1
- Upgrade to 2.184 based on perl-5.35.11
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.183-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.183-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jul 08 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2.183-1
- 2.183 bump
* Thu Jul 01 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2.182-1
- 2.182 bump
* Mon May 31 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2.181-1
- 2.181 bump
* Mon May 24 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2.180-4
- Perl 5.34 re-rebuild of bootstrapped packages
* Mon May 24 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2.180-3
- Perl 5.34 re-rebuild of bootstrapped packages
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2.180-2
- Perl 5.34 rebuild
* Mon May 17 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2.180-1
- 2.180 bump
- Package tests
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.174-460
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Aug 20 2020 Petr Pisar <ppisar@redhat.com> - 2.174-459
- Fix a memory leak when a magic throws an exception
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.174-458
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jun 26 2020 Jitka Plesnikova <jplesnik@redhat.com> - 2.174-457 * Fri Jun 26 2020 Jitka Plesnikova <jplesnik@redhat.com> - 2.174-457
- Perl 5.32 re-rebuild of bootstrapped packages - Perl 5.32 re-rebuild of bootstrapped packages

5
plans/sanity.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Sanity tests
discover:
how: fmf
execute:
how: tmt

View File

@ -1 +1 @@
SHA512 (Data-Dumper-2.173.tar.gz) = a8d45fdce075bfe8752d423d535cc5279c012c733b0219884204119c9365e93c971858331e74c20df7beaa9b24ad54e1bf9eeb8d8bff53cf21fb88889d7602c2 SHA512 (Data-Dumper-2.183.tar.gz) = b78ff820b9e4a873c69a2097dbe2d7eaeccfab0af4d5d262281a500d42d75abc28943fe671a203a715e31568164da7b6d33825b92ebc92f99e8242efd1e7f65b

4
tests/upstream-tests.fmf Normal file
View File

@ -0,0 +1,4 @@
summary: Upstream tests
component: perl-Data-Dumper
require: perl-Data-Dumper-tests
test: /usr/libexec/perl-Data-Dumper/test