Package: grfcodec
Version: 6.0.6-2
Severity: serious
Justification: policy 4.6
Tags: upstream

grfcodec can make the build loop indefinitely. The attached bad.patch
demonstrates the behaviour. The problem seems to be
https://sources.debian.org/src/grfcodec/6.0.6-2/Makefile/#L216:

|       $(_C)objs/$(ENDIAN_CHECK) $(ENDIAN_PARAMS) > src/endian.h || rm 
src/endian.h

If running $(ENDIAN_CHECK) fails (which is what bad.patch does), then
src/endian.h is removed, but this is counted as success. For some reason
make restarts compiling from scratch in that case and builds ad
infinitum. I aborted it after it tried building each file 18000 times.

This bug breaks Debian QA infrastructure. To paper over the bug, you
could use the following line:

|       $(_C)objs/$(ENDIAN_CHECK) $(ENDIAN_PARAMS) > src/endian.h || { rm 
src/endian.h; exit 1; }

Thus making the command fail and make aborts. In essence, the failing
behaviour is not aborting the build when a failure happens. This is
prohibited by Debian policy section 4.6 and proved fatal this time
around.

Helmut

Reply via email to