Bug#846711: git-build-recipe: FTBFS: Tests failures

Colin Watson cjwatson at ubuntu.com
Tue Dec 6 10:39:44 UTC 2016


reassign 846711 devscripts 2.16.11
retitle 846711 debuild: no longer checks whether lintian exists before implicitly running it
affects 846711 git-build-recipe
thanks

On Sat, Dec 03, 2016 at 08:36:04AM +0100, Lucas Nussbaum wrote:
> During a rebuild of all packages in sid, your package failed to build on
> amd64.
> 
> Relevant part (hopefully):
> >   File "/<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/gitbuildrecipe/tests/test_blackbox.py", line 122, in run_recipe
> >     self.assertEqual(retcode, process.returncode)
> >   File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 350, in assertEqual
> >     self.assertThat(observed, matcher, message)
> >   File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 435, in assertThat
> >     raise mismatch_error
> > testtools.matchers._impl.MismatchError: 0 != 1

A full sample test failure (there are several similar ones) looks like
this:

  ======================================================================
  FAIL: gitbuildrecipe.tests.test_blackbox.BlackboxBuilderTests.test_cmd_dailydeb
  ----------------------------------------------------------------------
  testtools.testresult.real._StringException: stderr: {{{
  debuild: fatal error at line 1101:
  dpkg-buildpackage -rfakeroot -us -uc -i -I -S --check-command=lintian failed
  Traceback (most recent call last):
    File "/usr/lib/python3.5/runpy.py", line 193, in _run_module_as_main
      "__main__", mod_spec)
    File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
      exec(code, run_globals)
    File "/<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/gitbuildrecipe/main.py", line 185, in <module>
      sys.exit(main())
    File "/<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/gitbuildrecipe/main.py", line 175, in main
      working_directory, tgz_check=not args.allow_fallback_to_native)
    File "/<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/gitbuildrecipe/deb_util.py", line 175, in build_source_package
      subprocess.check_call(command, cwd=basedir)
    File "/usr/lib/python3.5/subprocess.py", line 271, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['/usr/bin/debuild', '--tgz-check', '-i', '-I', '-S', '-uc', '-us']' returned non-zero exit status 29
  }}}
  
  stdout: {{{
  dpkg-buildpackage -rfakeroot -us -uc -i -I -S --check-command=lintian
  dpkg-buildpackage: error: check-commmand 'lintian' not found
  }}}
  
  Traceback (most recent call last):
    File "/<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/gitbuildrecipe/tests/test_blackbox.py", line 140, in test_cmd_dailydeb
      out, err = self.run_recipe("--manifest manifest test.recipe working")
    File "/<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.5/build/gitbuildrecipe/tests/test_blackbox.py", line 122, in run_recipe
      self.assertEqual(retcode, process.returncode)
    File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 350, in assertEqual
      self.assertThat(observed, matcher, message)
    File "/usr/lib/python3/dist-packages/testtools/testcase.py", line 435, in assertThat
      raise mismatch_error
  testtools.matchers._impl.MismatchError: 0 != 1

git-build-recipe doesn't do anything particular to ask debuild to run
lintian here, and it doesn't expect or require a lintian check.  It used
to be that debuild would check whether lintian was in fact installed,
and not run it if it wasn't; indeed, its documentation still says "then
runs lintian on the .changes file created (assuming that lintian is
installed)", thereby claiming that that's still what it does.  But this
was broken in devscripts 58eb4a4a5e006bf9a2589da0ef2f36aa0d81ed8c when
changing debuild to use dpkg-buildpackage --check-command.

I don't want to pass an explicit "don't run lintian" option, because
git-build-recipe should probably have much the same behaviour as the
documented (but no longer implemented) behaviour of debuild: that is,
run lintian if it's installed, but don't worry about it if it isn't.

Please restore the check for whether lintian exists at least in the case
where it was not explicitly requested by command-line option or
configuration variable.

Thanks,

-- 
Colin Watson                                       [cjwatson at ubuntu.com]



More information about the devscripts-devel mailing list