Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.bugs.dist > #1285707
| From | Thomas Dickey <dickey@invisible-island.net> |
|---|---|
| Newsgroups | linux.debian.bugs.dist |
| Subject | Bug#1122181: Bug#1130447: Acknowledgement (devscripts: uscan - upgrade to devscripts to 2.26.x breaks versionmangle) |
| Date | 2026-03-12 15:20 +0100 |
| Message-ID | <MxP3j-6UGW-5@gated-at.bofh.it> (permalink) |
| References | <MxP3j-6UGW-7@gated-at.bofh.it> <MxP3j-6UGW-9@gated-at.bofh.it> <LZHUB-1hXn-1@gated-at.bofh.it> <MxP3j-6UGW-9@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
[Multipart message — attachments visible in raw view] - view raw
Revisiting #1122181, I see that its proposed patch fixes the issue which
I reported in #1130447. But some analysis may help.
The proposed patch in #1122181 moves an assignment to the $version variable.
Just past the moved assignment, the Http.pm script has this chunk:
$match = '';
if (defined $self->shared->{download_version}) {
if ($version eq $self->shared->{download_version}) {
$match = "matched with the download version";
}
}
my $priority = $mangled_version . '-' . get_priority($href);
return [$priority, $mangled_version, $href, $match, $version];
That is, $version becomes $_[4], and $match becomes $_[3]
But xtp.pm has this:
if (defined $watchSource->shared->{download_version}
and not $watchSource->versionmode eq 'ignore') {
# extract ones which has $match in the above loop defined
my @vfiles = grep { $$_[3] } @files;
if (@vfiles) {
That $$_[3] was carried over from 2015, when it replaced $$_[2].
The return statement with $version assigned to position 4 last changed
in August 2025, for commit 628a3507a8d278f55e4a5991f9de8b14c687a4f1,
which says
uscan: match unmangled versions against --download-version
with this chunk
@@ -497,12 +500,12 @@ sub parse_href {
}
$match = '';
if (defined $self->shared->{download_version}) {
- if ($mangled_version eq $self->shared->{download_version}) {
+ if ($version eq $self->shared->{download_version}) {
$match = "matched with the download version";
}
}
my $priority = $mangled_version . '-' . get_priority($href);
- return [$priority, $mangled_version, $href, $match];
+ return [$priority, $mangled_version, $href, $match, $version];
}
1;
Looking through the diffs (I may have missed one), the $match variable
has for a long time mapped to that $_[3] used in the grep command.
If that $$_[3] were changed to $$_[4], then the grep would use $version.
That (like my initial suggestion) would make the uscan succeed for my
configuration.
However, the $match variable itself will match @files because of these
chunks in Http.pm:
$match = '';
if (defined $download_version
and $mangled_version eq $download_version) {
$match = "matched with the download version";
}
and
push @hrefs, [$mangled_version, $href, $match];
which show up in a verbose log ($match becomes $$file[3]):
if (@files) {
@files = Devscripts::Versort::versort(@files);
my $msg
= "Found the following matching files on the web page (newest first):>
foreach my $file (@files) {
$msg .= " $$file[2] ($$file[1]) index=$$file[0] $$file[3]\n";
}
uscan_verbose $msg;
}
Given all of that, I'll close #1130447
--
Thomas E. Dickey <dickey@invisible-island.net>
https://invisible-island.net
Back to linux.debian.bugs.dist | Previous | Next | Find similar | Unroll thread
Bug#1122181: Bug#1130447: Acknowledgement (devscripts: uscan - upgrade to devscripts to 2.26.x breaks versionmangle) Thomas Dickey <dickey@invisible-island.net> - 2026-03-12 15:20 +0100
csiph-web