Package: ascii2binary Version: 2.13-1 Severity: normal Tags: patch Hello,
ascii2binary FTBFS in Ubuntu maverick with the following error: ,----[ http://people.ubuntuwire.org/~lucas/ubuntu-nbs/32/ascii2binary_2.13-1_lubuntu32.buildlog ]- | In file included from //usr/include/stdlib.h:43, | from binary2ascii.c:27: | //usr/include/bits/waitstatus.h:80: error: duplicate member '__w_retcode' | //usr/include/bits/waitstatus.h:80: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:80: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:81: error: duplicate member '__w_coredump' | //usr/include/bits/waitstatus.h:81: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:81: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:81: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:82: error: duplicate member '__w_termsig' | //usr/include/bits/waitstatus.h:82: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:82: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:82: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:82: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:94: error: duplicate member '__w_stopsig' | //usr/include/bits/waitstatus.h:94: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:94: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:95: error: duplicate member '__w_stopval' | //usr/include/bits/waitstatus.h:95: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:95: error: duplicate member '({anonymous})' | //usr/include/bits/waitstatus.h:95: error: duplicate member '({anonymous})' `---- The problem is that upstream code contains an endian.h and the source code is compiled with -I. This combination causes that including stdlib.h pulls the wrong endian.h (the local one and not the system one) leading to the above error as the guarding #if constants aren't defined anymore. A solution is to rename the local endian.h so the correct header is included again. The attached patch renames endian.h to a2b_endian.h (the rename is not that good visible in the debdiff). (This is similar to bug #594826 in uni2ascii) Michael
--- ascii2binary-2.13.orig/Makefile.am +++ ascii2binary-2.13/Makefile.am @@ -2,7 +2,7 @@ dist_man_MANS = binary2ascii.1 ascii2binary.1 binary2ascii_SOURCES = binary2ascii.c binfmt.c MachineInfo.c endian.c exitcodes.c ascii2binary_SOURCES = ascii2binary.c GetWord.c MachineInfo.c endian.c exitcodes.c -noinst_HEADERS = exitcodes.h endian.h +noinst_HEADERS = exitcodes.h a2b_endian.h LOCALEDIR = /usr/local/share/ascii2binary/locale AM_CFLAGS=-std=gnu99 ACLOCAL_AMFLAGS = -I m4 only in patch2: unchanged: --- ascii2binary-2.13.orig/MachineInfo.c +++ ascii2binary-2.13/MachineInfo.c @@ -8,7 +8,7 @@ #else #define gettext(x) (x) #endif -#include "endian.h" +#include "a2b_endian.h" void Print_Byte_Order(void) only in patch2: unchanged: --- ascii2binary-2.13.orig/a2b_endian.h +++ ascii2binary-2.13/a2b_endian.h @@ -0,0 +1,6 @@ +/* Constants defining endian-ness values */ + +#define E_LITTLE_ENDIAN 0 +#define E_BIG_ENDIAN 1 +#define E_PDP_ENDIAN 2 +#define E_UNKNOWN_ENDIAN 3 only in patch2: unchanged: --- ascii2binary-2.13.orig/endian.c +++ ascii2binary-2.13/endian.c @@ -19,7 +19,7 @@ * */ -#include "endian.h" +#include "a2b_endian.h" /* Returns a value indicating the endianness of the machine */ only in patch2: unchanged: --- ascii2binary-2.13.orig/Makefile.in +++ ascii2binary-2.13/Makefile.in @@ -163,7 +163,7 @@ dist_man_MANS = binary2ascii.1 ascii2binary.1 binary2ascii_SOURCES = binary2ascii.c binfmt.c MachineInfo.c endian.c exitcodes.c ascii2binary_SOURCES = ascii2binary.c GetWord.c MachineInfo.c endian.c exitcodes.c -noinst_HEADERS = exitcodes.h endian.h +noinst_HEADERS = exitcodes.h a2b_endian.h LOCALEDIR = /usr/local/share/ascii2binary/locale AM_CFLAGS = -std=gnu99 ACLOCAL_AMFLAGS = -I m4