Bug#869150: /usr/bin/uscan: doesn't find the correct version for directory based version detection

Osamu Aoki osamu at debian.org
Fri Jul 28 14:14:01 UTC 2017


Hi,


On Thu, Jul 20, 2017 at 07:30:35PM -0400, Paul Gevers wrote:
...
> With the attached (and uploaded) watch file for festlex-cmu, uscan
> reports that there is a version 4 available, while the version it
> found is 2.4. Also running "uscan -v" before the changelog was updated
> showed the wrong behavior.

Good catch! Thanks.

> I don't know enough perl to know how to do it, but I think that the
> expression for the version in the next line isn't greedy (I found this
> on line 3293 in the version in stretch):
>         # uversionmanglesd version is '', make best effort to set it
>             $newfile_base =~
> m/^.+[-_]?(\d[\-+\.:\~\da-zA-Z]*)(?:\.tar\.(gz|bz2|xz)|\.zip)$/i;
>             $newversion = $1;
>                                    ^^^^^^^^^^^^^^^^^^^^^^^

Problem seems to be ".+" is greedy and eat "2."  So this must be
made non-greedy match.

> m/^(?:.+)[-_]?(\d[\-+\.:\~\da-zA-Z]*)(?:\.tar\.(gz|bz2|xz)|\.zip)$/i;
>             $newversion = $2;

Question is is there similar code around...

Let's see the log:
> uscan info: Newest upstream tarball version from the filenamemangled
> filename: 4

It get version wrong

> uscan info: Download filename (filenamemangled):
> festvox-rablpc16k_2.4.tar.gz

But download OK...

Osamu
> version=4
> # Note that a "new" version doesn't seem to imply new content.
> opts="filenamemangle=s#.*/festival/@ANY_VERSION@/festlex_CMU#@PACKAGE at _$1#" \
>   http://festvox.org/packed/festival/@ANY_VERSION@/ festlex_CMU at ARCHIVE_EXT@



More information about the devscripts-devel mailing list