Bug#1062775: lintian: watchfile v3 + DEB_EXT in dversionmangle leads to debian-watch-not-mangling-version
Package: lintian
Version: 2.116.3
Severity: normal
Tags: patch
Dear Maintainer,
Consider this watchfile:
version=3
# Search the version number on this page
https://download.qt.io/development_releases/qt/6.7/
# Then use downloadurlmangle to transform it to the URL to the archive.
#
# We don't use repacksuffix=+ds because in salsa-ci we want to have the +ds
suffix, even if we use --no-exclusion (ie even if we ignore Files-Excluded)
#
opts="uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/,
\
dversionmangle=s/@DEB_EXT@//, \
oversionmangle=s/$/\+ds.1/, \
downloadurlmangle=s/\/([\d\.]*(-((RC|rc|pre|dev|beta|alpha)\d*))?)\/$/\/$1\/
single\/qt-
everywhere-src-$1\.tar\.xz/, \
filenamemangle=s/.*\/([\d\.]*(-((RC|rc|pre|dev|beta|alpha)\d*))?)\/$/qt-
everywhere-src-$1\.tar\.xz/" \
https://download.qt.io/development_releases/qt/6\.(?:[\d\.]*)/ ([\d\.]*-.*)/
debian bash debian/scripts/repack.sh
Lintian will output:
debian-watch-not-mangling-version
opts="uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/,
dversionmangle=s/@DEB_EXT@//, oversionmangle=s/$/\+ds.1/,
downloadurlmangle=s/\/([\d\.]*(-((RC|rc|pre|dev|beta|alpha)\d*))?)\/$/\/$1\/
single\/qt-
everywhere-src-$1\.tar\.xz/,
filenamemangle=s/.*\/([\d\.]*(-((RC|rc|pre|dev|beta|alpha)\d*))?)\/$/qt-
everywhere-src-$1\.tar\.xz/"
https://download.qt.io/development_releases/qt/6\.(?:[\d\.]*)/ ([\d\.]*-.*)/
debian bash debian/scripts/repack.sh [debian/watch:12]
I suspect this is because lintian considers that @DEB_EXT@ is only valid for a
watchfile version >= 4 (see $DMANGLES_AUTOMATICALLY variable), but according
to
source code in uscan, it seems it requires version >= 2.
BTW, I noticed that:
- if I use version=4 with @DEB_EXT@, the lintian warning is gone
- if I use version=3 + dversionmangle=auto, the lintian warning is gone as
well.
But version=3 with @DEB_EXT@ triggers the warning.
I'm attaching a patch without being sure that it is the correct way to fix the
issue, but when it is applied lintian doesn't report a warning.
-- System Information:
Debian Release: 12.4
APT prefers stable-updates
APT policy: (991, 'stable-updates'), (991, 'stable-security'), (991,
'stable'), (990, 'proposed-updates'), (390, 'oldstable-security'), (390,
'oldstable'), (389, 'oldstable-updates'), (380, 'oldoldstable'), (379,
'oldoldstable-updates'), (370, 'oldoldstable'), (95, 'testing'), (94,
'unstable'), (93, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 6.1.0-17-amd64 (SMP w/4 CPU threads; PREEMPT)
Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8),
LANGUAGE=fr:en_US
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages lintian depends on:
ii binutils 2.40-2
ii bzip2 1.0.8-5+b1
ii diffstat 1.65-1
ii dpkg 1.21.22
ii dpkg-dev 1.21.22
ii file 1:5.44-3
ii gettext 0.21-12
ii gpg 2.2.40-1.1
ii intltool-debian 0.35.0+20060710.6
ii iso-codes 4.15.0-1
ii libapt-pkg-perl 0.1.40+b2
ii libarchive-zip-perl 1.68-1
ii libberkeleydb-perl 0.64-2+b1
ii libcapture-tiny-perl 0.48-2
ii libclass-xsaccessor-perl 1.19-4+b1
ii libclone-perl 0.46-1
ii libconfig-tiny-perl 2.28-2
ii libconst-fast-perl 0.014-2
ii libcpanel-json-xs-perl 4.35-1
ii libdata-dpath-perl 0.58-2
ii libdata-validate-domain-perl 0.10-1.1
ii libdata-validate-uri-perl 0.07-2
ii libdevel-size-perl 0.83-2+b1
pn libdigest-sha-perl <none>
ii libdpkg-perl 1.21.22
ii libemail-address-xs-perl 1.05-1+b1
ii libfile-basedir-perl 0.09-2
ii libfile-find-rule-perl 0.34-3
ii libfont-ttf-perl 1.06-2
ii libhtml-html5-entities-perl 0.004-3
ii libhtml-tokeparser-simple-perl 3.16-4
ii libio-interactive-perl 1.023-2
ii libipc-run3-perl 0.048-3
ii libjson-maybexs-perl 1.004004-1
ii liblist-compare-perl 0.55-2
ii liblist-someutils-perl 0.59-1
ii liblist-utilsby-perl 0.12-2
ii libmldbm-perl 2.05-4
ii libmoo-perl 2.005005-1
ii libmoox-aliases-perl 0.001006-2
ii libnamespace-clean-perl 0.27-2
ii libpath-tiny-perl 0.144-1
ii libperlio-gzip-perl 0.20-1+b1
ii libperlio-utf8-strict-perl 0.010-1
ii libproc-processtable-perl 0.634-1+b2
ii libregexp-wildcards-perl 1.05-3
ii libsereal-decoder-perl 5.003+ds-1
ii libsereal-encoder-perl 5.003+ds-1
ii libsort-versions-perl 1.62-3
ii libsyntax-keyword-try-perl 0.28-1
ii libterm-readkey-perl 2.38-2+b1
ii libtext-levenshteinxs-perl 0.03-5+b1
ii libtext-markdown-discount-perl 0.16-1
ii libtext-xslate-perl 3.5.9-1+b2
ii libtime-duration-perl 1.21-2
ii libtime-moment-perl 0.44-2+b1
ii libtimedate-perl 2.3300-2
ii libunicode-utf8-perl 0.62-2
ii liburi-perl 5.17-1
ii libwww-mechanize-perl 2.16-1
ii libwww-perl 6.68-1
ii libxml-libxml-perl 2.0207+dfsg+really+2.0134-1+b1
ii libyaml-libyaml-perl 0.86+ds-1
ii lzop 1.04-2
ii man-db 2.11.2-2
ii patchutils 0.4.2-1
ii perl [libencode-perl] 5.36.0-7+deb12u1
ii plzip [lzip-decompressor] 1.10-5
ii t1utils 1.41-4
ii unzip 6.0-28
ii xz-utils 5.4.1-0.2
lintian recommends no packages.
Versions of packages lintian suggests:
pn binutils-multiarch <none>
ii libtext-template-perl 1.61-1
-- no debconf information
--- a/usr/share/lintian/lib/Lintian/Check/Debian/Watch.pm
+++ b/usr/share/lintian/lib/Lintian/Check/Debian/Watch.pm
@@ -44,7 +44,7 @@
const my $URL_ACTION_FIELDS => 4;
const my $VERSION_ACTION_FIELDS => 3;
-const my $DMANGLES_AUTOMATICALLY => 4;
+const my $DMANGLES_AUTOMATICALLY => 2;
sub source {
my ($self) = @_;
Reply to: