Ticket #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: | devans@…, 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
Change History
comment:1 Changed 3 years ago by vinc17@…
- Summary changed from webkit-gtk build failure on 10.4 (error in TextBreakIteratorICU.cpp) to webkit-gtk build failure with icu 4.3.3 on 10.4 (error in TextBreakIteratorICU.cpp)
comment:2 Changed 3 years ago by macsforever2000@…
- Cc devans@… added
- Owner changed from myschizobuddy@… to myschizobuddy@…
- Priority changed from High to Normal
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 follow-up: ↓ 4 Changed 3 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 3 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?
- Use the -n option (but this will block other upgrades of dependencies).
or
- Use a local port icu 4.3.1_0.
I think I'll do the latter.
comment:5 Changed 3 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 3 years ago by mta@…
- Attachment TextBreakIterator.diff added
Patch to make webkit build with icu 4.3.3
comment:7 Changed 3 years ago by mta@…
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:9 Changed 3 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 3 years ago by vinc17@…
- Summary changed from webkit-gtk build failure with icu 4.3.3 on 10.4 (error in TextBreakIteratorICU.cpp) to webkit-gtk build failure with icu 4.3.3 (error in TextBreakIteratorICU.cpp)
comment:11 follow-up: ↓ 12 Changed 3 years ago by michael.platzer@…
- Cc michael.platzer@… added
Cc Me!
comment:12 in reply to: ↑ 11 Changed 3 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:14 Changed 3 years ago by jeremyhu@…
- Status changed from new to closed
- Resolution set to fixed
comment:15 Changed 14 months ago by jeremyhu@…
- Status changed from closed to reopened
- Resolution fixed deleted
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 14 months ago by jeremyhu@…
- Status changed from reopened to closed
- Resolution set to fixed


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.