[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: debhelper upstream should correct the perl from "use v5.24;" into "use v5.28;".



On Sun, 2021-05-30 at 10:13 +0200, Tomas Pospisek wrote:
> Hi Sérgio,
> 
> On 27.05.21 13:14, Sérgio Basto wrote:
> > On Wed, 2021-05-26 at 20:05 +0100, Sérgio Basto wrote:
> > > Hi,
> > > debhelper-devel ML doesn't exist anymore, please let me know if I
> > > should report this in other place .
> > > 
> > > I can't build debhelper on Centos epel 8, which have Perl 5.26.3
> > > 
> > 
> > I forgot to mention from changelog of debhelper-13.1 "Dh_Lib.pm:
> > Require perl v5.24 (available in Debian oldstable) to enable more
> > modern features. "
> > But seems this is not correct, it needs Perl 5.28.0
> > 
> > > fedpkg clone debhelper
> > > cd debhelper
> > > fedpkg srpm && mock -r epel-8-x86_64  --no-clean --rebuild
> > > debhelper-
> > > 13.3.4-1.fc35.src.rpm
> > > 
> > > and in epel8 build ends with
> > > "Initialization of state variables in list context currently
> > > forbidden
> > > at /builddir/build/BUILD/debhelper-
> > > 13.3.4/lib/Debian/Debhelper/Dh_Lib.pm line 2021, near");" "
> > > 
> > > Petr wrote :
> > > perl has a "splain" tool which explains the compiler errors and
> > > warnings:
> > > 
> > > $ splain
> > > /usr/bin/splain: Reading from STDIN
> > > Initialization of state variables in list context currently
> > > forbidden
> > > at /home/test/fedora/debhelper/debhelper-
> > > 13.3.4/lib/Debian/Debhelper/Dh_Lib.pm line 2021, near ");"
> > > Initialization of state variables in list context currently
> > > forbidden
> > > at
> > >          /home/test/fedora/debhelper/debhelper-
> > > 13.3.4/lib/Debian/Debhelper/Dh_Lib.pm line 2021, near ");" (#1)
> > >      (F) state only permits initializing a single scalar
> > > variable, in
> > > scalar
> > >      context.  So state $a = 42 is allowed, but not state ($a) =
> > > 42.  To
> > > apply
> > >      state semantics to a hash or array, store a hash or array
> > > reference
> > > in a
> > >      scalar variable.
> > > 
> > > What do we have at the line 2021?:
> > > 
> > >          state %rrr = map { $_ => 1 } split(' ', $rrr_env);
> > > 
> > > That's it. perl 5.26.3 does not support "state" declaration for
> > > hashes
> > > (%err).
> > > Here is a one-line reproducer:
> > > 
> > > $ perl -e 'use v5.24; sub foo {state %rrr = map { $_ => 1 }
> > > split(q{ },
> > > q{});}'
> > > Initialization of state variables in list context currently
> > > forbidden
> > > at -e line 1, near ");"
> > > Execution of -e aborted due to compilation errors.
> > > 
> > > Which can be reduced to:
> > > 
> > > $ perl -e 'use v5.24; state %rrr = ();'
> > > Initialization of state variables in list context currently
> > > forbidden
> > > at -e line 1, near ");"
> > > Execution of -e aborted due to compilation errors.
> > > 
> > > Please note that the "use v5.24;" statement is taken from
> > > debhelper
> > > code.
> > > It's obviously an upstream bug. The code is not valid syntax for
> > > perl
> > > 5.24.
> > > 
> > > The state support for non-scalar types was implemented in Perl
> > > 5.28.0
> > > (see
> > > "perldoc perl5280delta" command output):
> > > 
> > >    Initialisation of aggregate state variables
> > >      A persistent lexical array or hash variable can now be
> > > initialized,
> > > by
> > >      an expression such as "state @a = qw(x y z)". Initialization
> > > of a
> > > list
> > >      of persistent lexical variables is still not possible.
> > > 
> > > You should reach out debhelper upstream to correct the "use
> > > v5.24;"
> > > into "use
> > > v5.28;". Or you can ask them to refactor the code to support perl
> > > 5.26.
> 
> since - as it seems - you haven't received any feedback from the 
> debhelper developers/maintainers here on list, I suggest you use 
> Debian's bugtracker to report this problem.
> 
> You can find instructions on how to use the bugtracker here:
> 
>      https://www.debian.org/Bugs/Reporting.en.html
> 
> If you submit the bug by email then please set the pseudo-headers:
> 
>      Package: debhelper
>      Version: the version of debhelper you found the bug in
> 
> I'm not a debhelper maintainer/developer, but if you encounter
> problems 
> with the bug submission above, then please come back and ask on the
> list 
> and I (or maybe someone else) will try to help.
> 
> Thanks,
> *t

OK, I'm going leave this mailing list, I already have a lot of emails
to read :) , if any news, please CC to me . 

Thank you,
-- 
Sérgio M. B.


Reply to: