| Name: icu |
| URL: http://site.icu-project.org/ |
| Version: 4.6 |
| License: MIT |
| Security Critical: yes |
| |
| Description: |
| This directory contains the source code of ICU 4.6 for C/C++ |
| |
| 1. It was obtained with the following: |
| |
| $ svn export --native-eol LF http://source.icu-project.org/repos/icu/icu/tags/release-4-6 icu46 |
| |
| 2. Platform header files for Linux, FreeBSD, OpenBSD, Android and Mac OS X: |
| |
| - Apply platform.patch in patches directory. : It applies the upstream |
| patch to platform.h.in (see http://bugs.icu-project.org/trac/ticket/8248) |
| and change source/common/unicode/ptypes.h to refer to plinux.h and |
| pmac.h generated below. |
| |
| - 'runConfigureICU Linux', 'runConfigureICU FreeBSD', and |
| 'runConfigureICU MacOSX' are run to generate |
| source/common/unicode/platform.h. |
| |
| - On OpenBSD, source/common/unicode/platform.h is being generated |
| by the icu4c port in the ports directory and not by runConfigureICU. |
| In case the file has to be updated you can do: |
| cd /home/ports/textproc/icu4c && make configure |
| |
| - Rename it to 'plinux.h', 'pfreebsd.h', 'popenbsd.h' and 'pmac.h' |
| |
| - Apply patches/pmach.h.patch on Mac to pmac.h |
| |
| - On Android, the pandroid.h was generated by copying plinux.h to |
| pandroid.h and applying the patches/pandroid.h.patch. |
| |
| 3. The following directories were removed because they're not used by Chromium |
| at the moment: |
| as_is |
| packaging |
| source/extra |
| source/sample |
| source/layout |
| source/layoutex |
| |
| |
| 4. The word breaking for Chinese and Japanese were modified to use a word |
| frequency list with the following patch and cjdict.txt. |
| |
| - patches/segmentation.patch : |
| Adds a dictionary (word-frequency)-based word breaking for CJK |
| (Korean is supported in the code, but it does not do anything |
| because we don't have a Korean word-list.) |
| |
| - source/data/brkitr/cjdict.txt : |
| Chinese and Japanese word frequency list. |
| See the file for license/copyright notice |
| |
| - source/data/brkitr/cc_edict.txt : |
| the list of words derived from CC-Edict.) |
| |
| - patches/brkitr.patch |
| * word.txt : Chinese/Japanese segmentation rules, Hebrew-script-specific |
| handling of U+0022, and splitting of FQDN into labels at '.'. |
| For Hebrew, see http://unicode.org/cldr/track/ticket/3120 |
| * line.txt : Incorporated line_he and minor changes in CL, OP and ID |
| definitions. |
| For Hebrew, see http://unicode.org/cldr/track/ticket/4004 |
| For others, see http://unicode.org/cldr/track/ticket/3974 |
| http://unicode.org/cldr/track/ticket/4200 |
| http://unicode.org/cldr/track/ticket/ |
| * brklocal.mk : build file changes to drop unnecessary brkitr rule |
| files (e.g. word_ja.txt, line_he.txt) |
| |
| - android/brkitr.patch (to be applied for Android build only) : |
| Reverts some changes about Chinese/Japanese segmentation rules in |
| patches/brkitr.patch to reduce binary size for Android. |
| |
| If you want to run ICU tests, you have to copy source/data/brkitr/cjdict.txt |
| to source/test/testdata/cjdict-truncated.txt to pass TestTrieWithValue test. |
| |
| 5. Converter changes : converters.patch |
| - Include what we really need. See source/data/mappings/ucmlocal.txt |
| - Alias and mapping changes : source/data/mappings/convrtrs.txt |
| - Changes several tables and add six new tables, three of which |
| are 'fake' tables for ISO-2022-CN(-Ext). |
| - ucnv2022.c is modified to use 3 'fake' tables added above for |
| ISO-2022-CN(-Ext). |
| |
| 6. Locale changes |
| - patches/locale1.patch : |
| Filipino, Amharic, and Swahili locales |
| exemplar character set changes for CJK + 9 Indian locales |
| Minor fixes for Danish, , Turkish, and Korean. |
| |
| - patches/locale2.patch : |
| The minimum locale data Chrome needs for 47 languages Chrome is |
| not localized to. Each locale data file has ExemplarCharacters, |
| LocaleScript, layout, and the name of the language for a locale |
| in its native language. |
| |
| - patches/locale3.patch : Locale build configuration files. They |
| add reslocal.mk or {trns,sprep,rbnf,coll}local.mk files to |
| source/data/{coll,curr,lang.locale,curr,region,translit,zone,rbnf,sprep}. |
| |
| - In source/data/region, run the following command to get rid of numeric region |
| display names we don't use (everything other than 419). |
| $ sed -i '/[0-35-9][0-9][0-9]{/ d' *.txt |
| |
| - android/patch_locale.sh (to be run for Android build only): |
| Makes changes to source/data/{curr,region,lang} to exclude these data |
| except the language and script names of zh_Hans and zh_Hant. |
| |
| 7. Removal of unihan collation tables from data/coll/{zh,ja,ko}.txt |
| |
| - patches/unihan.patch: |
| unihan collation tables are never used in Chrome/Webkit, but it takes |
| about 1MB in the uncompressed ICU data file in ICU 4.2.1. |
| |
| 8. Timezone data update |
| - Grab the latest version of the following timezone data files and |
| put them in source/data/misc. |
| |
| metaZones.txt |
| timezoneTypes.txt |
| windowsZones.txt |
| zoneinfo64.txt |
| |
| As of Nov, 2011, the latest version is 2011n and the above files |
| are available at |
| http://source.icu-project.org/repos/icu/data/trunk/tzdata/icunew/2011n/44/ |
| |
| 9. Build-related changes |
| |
| - patches/wpo.patch |
| - patches/vscomp.patch |
| (see http://bugs.icu-project.org/trac/ticket/8355 and |
| http://bugs.icu-project.org/trac/ticket/8356 ) |
| - patches/rtti.patch : Make RTTI work without exception handling on Windows |
| (see http://bugs.icu-project.org/trac/ticket/8343) |
| - patches/data.build.patch : |
| To remove some data files we don't use and cut down the data size. |
| - patches/data.build.win.patch : |
| Windows-only data build patch. Add a new target DATALIB to makedata.mak |
| - patches/clang.patch: To build with Clang. |
| (see http://bugs.icu-project.org/trac/ticket/8954 Two other chunks in |
| the patch have already been fixed in the ICU trunk.) |
| - add an empty file (stubdatabuilt.txt) to source/stubdata |
| |
| 10. Pre-built data libraries are checked in. |
| |
| Before building data file on Linux, re-run runConfigureICU Linux again |
| if it's run without data.build.patch in #8 above. |
| |
| 'make' will fail in the 1st pass. Copy source/data/in/coll/invuca.icu |
| to {BUILD_DIR_ROOT}/data/out/build/icudt46l/coll and re-run 'make' |
| in {BUILD_DIR_ROOT}/data. |
| |
| - source/data/in/icudt46l.dat : Built on Linux with all the patches |
| above applied, |
| |
| - windows/icudt.dll : With icudt46l.dat in place, all the patches applied |
| and header files moved (#11 below), generated by building icudt_build |
| project of build/icudt_build.sln on Windows. icudt46.dll is |
| generated in bin/{Release,Debug} and copied to windows/icudt.dll |
| and checked in. Note that we drop the version number ('46') from the |
| dll name to avoind having to update our build scripts/configuration |
| files everytime ICU is upgraded to a new version. |
| |
| - {mac,linux}/icudt46l_dat.S : Built on Mac and Linux with all the |
| patches above (except android/brkitr.patch) applied and checked in. |
| |
| - android/icudt46l_dat.S : Built on Linux with all the patches above and |
| android/brkitr.patch applied and android/patch_locale.sh executed, and |
| checked in. |
| |
| 11. The header files were moved as shown below: |
| |
| source/common/unicode ==> public/common/unicode |
| source/i18n/unicode ==> public/i18n/unicode |
| |
| 12. Apply the fix found with static analysis tools such as PSV and coverity |
| |
| - patches/static.analysis.patch |
| - upstream trunk/4.8 do not have this code any more. |
| |
| 13. Fix for msvs2010 applied: |
| --- D:/src/ent/src/third_party/icu/source/common/stringpiece.cpp |
| (revision 78292) |
| +++ D:/src/ent/src/third_party/icu/source/common/stringpiece.cpp |
| (working copy) |
| @@ -75,7 +75,7 @@ |
| * Visual Studios 9.0. |
| * Cygwin with MSVC 9.0 also complains here about redefinition. |
| */ |
| -#if (!defined(_MSC_VER) || (_MSC_VER > 1500)) && !defined(CYGWINMSVC) |
| +#if (!defined(_MSC_VER) || (_MSC_VER > 1600)) && !defined(CYGWINMSVC) |
| const int32_t StringPiece::npos; |
| #endif |
| |
| 14. Fix for locales that don't use '.' as decimal separator: patches/nan.patch |
| - upstream bug: http://bugs.icu-project.org/trac/ticket/8561 |
| - Handle other chars besides the dot. This is required because decNumber's |
| parser expects the dot as a decimal separator. |
| - Locales that don't use dot were producing "NaN" values. |
| |
| 15. Fix a bug in the regex engine. |
| - patches/regex.patch |
| - upstream bug: http://bugs.icu-project.org/trac/ticket/8666 (fixed in the upstream) |
| |
| 16. Apply the upstream patch for Korean search collator support (ICU 4.6.1). |
| - patches/search_collation.patch |
| - upstream bug: http://bugs.icu-project.org/trac/ticket/8290 |
| |
| 17. Fix a use of uninitialized memory bug in regular expression matching |
| - patches/rematch.patch |
| - upstream bug: http://bugs.icu-project.org/trac/ticket/8824 |
| |
| 18. Make it compile with -Werror on gcc 4.6 |
| - patches/gcc46.patch (ToT upstream does not have this code any more). |
| |
| 19. Fix three out of bounds memory access error in common/uloc.c |
| and common/uresbund.c |
| - patches/uloc.patch |
| - upstream bug: |
| 1. http://bugs.icu-project.org/trac/ticket/8984 (_canonicalize) |
| 2. http://bugs.icu-project.org/trac/ticket/9114 (_getKeywords) |
| 3. http://bugs.icu-project.org/trac/ticket/yyyy (uresbund) |
| |
| 20. Fix a null pointer error in ubrk_setText in ubrk.cpp. |
| - patches/ubrk.patch |
| - upstream bug : http://bugs.icu-project.org/trac/ticket/9115 |
| |
| 21. Fix a clang warning in rbbi.cpp by merging in an upstream change. |
| - patches/changeset_30255.patch |
| - upstream change : http://bugs.icu-project.org/trac/changeset/30255 |
| |
| 22. Fix time zone handling and compilation on iOS. |
| - patches/ios_timezone.patch |
| - upstream bugs : http://bugs.icu-project.org/trac/ticket/9051 |
| - http://bugs.icu-project.org/trac/ticket/8661 |
| |
| 23. Fix a buffer overflow in utext |
| - patches/utext.patch |
| - upstream change : http://bugs.icu-project.org/trac/changeset/29356 |
| |
| 24. Fix compilation errors on VS2012. |
| - patches/vs2012.patch |