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 [cjwat...@ubuntu.com]