Package: doxygen
Version: 1.8.11-1

Hello Matthias.

When doxygen calls "dot", it does not seem to check for errors.

As a result, nearly every package using doxygen for documentation is
implicitly breaking Policy 4.6, "Error trapping in makefiles".

Policy 4.6 says that whenever a Makefile finds an error, the build
process should stop to ensure that we don't generate the package
incorrectly.

As an example, consider the two attached build logs.

The first one is a normal run of "dpkg-buildpackage -A" for the "apt"
package in stretch (apt uses docygen).

The second one is the same, but replacing the "dot" command by
the "false" command before the build:

cp /bin/false /usr/bin/dot

You will see that the second build log is full of messages like this one:

error: Problems running dot: exit code=1, command='/usr/bin/dot'

but the build does not stop, and the final packages generated in the
second build do not contain a single "svg" file.

Both builds, however, have a line at the end saying:

Status: successful

which is precisely what Policy 4.6 was trying to avoid.

Of course, replacing the "dot" command by "false" is a little bit
extreme, but it completely shows the point that doxygen does not check
for errors. I first discovered this by building packages with low memory,
but there is not in fact a single reason why programs may fail, we should
trap for errors in the build processes whatever their reasons to fail
might be.


I'm not setting any particular severity for this bug, but IMHO a bug
which makes a lot of other packages to violate a "must" directive in
policy should probably be higher than normal. I leave it to you.

Thanks.

Attachment: apt_1.2.6_amd64-20160316-1645.A.gz
Description: application/gzip

Attachment: apt_1.2.6_amd64-20160316-1645.B.gz
Description: application/gzip

Reply via email to