Opened 10 years ago

Closed 8 years ago

#22864 closed defect (fixed)

webkit-gtk build failure with icu 4.3.3 (error in TextBreakIteratorICU.cpp)

Reported by: vinc17@… Owned by: myschizobuddy@…
Priority: Normal Milestone:
Component: ports Version: 1.8.1
Keywords: Cc: dbevans (David B. Evans), teusjannette@…, michael.platzer@…, glyph@…
Port: webkit-gtk

Description

make[1]: *** [WebCore/platform/text/libWebCore_la-TextBoundariesICU.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
WebCore/platform/text/TextBreakIteratorICU.cpp: In function 'WebCore::TextBreakIterator* WebCore::setUpIterator(bool&, WebCore::TextBreakIterator*&, UBreakIteratorType, const UChar*, int)':
WebCore/platform/text/TextBreakIteratorICU.cpp:41: error: invalid static_cast from type 'UBreakIterator*' to type 'WebCore::TextBreakIterator*'
WebCore/platform/text/TextBreakIteratorICU.cpp:49: error: cannot convert 'WebCore::TextBreakIterator*' to 'UBreakIterator*' for argument '1' to 'void ubrk_setText_43(UBreakIterator*, const UChar*, int32_t, UErrorCode*)'
WebCore/platform/text/TextBreakIteratorICU.cpp: In function 'int WebCore::textBreakFirst(WebCore::TextBreakIterator*)':
WebCore/platform/text/TextBreakIteratorICU.cpp:90: error: cannot convert 'WebCore::TextBreakIterator*' to 'UBreakIterator*' for argument '1' to 'int32_t ubrk_first_43(UBreakIterator*)'
WebCore/platform/text/TextBreakIteratorICU.cpp: In function 'int WebCore::textBreakNext(WebCore::TextBreakIterator*)':
WebCore/platform/text/TextBreakIteratorICU.cpp:95: error: cannot convert 'WebCore::TextBreakIterator*' to 'UBreakIterator*' for argument '1' to 'int32_t ubrk_next_43(UBreakIterator*)'
WebCore/platform/text/TextBreakIteratorICU.cpp: In function 'int WebCore::textBreakPreceding(WebCore::TextBreakIterator*, int)':
WebCore/platform/text/TextBreakIteratorICU.cpp:100: error: cannot convert 'WebCore::TextBreakIterator*' to 'UBreakIterator*' for argument '1' to 'int32_t ubrk_preceding_43(UBreakIterator*, int32_t)'
WebCore/platform/text/TextBreakIteratorICU.cpp: In function 'int WebCore::textBreakFollowing(WebCore::TextBreakIterator*, int)':
WebCore/platform/text/TextBreakIteratorICU.cpp:105: error: cannot convert 'WebCore::TextBreakIterator*' to 'UBreakIterator*' for argument '1' to 'int32_t ubrk_following_43(UBreakIterator*, int32_t)'
WebCore/platform/text/TextBreakIteratorICU.cpp: In function 'int WebCore::textBreakCurrent(WebCore::TextBreakIterator*)':
WebCore/platform/text/TextBreakIteratorICU.cpp:110: error: cannot convert 'WebCore::TextBreakIterator*' to 'const UBreakIterator*' for argument '1' to 'int32_t ubrk_current_43(const UBreakIterator*)'
WebCore/platform/text/TextBreakIteratorICU.cpp: In function 'bool WebCore::isTextBreak(WebCore::TextBreakIterator*, int)':
WebCore/platform/text/TextBreakIteratorICU.cpp:115: error: cannot convert 'WebCore::TextBreakIterator*' to 'UBreakIterator*' for argument '1' to 'UBool ubrk_isBoundary_43(UBreakIterator*, int32_t)'
make[1]: *** [WebCore/platform/text/libWebCore_la-TextBreakIteratorICU.lo] Error 1
make: *** [all] Error 2

Attachments (1)

TextBreakIterator.diff (380 bytes) - added by mtalexander (Mike Alexander) 10 years ago.
Patch to make webkit build with icu 4.3.3

Download all attachments as: .zip

Change History (17)

comment:1 Changed 10 years ago by vinc17@…

Summary: webkit-gtk build failure on 10.4 (error in TextBreakIteratorICU.cpp)webkit-gtk build failure with icu 4.3.3 on 10.4 (error in TextBreakIteratorICU.cpp)

This was with icu @4.3.3_0 (current version). If I revert to icu @4.3.1_0, I no longer get the error.

comment:2 Changed 10 years ago by mf2k (Frank Schima)

Cc: devans@… added
Owner: changed from myschizobuddy@… to myschizobuddy@…
Priority: HighNormal

A ticket can only be assigned to one person. Other maintainers should be added to Cc. Also, High priority should be used sparingly and for tickets that affect many people.

comment:3 Changed 10 years ago by hayes@…

Since port install glade3 installs icu version 4.3.3_0, shouldn't a change be made in the port for glade3 to use 4.3.1_0?

Is there some way to easily re-install but tell macports to stick to icu version 4.3.1_0 during the installation?

comment:4 in reply to:  3 Changed 10 years ago by vinc17@…

Replying to hayes@…:

Is there some way to easily re-install but tell macports to stick to icu version 4.3.1_0 during the installation?

  1. Use the -n option (but this will block other upgrades of dependencies).

or

  1. Use a local port icu 4.3.1_0.

I think I'll do the latter.

comment:5 Changed 10 years ago by vinc17@…

Indeed, icu 4.3.3 seems to have broken the API (at least for C++): in unicode/ubrk.h,

typedef void UBreakIterator;

was changed to:

typedef struct UBreakIterator UBreakIterator;

I've just posted a message to the icu-support mailing-list about that.

Changed 10 years ago by mtalexander (Mike Alexander)

Attachment: TextBreakIterator.diff added

Patch to make webkit build with icu 4.3.3

comment:7 Changed 10 years ago by mtalexander (Mike Alexander)

This isn't really an icu problem. They changed (for the better) the definition of UBreakIterator and webkit needs to be changed to conform to this. I imagine this has been (or will be) fixed upstream in webkit, but I made the obvious patch (which is attached) and it seems to work.

comment:8 Changed 10 years ago by teusjannette@…

Cc: teusjannette@… added

Cc Me!

comment:9 Changed 10 years ago by teusjannette@…

The same problem also happens on Mac OS X 10.6 Snow Leopard. I do see that the patch has been supplied. But how do I apply this patch? Or when will this patch make it into the ports? Thanks, Teus.

comment:10 Changed 10 years ago by vinc17@…

Summary: webkit-gtk build failure with icu 4.3.3 on 10.4 (error in TextBreakIteratorICU.cpp)webkit-gtk build failure with icu 4.3.3 (error in TextBreakIteratorICU.cpp)

comment:11 Changed 10 years ago by michael.platzer@…

Cc: michael.platzer@… added

Cc Me!

comment:12 in reply to:  11 Changed 10 years ago by michael.platzer@…

I am experiencing the same issue on Snow Leopard as well (just as Teus), and this currently keeps me from installing glade3. So, can you please provide some tipps on how we should apply this patch? Thanks, michael

comment:13 Changed 10 years ago by glyph@…

Cc: glyph@… added

Cc Me!

comment:14 Changed 10 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: newclosed

comment:15 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: closedreopened

This seems to have regressed...

In file included from WebCore/dom/Text.cpp:28:
./WebCore/platform/text/TextBreakIterator.h:29: error: using typedef-name 'UBreakIterator' after 'struct'
./WebCore/icu/unicode/ubrk.h:22: error: 'UBreakIterator' has a previous declaration here
./WebCore/platform/text/TextBreakIterator.h:29: error: invalid type in declaration before ';' token
make[1]: *** [WebCore/dom/libwebkit_1_0_la-Text.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_www_webkit-gtk/webkit-gtk/work/webkit-1.2.7'

comment:16 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.