Difference between revisions of "ICU/bugs and patches"

From Apache OpenOffice Wiki
< ICU
Jump to: navigation, search
(make RuleBasedBreakIterator::setBreakType() public: i88411)
Line 1: Line 1:
List of patches applied to OOo's [[ICU]] module (currently ICU v3.6) and bugs and patches submitted to  [http://bugs.icu-project.org/trac/ ICU trac], the ICU bug tracking system.
+
List of patches applied to OOo's [[ICU]] module (currently ICU v4.0) and bugs and patches submitted to  [http://bugs.icu-project.org/trac/ ICU trac], the ICU bug tracking system.
  
 
If you really ''have'' to apply a patch to ICU to make things work, '''please''' submit that patch to ''ICU trac'', so the next version of ICU will include the changes, and list your patch with ICU trac ID here. We strive for being able to build against an unpatched ICU, so that configure --with-system-icu will be possible without loosing functionality.
 
If you really ''have'' to apply a patch to ICU to make things work, '''please''' submit that patch to ''ICU trac'', so the next version of ICU will include the changes, and list your patch with ICU trac ID here. We strive for being able to build against an unpatched ICU, so that configure --with-system-icu will be possible without loosing functionality.
 
 
== make RuleBasedBreakIterator::setBreakType() public ==
 
 
Using a locally constructed rule based line breakiterator may let ICU loop forever because of a missing fBreakType value. The patch is more a workaround, needing a proper solution.
 
 
ICU trac: http://bugs.icu-project.org/trac/ticket/5498 (submitted as http://bugs.icu-project.org/trac/ticket/6012 that got closed as a duplicate).
 
 
OOo patch developer: Karl Hong <khong>
 
 
A cleaner approach without the need to patch ICU is available with {{bug|88411}}.
 
 
== prevent crashes caused by unaligned memory accesss ==
 
 
Some processor architectures don't allow unaligned memory access and segfault when a library does them. This crashes an application like OpenOffice, when it uses libraries that haven't been fixed yet. ICU is one of these libraries and the problem happens when it accesses raw font data that is not aligned. Font files are allowed to have some unaligned data. Of course these TrueType fonts do work on Windows/x86 (not being one of those architectures), but people complained about crashes on other platforms, e.g. Solaris/SPARC, where they copied their fonts to. Since OpenOffice defaults to enable the font preview feature these crashes are very easy to trigger by scrolling through the list of available fonts, if just one of the fonts has an unaligned data field.
 
 
ICU trac: http://bugs.icu-project.org/trac/ticket/6083
 
 
The patch developed for ICU in OOo is just a workaround for the library problem. It is designed to be minimally invasive against the third party code base, so it can easily stay in sync with the rapidly evolving library. If ICU accepts the idea that raw accesses to unaligned memory need to  be avoided in the mainstream codebase too, then a better and cleaner approach is to wrap accesses into font files by small helper functions.
 
 
OOo patch developer: Herbert Duerr <hdu>
 
 
== compile warning free ==
 
 
OOo build treats warnings as errors, so ICU header files included may break the build. Some are wrapped in a second include file using a compiler dependent <code>#pragma ...</code>, some are patched directly, depends on who encountered the problem.
 
 
ICU trac: http://bugs.icu-project.org/trac/ticket/6090
 
 
OOo patch developer: Caolan McNamara <cmc>
 
 
 
== MinGW platform ==
 
 
Several patches to be able to build and use ICU on the [http://www.mingw.org/ Minimalist GNU for Windows] platform.
 
 
OOo port maintainer: Takashi Ono <tono>
 
 
TODO: file ICU patches.
 
 
== Indic rendering ==
 
 
Several changes related to Indic rendering in ICU 3.8 were back-ported to OOo's ICU 3.6, see [http://qa.openoffice.org/issues/show_bug.cgi?id=72791 issue 72791]
 
 
OOo patch developer: Herbert Duerr <hdu>
 
 
  
 
== add RPATH for URE ==
 
== add RPATH for URE ==
Line 59: Line 14:
  
 
OOo developer: Stephan Bergmann <sb>
 
OOo developer: Stephan Bergmann <sb>
 
 
== Regular Expressions patch ==
 
 
Applied [http://bugs.icu-project.org/trac/changeset/23292?format=3Ddiff ICU's changeset 23292] to address some memory handling issues in regular expressions, which are used in module [[forms]] for xforms. See also [http://sourceforge.net/mailarchive/forum.php?thread_name=d03a2ffb0801221538x68825e42xb4a4aaf0fcccecbd%40mail.gmail.com&forum_name=icu-support message on the icu-support mailing list] and [http://qa.openoffice.org/issues/show_bug.cgi?id=85632 issue 85632].
 
 
OOo ICU maintainer: Eike Rathke <er>
 

Revision as of 16:25, 14 October 2008

List of patches applied to OOo's ICU module (currently ICU v4.0) and bugs and patches submitted to ICU trac, the ICU bug tracking system.

If you really have to apply a patch to ICU to make things work, please submit that patch to ICU trac, so the next version of ICU will include the changes, and list your patch with ICU trac ID here. We strive for being able to build against an unpatched ICU, so that configure --with-system-icu will be possible without loosing functionality.

add RPATH for URE

The patch changes RPATH from $ORIGIN to $ORIGIN:$ORIGIN/../ure-link/lib because libicu*.so are linked against libstdc++.so.6 and libgcc_s.so.1 that are distributed with the new layered UNO Runtime Environment (URE). This to ensure that the libraries are found there in case they are not already loaded.

However, one could argue that the libraries are already loaded when ICU is pulled in, which almost certainly is the case for libstdc++, and probably also for the libgcc_s GCC support library, but that for some machine models may contain some rarely used symbols such that it wasn't loaded but ICU needs it. This is very unlikely though, but you never know..

Anyway, the patch certainly is nothing to upstream, hence no ICU trac ID.

We'll keep thinking about another solution.

OOo developer: Stephan Bergmann <sb>

Personal tools