[Bug 1851334] New: perl-Marpa-XS-1.008000-27.fc33 FTBFS with Perl
5.32: Constants from lexical variables potentially modified elsewhere are no
longer permitted at
/builddir/build/BUILD/Marpa-XS-1.008000/blib/lib/Marpa/XS/Internal.pm line
93.
by bugzilla@redhat.com
https://bugzilla.redhat.com/show_bug.cgi?id=1851334
Bug ID: 1851334
Summary: perl-Marpa-XS-1.008000-27.fc33 FTBFS with Perl 5.32:
Constants from lexical variables potentially modified
elsewhere are no longer permitted at
/builddir/build/BUILD/Marpa-XS-1.008000/blib/lib/Marpa
/XS/Internal.pm line 93.
Product: Fedora
Version: rawhide
Status: NEW
Component: perl-Marpa-XS
Assignee: jplesnik(a)redhat.com
Reporter: ppisar(a)redhat.com
QA Contact: extras-qa(a)fedoraproject.org
CC: jplesnik(a)redhat.com, lkundrak(a)v3.sk,
perl-devel(a)lists.fedoraproject.org
Target Milestone: ---
Classification: Fedora
perl-Marpa-XS-1.008000-27.fc33 fails to build in Fedora 33 with Perl 5.32
because a test fails:
# Failed test 'use Marpa::XS;'
# at t/00-load.t line 27.
# Tried to use 'Marpa::XS'.
# Error: Constants from lexical variables potentially modified elsewhere
are no longer permitted at
/builddir/build/BUILD/Marpa-XS-1.008000/blib/lib/Marpa/XS/Internal.pm line 93.
# BEGIN failed--compilation aborted at
/builddir/build/BUILD/Marpa-XS-1.008000/blib/lib/Marpa/XS/Grammar.pm line 64.
# Compilation failed in require at
/builddir/build/BUILD/Marpa-XS-1.008000/blib/lib/Marpa/XS.pm line 101.
# Compilation failed in require at t/00-load.t line 27.
# BEGIN failed--compilation aborted at t/00-load.t line 27.
Bailout called. Further testing stopped: Could not load Marpa::XS
FAILED--Further testing stopped: Could not load Marpa::XS
That's because lib/Marpa/XS/Internal.pm does:
if ( $field !~ s/\A=//xms ) {
$offset++;
}
if ( $field =~ / \A ( [^=]* ) = ( [0-9+-]* ) \z/xms ) {
$field = $1;
$offset = $2 + 0;
}
Marpa::XS::exception("Unacceptable field name: $field")
if $field =~ /[^A-Z0-9_]/xms;
my $field_name = $prefix . $field;
→ *{$field_name} = sub () {$offset};
and this usage of $offset variable is forbidden since Perl 5.32. Splain
explanation:
$ perl -Mblib -e 'use Marpa::XS' 2>&1 | splain
Constants from lexical variables potentially modified elsewhere are no longer
permitted at
/home/test/fedora/perl-Marpa-XS/Marpa-XS-1.008000/blib/lib/Marpa/XS/Internal.pm
line 93 (#1)
(F) You wrote something like
my $var;
$sub = sub () { $var };
but $var is referenced elsewhere and could be modified after the sub
expression is evaluated. Either it is explicitly modified elsewhere
($var = 3) or it is passed to a subroutine or to an operator like
printf or map, which may or may not modify the variable.
Traditionally, Perl has captured the value of the variable at that
point and turned the subroutine into a constant eligible for inlining.
In those cases where the variable can be modified elsewhere, this
breaks the behavior of closures, in which the subroutine captures
the variable itself, rather than its value, so future changes to the
variable are reflected in the subroutine's return value.
This usage was deprecated, and as of Perl 5.32 is no longer allowed,
making it possible to change the behavior in the future.
If you intended for the subroutine to be eligible for inlining, then
make sure the variable is not referenced elsewhere, possibly by
copying it:
my $var2 = $var;
$sub = sub () { $var2 };
If you do want this subroutine to be a closure that reflects future
changes to the variable that it closes over, add an explicit return:
my $var;
$sub = sub () { return $var };
--
You are receiving this mail because:
You are on the CC list for the bug.
3 years, 11 months
pghmcfc pushed to perl-Test2-Plugin-NoWarnings (master). "Update to
0.09 (..more)"
by notifications@fedoraproject.org
Notification time stamped 2020-06-30 10:13:18 UTC
From 920eea38311d79976ebf0e87fff53dffbf0a5946 Mon Sep 17 00:00:00 2001
From: Paul Howarth <paul(a)city-fan.org>
Date: Jun 30 2020 10:12:45 +0000
Subject: Update to 0.09
- New upstream release 0.09
- Don't emit a failing test if there is a warning _after_ done_testing() is
called (based on GH#3)
---
diff --git a/perl-Test2-Plugin-NoWarnings.spec b/perl-Test2-Plugin-NoWarnings.spec
index e5685f8..1eb13a5 100644
--- a/perl-Test2-Plugin-NoWarnings.spec
+++ b/perl-Test2-Plugin-NoWarnings.spec
@@ -1,6 +1,6 @@
Name: perl-Test2-Plugin-NoWarnings
-Version: 0.08
-Release: 3%{?dist}
+Version: 0.09
+Release: 1%{?dist}
Summary: Fail if tests warn
License: Artistic 2.0
URL: https://metacpan.org/release/Test2-Plugin-NoWarnings
@@ -16,7 +16,7 @@ BuildRequires: perl(ExtUtils::MakeMaker) > 6.75
BuildRequires: perl(Carp)
BuildRequires: perl(parent)
BuildRequires: perl(strict)
-BuildRequires: perl(Test2) >= 1.302096
+BuildRequires: perl(Test2) >= 1.302167
BuildRequires: perl(Test2::API)
BuildRequires: perl(Test2::Event)
BuildRequires: perl(Test2::Util::HashBase)
@@ -63,6 +63,11 @@ make test
%{_mandir}/man3/Test2::Plugin::NoWarnings.3*
%changelog
+* Tue Jun 30 2020 Paul Howarth <paul(a)city-fan.org> - 0.09-1
+- Update to 0.09
+ - Don't emit a failing test if there is a warning _after_ done_testing() is
+ called (based on GH#3)
+
* Tue Jun 23 2020 Jitka Plesnikova <jplesnik(a)redhat.com> - 0.08-3
- Perl 5.32 rebuild
diff --git a/sources b/sources
index b0697fe..0cf7901 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Test2-Plugin-NoWarnings-0.08.tar.gz) = cf641f77b8466bbaf9d9fc166526853f64c9c66e4b1c415af521e81df76760aa3bde0634827d19c9e760c2b763c86e3923af0df83a4e2ddb4c28b8ebbc64eb63
+SHA512 (Test2-Plugin-NoWarnings-0.09.tar.gz) = 3b93d6c4522e913c4bc9d589b650f784327bed1a36a0dc18943dd2ea34654215333753cb532d5ffff6f0ef0af9ce0859e9744637cff89a1a1a5b936149f9b455
https://src.fedoraproject.org/rpms/perl-Test2-Plugin-NoWarnings/c/920eea3...
3 years, 11 months
[Bug 1655461] w3c-markup-validator-20.6.30 is available
by bugzilla@redhat.com
https://bugzilla.redhat.com/show_bug.cgi?id=1655461
--- Comment #17 from Upstream Release Monitoring <upstream-release-monitoring(a)fedoraproject.org> ---
The following Sources of the specfile are not valid URLs so we cannot
automatically build the new version for you. Please use URLs in your Source
declarations if possible.
- w3c-markup-validator-20.6.30.tar.xz
- w3c-markup-validator-prepare-tarball.sh
--
You are receiving this mail because:
You are on the CC list for the bug.
3 years, 11 months