Bug#924082: lintian: missing-build-dependency triggered for dh-sequence

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Bug#924082: lintian: missing-build-dependency triggered for dh-sequence

Jeremy Bicha-5
Source: lintian
Version: 2.10.0

debhelper 12 supports a new special dh-sequence- build-depends feature
[1]. For instance, a Build-Depends on dh-sequence-gnome (a virtual
package provided by gnome-pkg-tools) will automatically pass the
'--with gnome' option to dh without needing that to be specified in
debian/rules.

The lintian tags need to be updated for this. For instance, here's the
lintian errors I got with totem 3.32.0-1 targeted at experimental. The
final error "missing-build-dependency gnome-pkg-tools" triggered an
auto-reject.


E: totem source: missing-build-dependency-for-dh_-command dh_python3
=> dh-python
E: totem source: missing-build-dependency-for-dh_-command
dh_girepository => gobject-introspection
E: totem source: missing-build-dependency gnome-pkg-tools


So if you find the dh_python3 helper is being used, a Build-Depends on
dh-sequence-python3 should satisfy the requirement.

If you can, I'm requesting that this issue be fixed for Buster since a
growing number of packages will be using dh-sequence.

[1] https://manpages.debian.org/unstable/dh#OPTIONS

Thanks,
Jeremy Bicha

Reply | Threaded
Open this post in threaded view
|

Bug#924082: more dh-sequences

Jeremy Bicha-5
On Sat, Mar 9, 2019 at 9:27 AM Chris Lamb <[hidden email]> wrote:
> https://salsa.debian.org/lintian/lintian/commit/f8887189f6bafcf799889b271ce30e8cd7311c03
>
> ------------------------------------------------------------------------
> Support dh-sequence-{gir,gnome,python3} virtual packages as satisfying various build-dependencies. (Closes: #924082)
> ------------------------------------------------------------------------

We can grep through the Packages list to find more dh-sequence provides.
dh-python also provides dh-sequence-pypy and dh-sequence-python2
cli-common-dev provides dh-sequence-cli
debhelper provides dh-sequence-dwz, dh-sequence-installinitramfs,
dh-sequence-systemd
libdbi-perl provides dh-sequence-perl-dbi
libimager-perl provides dh-sequence-perl-imager
scour provides dh-sequence-scour

Thanks,
Jeremy Bicha

Reply | Threaded
Open this post in threaded view
|

Bug#924082: more dh-sequences

Chris Lamb -2
Hi Jeremy,

> We can grep through the Packages list to find more dh-sequence provides.

Thanks:

  https://salsa.debian.org/lintian/lintian/commit/34b939afb51b637f4d7708c8c3edcc1163f862d5

:)


Regards,

--
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      [hidden email] 🍥 chris-lamb.co.uk
       `-

Reply | Threaded
Open this post in threaded view
|

Bug#924082: more dh-sequences

Chris Lamb -2
Chris Lamb wrote:

> > We can grep through the Packages list to find more dh-sequence provides.
[..]
> https://salsa.debian.org/lintian/lintian/commit/34b939afb51b637f4d7708c8c3edcc1163f862d5

WIP patch for doing this automatically in private/refresh-debhelper-data
is:

diff --git a/private/refresh-debhelper-data b/private/refresh-debhelper-data
index 89df2810b..b19458fdf 100755
--- a/private/refresh-debhelper-data
+++ b/private/refresh-debhelper-data
@@ -124,6 +124,9 @@ else
 
     cd "$workdir"
     wget dists/sid/main/Contents-i386.gz
+    wget dists/sid/main/binary-i386/Packages.gz
+    gunzip Packages.gz
+
     zgrep -E "$dh_regex" Contents-i386.gz > dh_entries
     cat dh_entries \
         | perl -n -w -E 's#'"$dh_command_perl_regex"'#$1=$2# and print' \
@@ -133,11 +136,20 @@ else
         | perl -n -w -E 's#'"$dh_addon_perl_regex"'#$1=$2# and print' \
         | sed 's/=debhelper$/=debhelper | debhelper-compat/' \
         > dh_addons
+    cat dh_entries \
+        | perl -n -w -E 's#'"$dh_addon_perl_regex"'#$2# and print' \
+        | while read X; do
+            printf '%s=' $X; grep-dctrl -w -P -n $X -s Provides Packages \
+            | perl -nle 'print join ",", m/dh-sequence-(\w+)/g'; \
+            echo; \
+          done \
+        | grep -E '=.' \
+        | sort -u > dh_sequences
     cat dh_commands \
         | cut -d '|' -f 1 | sed 's/\s*$//' \
         | cut -d '=' -f 2 | sort -u > dh_packages
 
-    for f in commands packages; do
+    for f in commands packages sequences; do
         rf="$lintian_data/debhelper/dh_$f"
         [ ! -f "$rf" ] ||
             mv "$rf" "${rf}.old"
@@ -151,8 +163,6 @@ else
         create_data_file "$rf" < "dh_$f"
     done
 
-    wget dists/sid/main/binary-i386/Packages.gz
-    gunzip Packages.gz
     for package in $(cat dh_packages); do
         fn="$(grep-dctrl -n -P -X "$package" -sFilename Packages)"
         wget "$fn"

(This will need corresponding code in debhelper.pm to check this new
data file too, of course.)


Regards,

--
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      [hidden email] 🍥 chris-lamb.co.uk
       `-