Bug#961975: lintian: false positive copyright-without-copyright-notice when using Unicode U+00A9 COPYRIGHT SIGN
Package: lintian
Version: 2.78.0
Severity: normal
Steps to reproduce:
* apt-get source gnome-shell-extension-bluetooth-quick-connect=10-3
* apt-get download gnome-shell-extension-bluetooth-quick-connect=10-3
* lintian -Ii gnome-shell-extension-bluetooth-quick-connect_10-3.dsc
* lintian -Ii gnome-shell-extension-bluetooth-quick-connect_10-3_all.deb
Expected result:
* No warnings about the copyright file in either case (it's very simple, see
https://tracker.debian.org/media/packages/g/gnome-shell-extension-bluetooth-quick-connect/copyright-10-3)
Actual result:
* No warnings for the .dsc
* Warning for the .deb:
gnome-shell-extension-bluetooth-quick-connect: copyright-without-copyright-notice
In particular, I think this is a valid copyright notice:
"""
Files: *
Copyright:
© 2018 Bartosz Jaroszewski
License: GPL-2+
"""
Possibly the problem is that the regex looks for © as the two bytes of
its UTF-8 encoding, \302\251 (\xc2\xa9), rather than as a single Unicode
character U+00A9 (\x{00A9} or even \N{COPYRIGHT SIGN} in Perl-speak)?
If my admittedly hazy recollection of Perl Unicode semantics is correct,
the regex needs to contain \302\251 or \xc2\xa9 if the file is
interpreted as a byte sequence, but it needs to contain \x{00A9} or
\N{COPYRIGHT SIGN} if the file is interpreted as a Unicode codepoint
sequence. This does seem to work:
---------
diff --git a/checks/debian/copyright.pm b/checks/debian/copyright.pm
index 27435c3db..14db475f2 100644
--- a/checks/debian/copyright.pm
+++ b/checks/debian/copyright.pm
@@ -1208,7 +1208,7 @@ qr/GNU (?:Lesser|Library) General Public License|(?-i:\bLGPL\b)/i
if ($found && !$linked) {
$self->tag('copyright-without-copyright-notice')
unless $contents
- =~ /(?:Copyright|Copr\.|\302\251)(?:.*|[\(C\):\s]+)\b\d{4}\b
+ =~ /(?:Copyright|Copr\.|\x{00A9})(?:.*|[\(C\):\s]+)\b\d{4}\b
|\bpublic(?:\s+|-)domain\b/xi;
}
---------
-- System Information:
Debian Release: bullseye/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'stable-debug'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.6.0-2-amd64 (SMP w/2 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages lintian depends on:
ii binutils 2.34-8
ii bzip2 1.0.8-3
ii diffstat 1.63-1
ii dpkg 1.19.7
ii dpkg-dev 1.19.7
ii file 1:5.38-5
ii gettext 0.19.8.1-10
ii gpg 2.2.20-1
ii intltool-debian 0.35.0+20060710.5
ii libapt-pkg-perl 0.1.36+b3
ii libarchive-zip-perl 1.68-1
ii libcapture-tiny-perl 0.48-1
ii libclass-xsaccessor-perl 1.19-3+b4
ii libclone-perl 0.45-1
ii libconfig-tiny-perl 2.24-1
ii libcpanel-json-xs-perl 4.19-1
ii libdevel-size-perl 0.83-1+b1
ii libdpkg-perl 1.19.7
ii libemail-address-xs-perl 1.04-1+b2
ii libemail-valid-perl 1.202-1
ii libfile-basedir-perl 0.08-1
ii libfile-find-rule-perl 0.34-1
ii libfont-ttf-perl 1.06-1
ii libhtml-parser-perl 3.72-5
ii libio-async-loop-epoll-perl 0.20-1
ii libio-async-perl 0.75-1
ii libjson-maybexs-perl 1.004002-1
ii liblist-compare-perl 0.53-1
ii liblist-moreutils-perl 0.416-1+b5
ii liblist-utilsby-perl 0.11-1
ii libmoo-perl 2.004000-1
ii libmoox-aliases-perl 0.001006-1
ii libnamespace-clean-perl 0.27-1
ii libpath-tiny-perl 0.112-1
ii libsereal-decoder-perl 4.011+ds-1
ii libsereal-encoder-perl 4.011+ds-1
ii libtext-levenshtein-perl 0.13-1
ii libtimedate-perl 2.3300-1
ii libtry-tiny-perl 0.30-1
ii libtype-tiny-perl 1.010001-1
ii libunicode-utf8-perl 0.62-1+b1
ii liburi-perl 1.76-2
ii libxml-libxml-perl 2.0134+dfsg-2
ii libxml-writer-perl 0.625-1
ii libyaml-libyaml-perl 0.82+repack-1
ii man-db 2.9.1-1
ii patchutils 0.3.4-2+b1
ii perl [libdigest-sha-perl] 5.30.2-1
ii t1utils 1.41-4
ii xz-utils 5.2.4-1+b1
Versions of packages lintian recommends:
ii libperlio-gzip-perl 0.19-1+b6
Versions of packages lintian suggests:
ii binutils-multiarch 2.34-8
ii libtext-template-perl 1.58-1
-- no debconf information
Reply to: