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
