Strange error output from genlop: pi3 ~ # genlop -c \C is deprecated in regex; marked by <-- HERE in m/(\C <-- HERE )/ at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205. Currently merging 8 out of 11 [...] Same error in output from 'genlop -l' and 'genlop -h' Here is the output from the perl debugger, can't say I understand it: pi3 ~ # perl -d /usr/bin/genlop -h Loading DB routines from perl5db.pl version 1.49 Editor support available. Enter h or 'h h' for help, or 'man perldebug' for more help. \C is deprecated in regex; marked by <-- HERE in m/(\C <-- HERE )/ at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205. at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205. require URI/Escape.pm called at /usr/lib/perl5/vendor_perl/5.22.2/URI.pm line 22 URI::BEGIN() called at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205 eval {...} called at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205 require URI.pm called at (eval 13)[/usr/lib/perl5/vendor_perl/5.22.2/HTTP/Message.pm:20] line 2 eval 'require URI' called at /usr/lib/perl5/vendor_perl/5.22.2/HTTP/Message.pm line 20 require HTTP/Message.pm called at /usr/lib/perl5/5.22.2/base.pm line 99 eval {...} called at /usr/lib/perl5/5.22.2/base.pm line 99 base::import("base", "HTTP::Message") called at /usr/lib/perl5/vendor_perl/5.22.2/HTTP/Request.pm line 6 HTTP::Request::BEGIN() called at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205 eval {...} called at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205 require HTTP/Request.pm called at /usr/lib/perl5/vendor_perl/5.22.2/LWP/UserAgent.pm line 10 LWP::UserAgent::BEGIN() called at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205 eval {...} called at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205 require LWP/UserAgent.pm called at /usr/lib/perl5/vendor_perl/5.22.2/LWP/Simple.pm line 26 LWP::Simple::BEGIN() called at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205 eval {...} called at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205 require LWP/Simple.pm called at /usr/bin/genlop line 29 main::BEGIN() called at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205 eval {...} called at /usr/lib/perl5/vendor_perl/5.22.2/URI/Escape.pm line 205 main::(/usr/bin/genlop:32): my $version = "0.30.9";
And now (with perl-5.24.0 and stable dev-perl/URI-1.600.0-r1) it is completely broken: # genlop -l \C no longer supported in regex; marked by <-- HERE in m/(\ <-- HERE C)/ at /usr/lib64/perl5/vendor_perl/5.24.0/URI/Escape.pm line 205. Compilation failed in require at /usr/lib64/perl5/vendor_perl/5.24.0/URI.pm line 22. BEGIN failed--compilation aborted at /usr/lib64/perl5/vendor_perl/5.24.0/URI.pm line 22. Compilation failed in require at (eval 13) line 2. Compilation failed in require at /usr/lib64/perl5/5.24.0/base.pm line 100. ...propagated at /usr/lib64/perl5/5.24.0/base.pm line 109. BEGIN failed--compilation aborted at /usr/lib64/perl5/vendor_perl/5.24.0/HTTP/Request.pm line 6. Compilation failed in require at /usr/lib64/perl5/vendor_perl/5.24.0/LWP/UserAgent.pm line 10. BEGIN failed--compilation aborted at /usr/lib64/perl5/vendor_perl/5.24.0/LWP/UserAgent.pm line 10. Compilation failed in require at /usr/lib64/perl5/vendor_perl/5.24.0/LWP/Simple.pm line 26. BEGIN failed--compilation aborted at /usr/lib64/perl5/vendor_perl/5.24.0/LWP/Simple.pm line 26. Compilation failed in require at /usr/bin/genlop line 29. BEGIN failed--compilation aborted at /usr/bin/genlop line 29. After updating dev-perl/URI to 1.710.0 it is working again and also the deprecation warning is gone. So please update the DEP. Possibly block >=dev-lang/perl-5.24 in <dev-perl/URI-1.700 (or whichever combination started to warn/misbehave)?
Franz, thank you for the report.
Perl team, since I do not know perl at all, is this easily fixable in the code? Genlop is used by a large number of users. I will use whatever advice/fixes you can offer.
(In reply to Brian Dolbec from comment #3) > Perl team, since I do not know perl at all, is this easily fixable in the > code? > > Genlop is used by a large number of users. > > I will use whatever advice/fixes you can offer. As I see it this is not an issue genlop can fix. Old dev-perl/URI simply isn't compatible with newer perl, so IMHO there should be a block somewhere. It fails while requiring URI/Encode in this line: return join '', @URI::Escape::escapes{$_[0] =~ /(\C)/g}; Here is the "\C"...
Given the problem is in URI::Escape, and is fixed by URI.pm (In reply to Brian Dolbec from comment #3) > Perl team, since I do not know perl at all, is this easily fixable in the > code? The "Fix" is to simply either: a) Have some dependency graph from genlop pull URI >= 1.62 when Perl >= 5.24 b) Stabilize some version of URI >= 1.62 and nuke <= 1.62 "a" seems like the most "technically correct" option. But "b" is the most pragmatic option that would work with the least amount of effort. 1.62 : https://metacpan.org/changes/distribution/URI#L92-99
dev-perl/URI-1.710.0 stabilization: please do Target: all stable arches
Stable on alpha.
arm stable
commit 00f4a89466165176ffbaecf40471e067f1584aef Author: Andreas K. Hüttel <dilfridge@gentoo.org> Date: Sun Jul 10 15:13:40 2016 +0200 dev-perl/URI: Retroactively stable for remaining arches (ALLARCHES), bug 585422 Package-Manager: portage-2.3.0 dev-perl/URI/URI-1.710.0.ebuild | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)