Louis-Philippe Véronneau pushed to branch master at lintian / lintian


Commits:
9d882820 by Andrea Pappacoda at 2024-11-02T19:16:49+00:00
Do not raise silent-on-rules-requiring-root if dpkg-build-api is v1 or newer

In such case, also raise the rules-do-not-require-root classification
tag.

Closes: #1057176

Also see <https://bugs.debian.org/1057238> for additional context.

- - - - -


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:

=====================================
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;
@@ -57,14 +58,17 @@ sub source {
     my $pointer = $control_item->pointer($position);
 
     $self->pointed_hint('rules-do-not-require-root', $pointer)
-      if $source_fields->value('Rules-Requires-Root') eq 'no';
+      if $source_fields->value('Rules-Requires-Root') eq 'no'
+      || (!$source_fields->declares('Rules-Requires-Root')
+        && $build_prerequisites->satisfies('dpkg-build-api (>= 1)'));
 
     $self->pointed_hint('rules-require-root-explicitly', $pointer)
       if $source_fields->declares('Rules-Requires-Root')
       && $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') {


=====================================
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.


=====================================
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)


=====================================
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


=====================================
t/recipes/checks/debian/control/field/rules-requires-root/rules-requires-root-missing-with-dpkg-build-api/eval/hints
=====================================
@@ -0,0 +1 @@
+rules-requires-root-missing-with-dpkg-build-api (source): 
rules-do-not-require-root [debian/control]



View it on GitLab: 
https://salsa.debian.org/lintian/lintian/-/commit/9d882820b4f19a2753a3d035fbd41868e83ad716

-- 
View it on GitLab: 
https://salsa.debian.org/lintian/lintian/-/commit/9d882820b4f19a2753a3d035fbd41868e83ad716
You're receiving this email because of your account on salsa.debian.org.


Reply via email to