Closes: #1057176 Also see <https://bugs.debian.org/1057238> for additional context. --- This revision adds tests and reformats with perltidy.
.../Debian/Control/Field/RulesRequiresRoot.pm | 4 +++- .../build-spec/debian/control.in | 17 +++++++++++++++++ .../build-spec/fill-values | 4 ++++ .../eval/desc | 4 ++++ .../eval/hints | 0 5 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/build-spec/debian/control.in create mode 100644 t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/build-spec/fill-values create mode 100644 t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/eval/desc create mode 100644 t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/eval/hints diff --git a/lib/Lintian/Check/Debian/Control/Field/RulesRequiresRoot.pm b/lib/Lintian/Check/Debian/Control/Field/RulesRequiresRoot.pm index b97a673b3..9d5d043a7 100644 --- a/lib/Lintian/Check/Debian/Control/Field/RulesRequiresRoot.pm +++ b/lib/Lintian/Check/Debian/Control/Field/RulesRequiresRoot.pm @@ -38,6 +38,7 @@ sub source { my $control = $self->processable->debian_control; my $source_fields = $control->source_fields; + my $build_prerequisites= $self->processable->relation('Build-Depends-All'); my @r3_misspelled = grep { $_ ne 'Rules-Requires-Root' } grep { m{^ Rules? - Requires? - Roots? $}xi } $source_fields->names; @@ -64,7 +65,8 @@ sub source { && $source_fields->value('Rules-Requires-Root') ne 'no'; $self->pointed_hint('silent-on-rules-requiring-root', $pointer) - unless $source_fields->declares('Rules-Requires-Root'); + unless $source_fields->declares('Rules-Requires-Root') + || $build_prerequisites->satisfies('dpkg-build-api (>= 1)'); if ( !$source_fields->declares('Rules-Requires-Root') || $source_fields->value('Rules-Requires-Root') eq 'no') { diff --git a/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/build-spec/debian/control.in b/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/build-spec/debian/control.in new file mode 100644 index 000000000..fb3b62f68 --- /dev/null +++ b/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/build-spec/debian/control.in @@ -0,0 +1,17 @@ +Source: [% $source %] +Priority: [% $priority %] +Section: [% $section %] +Maintainer: [% $author %] +Standards-Version: [% $standards_version %] +Build-Depends: [% $build_depends %] +Homepage: [% $homepage %] + +Package: [% $source %] +Architecture: [% $package_architecture %] +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: [% $description %] + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. It may + be an empty package. diff --git a/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/build-spec/fill-values b/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/build-spec/fill-values new file mode 100644 index 000000000..65be27a45 --- /dev/null +++ b/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/build-spec/fill-values @@ -0,0 +1,4 @@ +Testname: rules-requires-root-missing-with-dpkg-build-api +Skeleton: upload-native +Description: d/control without explicit rules-requires-root but with dpkg-build-api +Extra-Build-Depends: dpkg-build-api (= 1) diff --git a/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/eval/desc b/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/eval/desc new file mode 100644 index 000000000..12305298c --- /dev/null +++ b/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/eval/desc @@ -0,0 +1,4 @@ +Testname: rules-requires-root-missing-with-dpkg-build-api +Check: debian/control/field/rules-requires-root +Test-Against: silent-on-rules-requiring-root +See-Also: Bug #1057176 diff --git a/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/eval/hints b/t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/eval/hints new file mode 100644 index 000000000..e69de29bb -- 2.43.0