Package: dgit
Version: 4.2
Severity: minor

Hello,

The change

    * When dgit builds a source package, such as in the 'build-source'
      subcommand, it now bypasses dpkg-buildpackage and invokes dpkg-source
      directly.  This avoids a _source.buildinfo file in the .changes, which
      doesn't make sense when using dgit.  See
      <https://lists.debian.org/debian-dpkg/2017/06/msg00005.html>.

causes a slight regression in the helpfulness of an error message in
some cases.

Steps to reproduce:

- package is 3.0 (quilt)
- git tree is patches-unapplied
- working tree does not have patches applied either
- package's clean target is such as to error out when invoked on a tree
  without its patches applied (which is reasonable, because dpkg-source
  --before-build always tries to apply all patches for a 3.0 (quilt)
  package)
- clean mode is dpkg-source or dpkg-source-d
- user invokes a dgit subcommand which calls build_source(), without
  supplying a --quilt= option

Before 4.2:

dgit output a hint that the tree might be patches-unapplied and you
forgot a --quilt= option.

This is because build_source() invoked dpkg-buildpackage which invoked
`dpkg-source --before-build` which applied all the patches, so the clean
target did not error out, dgit attempted quilt linearisation and
discovered that the tree might be patches-unapplied.

In 4.2:

dgit no longer reaches the stage of attempting quilt linearisation
because patches are not applied before attempting the clean, so the
clean target errors out and aborts the build/push, and the error message
is

    dgit: failed command: dpkg-buildpackage '-i(?:^|/)'\\'.git(?:/|$)' -I.git 
-T clean
    dgit: subprocess failed with error exit status 3

which is less helpful because the real problem is that you forgot
--quilt=.

-- 
Sean Whitton

Attachment: signature.asc
Description: PGP signature

Reply via email to