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

2021-05-31 Thread Sérgio Basto
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.



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

2021-05-30 Thread Tomas Pospisek

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



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

2021-05-27 Thread Sérgio Basto
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.
> 
> 
> 
> Thanks ,

-- 
Sérgio M. B.