Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 600062 - <dev-perl/MP3-Tag-1.140.0 broken on perl 5.26, "Unescaped left brace in regex is deprecated"
Summary: <dev-perl/MP3-Tag-1.140.0 broken on perl 5.26, "Unescaped left brace in regex...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on: 617106
Blocks: perl-5.26
  Show dependency tree
 
Reported: 2016-11-17 01:54 UTC by Phil Stracchino (Unix Ronin)
Modified: 2017-05-31 03:49 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch to make Tag.pm Perl 5.22 clean (perl-5.22-deprecated-bracket.patch,600 bytes, patch)
2016-11-17 01:54 UTC, Phil Stracchino (Unix Ronin)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Phil Stracchino (Unix Ronin) 2016-11-17 01:54:54 UTC
Created attachment 453596 [details, diff]
Patch to make Tag.pm Perl 5.22 clean

What should have been dev-perl/MP3-Tag-1.13.0 is incorrectly tagged as dev-perl/MP3-Tag-1.130.0.  This likewise applies to dev-perl/MP3-Tag-1.130.0-r1 which should be dev-perl/MP3-Tag-1.13.0-r1.


Additionally, this version is not Perl 5.22 clean, resulting in the following warning:

Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/(\\%(?:\\=)?(\w|\\{ <-- HERE (?:\w|\\[^\w\\{}]|\\\\\\[\\{}])*\\}|\\\W))/ at /usr/lib64/perl5/vendor_perl/5.22.2/MP3/Tag.pm line 2611.

This has an extremely simple fix — two additional backslashes in one line.  (See attached patch.)
Comment 1 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2016-11-17 02:03:02 UTC
The version isn't incorrect.

Gentoo has a version normalisation scheme because Perl's versioning scheme(s) are not compatible with Gentoo version scheme semantics, so we have a transformation that we apply to all packages to provide a consistent equivalent.

See dev-perl/Gentoo-PerlMod-Version

Under this scheme, upstream version "1.13" becomes "1.130.0"  In Gentoo.

/usr/bin/gentoo-perlmod-version.pl 1.13
1.13 => 1.130.0

This is because upstream "1.13" means =~ "1.130000000" 

Where as in gentoo, 1.13 means more like =~ 1.000000013 , so a 1:1 mapping doesn't work.

Will look into the escaping issue.
Comment 2 Phil Stracchino (Unix Ronin) 2016-11-17 02:14:24 UTC
OK, makes sense to me.  I guess I should patch the version number on my own modified version then (which adds the WinAmp 5.6 additional id3 genres).
Comment 3 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2016-11-17 03:00:38 UTC
It looks like the unescaped brace problem is fixed in 1.14, so its probably simpler if I just version bump it.
Comment 4 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2016-11-17 03:27:38 UTC
Bumped to 1.140.0, hopefully this is satisfactory.

Thanks.


commit bb0259e5f7f99a42b4d9b5a4688af9133b3e23bd
Author: Kent Fredric <kentnl@gentoo.org>
Date:   Thu Nov 17 16:23:10 2016 +1300

    dev-perl/MP3-Tag: Bump to version 1.140.0 re bug #600062
    
    - EAPI6
    - Add USE="examples"
    
    Upstream:
    - Fixed warnings on Perl 5.22+
    - New method have_one_of_frame
    - New methods *_have() for all basic types like "title" etc
    - New tunable ampersand_joiner
    - New method _auto_field_from
    - Fix _parse_rex_microinterpolate not updateing $ecount with %%
    - Fix some %-escapes not being matched
    - More careful ID3v2 frame name parsing
Comment 5 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2016-11-17 03:30:45 UTC
Oh, and if you think it would be useful, we could consider adding those additional id3 genres gentoo side, or they could be upstreamed. Just depends on what you're doing =)
Comment 6 Phil Stracchino (Unix Ronin) 2016-11-17 03:53:06 UTC
I was thinking of bumping my own to 1.14.0, so we're on the same page there.  :)

I think I've tried submitting the genres patch upstream and ...  I don't remember whether I got no response or it was rejected.  I know I've tried submitting a patch to do it in Gentoo and it was rejected.


If the genres patch is adopted by Gentoo, it needs to be implemented both in dev-perl/MP3-Tag and in dev-perl/MP3-Info (and naturally I have patches for both).  I don't know how much call for it there is, though.  I patched the modules primarily for the use of my own MP3 jukebox app, media-sound/perljammer, which I wrote as a replacement for DigitalDJ when Mike Oliphant abandoned it, during the course of patching media-sound/grip to support the WinAmp 5.6 genre extensions.  (Yes, I have WinAmp 5.6 genre patches for Grip as well.)  Grip and DigitalDJ were designed to work together, and PerlJammer fills DigitalDJ's slot in that team.
Comment 7 Phil Stracchino (Unix Ronin) 2016-11-17 16:52:17 UTC
By the way, I've just verified that my winamp56-genres patch applies cleanly against MP3::Tag 1.14.  Let me know if you'd like to take a look at the patch set.
Comment 8 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2017-04-30 13:37:45 UTC
Just reopening this for tracking cleanup/stabilization.
Comment 9 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2017-05-31 03:49:41 UTC
commit:  0b7aca00f57c90b6b5e05bb55ecc4cb75b23ec63
author:  2017-05-31 15:48:43 +1200 Kent Fredric <kentnl@gentoo.org>
commit:  2017-05-31 15:49:08 +1200 Kent Fredric <kentnl@gentoo.org>
gpg-key: E854324B1366A820

    dev-perl/MP3-Tag: Cleanup old re bug #600062

    Remove versions broken by unescaped { deprecation in 5.26
    
    Package-Manager: Portage-2.3.5, Repoman-2.3.2


 dev-perl/MP3-Tag/MP3-Tag-1.130.0-r1.ebuild | 21 -----
 dev-perl/MP3-Tag/Manifest                  |  1 -
 2 files changed, 22 deletions(-)