Control: reassign -1 libregexp-wildcards-perl 1.05-3 Control: retitle -1 libregexp-wildcards-perl: Does not escape backslash before fullstop, but elsewhere Control: affects -1 lintian Control: tag -1 upstream
Hi Eriberto, Joao Eriberto Mota Filho wrote: > Package: lintian > Version: 2.116.2 […] > After this change[2], lintian said me: > > X: obs-downstream-keyer source: prefer-uscan-symlink filenamemangle > s/.*muted..([\d\.]+)..span./@PACKAGE@-$1\.tar\.gz/ [debian/watch:19] > > After I make an override, litian said me: > > W: obs-downstream-keyer source: mismatched-override prefer-uscan-symlink > filenamemangle s/.*muted..([\d\.]+)..span./@PACKAGE@-$1\.tar\.gz/ > [debian/watch:19] [debian/source/lintian-overrides:4] > X: obs-downstream-keyer source: prefer-uscan-symlink filenamemangle > s/.*muted..([\d\.]+)..span./@PACKAGE@-$1\.tar\.gz/ [debian/watch:19] Can reproduce if I copy the emitted tag literally into debian/source/lintian-overrides although it should work as override: prefer-uscan-symlink filenamemangle s/.*muted..([\d\.]+)..span./@PACKAGE@-$1\.tar\.gz/ [debian/watch:19] With a bit of debug code (I added "die $re if $glob =~ /file/;" into lib/Lintian/Utils.pm around line 404) it shows me that the override was converted into this regular expression: filenamemangle s\/\..*muted\.\.\(\[\\d\.\]\+\)\.\.span\.\/\@PACKAGE\@\-\$1\.tar\.gz\/ \[debian\/watch\:19\] Looks as expected to me on a first glance, but actually all occurences of "\." are not properly converted to "\\\." while "\d" is properly converted to "\\d". I can also reproduce with this minimal reproducer: $ perl -MRegexp::Wildcards -E 'my $rw = Regexp::Wildcards->new(type => "jokers"); say $rw->convert(q{\.\d})' \.\\d So this actually seems to be a bug in libregexp-wildcards-perl. Hence reassigning. > Consequently, is not possible to make an override for > prefer-uscan-symlink filenamemangle. Sure it is, just replace all the ugly stuff with an asterisk or omit all parameters after the tag name. All these overrides work for me: prefer-uscan-symlink filenamemangle s/*/ [debian/watch:19] prefer-uscan-symlink filenamemangle * [debian/watch:19] prefer-uscan-symlink filenamemangle * prefer-uscan-symlink > I think that lintian is interpreting my REGEX. Yes and no. It interprets only "*" and "?" and these have the same meaning as with shell wildcards. It's actually the "jokers" mode of the Perl module Regexp::Wildcards. Regards, Axel -- ,''`. | Axel Beckert <a...@debian.org>, https://people.debian.org/~abe/ : :' : | Debian Developer, ftp.ch.debian.org Admin `. `' | 4096R: 2517 B724 C5F6 CA99 5329 6E61 2FF9 CD59 6126 16B5 `- | 1024D: F067 EA27 26B9 C3FC 1486 202E C09E 1D89 9593 0EDE