Axel Beckert pushed to branch master at lintian / lintian
Commits:
9266486e by Luca Boccassi at 2024-05-06T01:57:46+01:00
wrong-path-for-interpreter: allow aliased locations
merged-usr is mandatory in Debian since Bookworm (and much longer ago
in Ubuntu), so /usr/bin/bash is a valid path, as is /bin/python3.
Detect and ignore these instances.
Closes: #1051338
- - - - -
2 changed files:
- lib/Lintian/Check/Scripts.pm
- t/recipes/checks/scripts/scripts-control-interpreters/eval/hints
Changes:
=====================================
lib/Lintian/Check/Scripts.pm
=====================================
@@ -47,6 +47,7 @@ const my $NOT_EQUAL => q{!=};
const my $BAD_MAINTAINER_COMMAND_FIELDS => 5;
const my $UNVERSIONED_INTERPRETER_FIELDS => 2;
const my $VERSIONED_INTERPRETER_FIELDS => 5;
+const my $USR_PREFIX_LENGTH => 4;
use Moo;
use namespace::clean;
@@ -692,10 +693,17 @@ sub visit_control_files {
'incorrect-path-for-interpreter'
: 'wrong-path-for-interpreter';
+# Debian is now mandatory usr-merged, so /bin/sh and /usr/bin/sh are both
acceptable
+ if ($expected =~ '^(/bin/|/sbin/)') {
+ $expected = '(?:/usr)?' . $expected;
+ } elsif ($expected =~ '^/usr(/bin/|/sbin/)') {
+ $expected = '(?:/usr)?' . substr($expected, $USR_PREFIX_LENGTH);
+ }
+
$self->pointed_hint(
$tag_name, $item->pointer, $interpreter,
$NOT_EQUAL, $expected
- )unless $interpreter eq $expected;
+ )unless $interpreter =~ $expected;
} elsif ($item->name eq 'config') {
$self->pointed_hint('forbidden-config-interpreter',
@@ -716,10 +724,17 @@ sub visit_control_files {
'incorrect-path-for-interpreter'
: 'wrong-path-for-interpreter';
+# Debian is now mandatory usr-merged, so /bin/sh and /usr/bin/sh are both
acceptable
+ if ($expected =~ '^(/bin/|/sbin/)') {
+ $expected = '(?:/usr)?' . $expected;
+ } elsif ($expected =~ '^/usr(/bin/|/sbin/)') {
+ $expected = '(?:/usr)?' . substr($expected, $USR_PREFIX_LENGTH);
+ }
+
$self->pointed_hint(
$tag_name, $item->pointer, $interpreter,
$NOT_EQUAL, $expected
- )unless $interpreter eq $expected;
+ )unless $interpreter =~ $expected;
$self->pointed_hint('unusual-control-interpreter', $item->pointer,
$interpreter);
=====================================
t/recipes/checks/scripts/scripts-control-interpreters/eval/hints
=====================================
@@ -9,8 +9,6 @@ scripts-control-interpreters-prepython (binary):
unusual-control-interpreter /us
scripts-control-interpreters-prepython (binary): unusual-control-interpreter
/usr/bin/python3 [postinst]
scripts-control-interpreters-prepython (binary): maintainer-script-interpreter
/usr/bin/python3 [preinst]
scripts-control-interpreters-prepython (binary): maintainer-script-interpreter
/usr/bin/python3 [postinst]
-scripts-control-interpreters-paths (binary): wrong-path-for-interpreter
/usr/bin/bash != /bin/bash [postinst]
-scripts-control-interpreters-paths (binary): wrong-path-for-interpreter
/bin/python3 != /usr/bin/python3 [prerm]
scripts-control-interpreters-paths (binary): unusual-control-interpreter
/bin/python3 [prerm]
scripts-control-interpreters-paths (binary): maintainer-script-interpreter
/usr/local/bin/bash [preinst]
scripts-control-interpreters-paths (binary): maintainer-script-interpreter
/usr/bin/bash [postinst]
View it on GitLab:
https://salsa.debian.org/lintian/lintian/-/commit/9266486e228fa9dcc20e6500f909c7b3c07b93b0
--
View it on GitLab:
https://salsa.debian.org/lintian/lintian/-/commit/9266486e228fa9dcc20e6500f909c7b3c07b93b0
You're receiving this email because of your account on salsa.debian.org.