Louis-Philippe Véronneau pushed to branch master at lintian / lintian
Commits:
-
9d882820
by Andrea Pappacoda at 2024-11-02T19:16:49+00:00
5 changed files:
- lib/Lintian/Check/Debian/Control/Field/RulesRequiresRoot.pm
- + t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/build-spec/debian/control.in
- + t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/build-spec/fill-values
- + t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/eval/desc
- + t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/eval/hints
Changes:
... | ... | @@ -38,6 +38,7 @@ sub source { |
38 | 38 | |
39 | 39 | my $control = $self->processable->debian_control;
|
40 | 40 | my $source_fields = $control->source_fields;
|
41 | + my $build_prerequisites= $self->processable->relation('Build-Depends-All');
|
|
41 | 42 | |
42 | 43 | my @r3_misspelled = grep { $_ ne 'Rules-Requires-Root' }
|
43 | 44 | grep { m{^ Rules? - Requires? - Roots? $}xi } $source_fields->names;
|
... | ... | @@ -57,14 +58,17 @@ sub source { |
57 | 58 | my $pointer = $control_item->pointer($position);
|
58 | 59 | |
59 | 60 | $self->pointed_hint('rules-do-not-require-root', $pointer)
|
60 | - if $source_fields->value('Rules-Requires-Root') eq 'no';
|
|
61 | + if $source_fields->value('Rules-Requires-Root') eq 'no'
|
|
62 | + || (!$source_fields->declares('Rules-Requires-Root')
|
|
63 | + && $build_prerequisites->satisfies('dpkg-build-api (>= 1)'));
|
|
61 | 64 | |
62 | 65 | $self->pointed_hint('rules-require-root-explicitly', $pointer)
|
63 | 66 | if $source_fields->declares('Rules-Requires-Root')
|
64 | 67 | && $source_fields->value('Rules-Requires-Root') ne 'no';
|
65 | 68 | |
66 | 69 | $self->pointed_hint('silent-on-rules-requiring-root', $pointer)
|
67 | - unless $source_fields->declares('Rules-Requires-Root');
|
|
70 | + unless $source_fields->declares('Rules-Requires-Root')
|
|
71 | + || $build_prerequisites->satisfies('dpkg-build-api (>= 1)');
|
|
68 | 72 | |
69 | 73 | if ( !$source_fields->declares('Rules-Requires-Root')
|
70 | 74 | || $source_fields->value('Rules-Requires-Root') eq 'no') {
|
1 | +Source: [% $source %]
|
|
2 | +Priority: [% $priority %]
|
|
3 | +Section: [% $section %]
|
|
4 | +Maintainer: [% $author %]
|
|
5 | +Standards-Version: [% $standards_version %]
|
|
6 | +Build-Depends: [% $build_depends %]
|
|
7 | +Homepage: [% $homepage %]
|
|
8 | + |
|
9 | +Package: [% $source %]
|
|
10 | +Architecture: [% $package_architecture %]
|
|
11 | +Pre-Depends: ${misc:Pre-Depends}
|
|
12 | +Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
13 | +Description: [% $description %]
|
|
14 | + This is a test package designed to exercise some feature or tag of
|
|
15 | + Lintian. It is part of the Lintian test suite and may do very odd
|
|
16 | + things. It should not be installed like a regular package. It may
|
|
17 | + be an empty package. |
1 | +Testname: rules-requires-root-missing-with-dpkg-build-api
|
|
2 | +Skeleton: upload-native
|
|
3 | +Description: d/control without explicit rules-requires-root but with dpkg-build-api
|
|
4 | +Extra-Build-Depends: dpkg-build-api (= 1) |
1 | +Testname: rules-requires-root-missing-with-dpkg-build-api
|
|
2 | +Check: debian/control/field/rules-requires-root
|
|
3 | +Test-Against: silent-on-rules-requiring-root
|
|
4 | +See-Also: Bug #1057176 |
1 | +rules-requires-root-missing-with-dpkg-build-api (source): rules-do-not-require-root [debian/control] |