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

Reply via email to