bug-gettext
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug-gettext] gettext-0.19.8.1 testsuite fails with libunistring-0.9


From: Natanael Copa
Subject: Re: [bug-gettext] gettext-0.19.8.1 testsuite fails with libunistring-0.9.10 on Alpine Linux x86_64
Date: Fri, 10 Aug 2018 13:20:53 +0200

On Thu, 9 Aug 2018 11:09:12 +0200
Natanael Copa <address@hidden> wrote:

> Hi,
> 
> There are 21 failing tests after libunistring was upgraded to 0.9.10.
> 
> ============================================================================
> Testsuite summary for gettext-tools 0.19.8.1
> ============================================================================
> # TOTAL: 412
> # PASS:  353
> # SKIP:  38
> # XFAIL: 0
> # FAIL:  21
> # XPASS: 0
> # ERROR: 0
> ============================================================================
> See tests/test-suite.log
> Please report to address@hidden
> ============================================================================
> 
> 
> gettext-tools/tests/test-suite.log is attached.
> 
> 
> The msgmerge tool also ends up with an abort. This was reported to
> libunistring: https://savannah.gnu.org/bugs/index.php?54453

It turns out that the problem is that parts of older version of
libunistring (unilbrk) is included in gnulib and that the data table
from the older libunistring gets complied into gettext. The newer shared
libunistring library ends up using the data table from bundled
libunistring and it appears that the data table format has changed so
things goes wrong.

The fix is to not compile any of the bundled unilbrk/lbrktables.c
(there are two copies in the source tree) when building with shared
libunistring.

There is also a unilbrk/ulc-common.c (also two copies) which I don't
think should be compiled either.

Below is a workaround that fixes it. The Makefile.in are generated from
Makefile.gnulib which seems to unconditionally include lbrktables.c and
ulc-common.c in the build. This seems to be generated from something
else but I didn't follow the rabbit hole deeper than that. Someone more
familiar with gnulib need to figure out how to exclude the bundled
libunistring when using external libunistring.

Thanks!

diff --git a/gettext-tools/gnulib-lib/Makefile.in 
b/gettext-tools/gnulib-lib/Makefile.in
index a8e89eb..4fc24d7 100644
--- a/gettext-tools/gnulib-lib/Makefile.in
+++ b/gettext-tools/gnulib-lib/Makefile.in
@@ -593,8 +593,8 @@ am_libgettextlib_la_OBJECTS = copy-acl.lo set-acl.lo \
        striconveha.lo strnlen1.lo styled-ostream.lo tempname.lo \
        term-ostream.lo $(am__objects_4) $(am__objects_5) \
        glthread/threadlib.lo glthread/tls.lo tmpdir.lo trim.lo \
-       $(am__objects_6) $(am__objects_7) unilbrk/lbrktables.lo \
-       $(am__objects_8) $(am__objects_9) unilbrk/ulc-common.lo \
+       $(am__objects_6) $(am__objects_7) \
+       $(am__objects_8) $(am__objects_9) \
        $(am__objects_10) $(am__objects_11) unistd.lo dup-safer.lo \
        fd-safer.lo pipe-safer.lo $(am__objects_12) $(am__objects_13) \
        $(am__objects_14) $(am__objects_15) $(am__objects_16) \
@@ -2400,8 +2400,8 @@ libgettextlib_la_SOURCES = copy-acl.c set-acl.c 
acl-errno-valid.c \
        tempname.c term-ostream.c $(am__append_19) $(am__append_20) \
        glthread/threadlib.c glthread/tls.h glthread/tls.c tmpdir.h \
        tmpdir.c trim.c $(am__append_21) $(am__append_22) \
-       unilbrk/lbrktables.c $(am__append_23) $(am__append_24) \
-       unilbrk/ulc-common.c $(am__append_25) $(am__append_26) \
+       $(am__append_23) $(am__append_24) \
+       $(am__append_25) $(am__append_26) \
        unistd.c dup-safer.c fd-safer.c pipe-safer.c $(am__append_27) \
        $(am__append_28) $(am__append_29) $(am__append_30) \
        $(am__append_31) $(am__append_32) $(am__append_33) \
diff --git a/gettext-tools/libgettextpo/Makefile.in 
b/gettext-tools/libgettextpo/Makefile.in
index 5f9550d..bd684cb 100644
--- a/gettext-tools/libgettextpo/Makefile.in
+++ b/gettext-tools/libgettextpo/Makefile.in
@@ -554,8 +554,8 @@ am_libgnu_la_OBJECTS = basename.lo c-ctype.lo 
c-strcasecmp.lo \
        malloca.lo markup.lo mbswidth.lo ostream.lo progname.lo \
        striconv.lo striconveh.lo striconveha.lo glthread/threadlib.lo \
        glthread/tls.lo $(am__objects_3) $(am__objects_4) \
-       $(am__objects_5) unilbrk/lbrktables.lo $(am__objects_6) \
-       $(am__objects_7) unilbrk/ulc-common.lo $(am__objects_8) \
+       $(am__objects_5) $(am__objects_6) \
+       $(am__objects_7) $(am__objects_8) \
        unistd.lo $(am__objects_9) $(am__objects_10) $(am__objects_11) \
        $(am__objects_12) $(am__objects_13) $(am__objects_14) \
        $(am__objects_15) $(am__objects_16) $(am__objects_17) \
@@ -2179,8 +2179,8 @@ libgnu_la_SOURCES = basename.h basename.c c-ctype.h 
c-ctype.c \
        striconv.c striconveh.h striconveh.c striconveha.h \
        striconveha.c glthread/threadlib.c glthread/tls.h \
        glthread/tls.c $(am__append_6) $(am__append_7) $(am__append_8) \
-       unilbrk/lbrktables.c $(am__append_9) $(am__append_10) \
-       unilbrk/ulc-common.c $(am__append_11) unistd.c \
+       $(am__append_9) $(am__append_10) \
+       $(am__append_11) unistd.c \
        $(am__append_12) $(am__append_13) $(am__append_14) \
        $(am__append_15) $(am__append_16) $(am__append_17) \
        $(am__append_18) $(am__append_19) $(am__append_20) \




reply via email to

[Prev in Thread] Current Thread [Next in Thread]