OLD | NEW |
1 Name: icu | 1 Name: icu |
2 URL: http://site.icu-project.org/ | 2 URL: http://site.icu-project.org/ |
3 Version: 52.1 | 3 Version: 52.1 |
4 License: MIT | 4 License: MIT |
5 Security Critical: yes | 5 Security Critical: yes |
6 | 6 |
7 Description: | 7 Description: |
8 This directory contains the source code of ICU 52.1 for C/C++ | 8 This directory contains the source code of ICU 52.1 for C/C++ |
9 | 9 |
10 1. It was obtained with the following: | 10 1. It was obtained with the following: |
11 | 11 |
12 $ svn export --native-eol LF http://source.icu-project.org/repos/icu/icu/tag
s/release-52-1 icu52 | 12 $ svn export --native-eol LF http://source.icu-project.org/repos/icu/icu/tag
s/release-52-1 icu52 |
13 | 13 |
14 The following directories we don't use are removed: | 14 The following directories we don't use are removed: |
15 | 15 |
16 - as_is | 16 - as_is |
17 - packaging | 17 - packaging |
18 - source/layout | 18 - source/layout |
19 - source/layoutex | 19 - source/layoutex |
20 - source/data/xml | 20 - source/data/xml |
21 | 21 |
22 patches/configure.patch is applied to get runConfigureICU work in the | 22 patches/configure.patch is applied to get runConfigureICU work in the |
23 icudata generation step without layout and layoutex directory by removing the | 23 icudata generation step without layout and layoutex directory by removing the |
24 corresponding Makefile's from ac_config variable. | 24 corresponding Makefile's from ac_config variable. |
25 | 25 |
26 2. Apply the following patch for platform related headers (putilimpl.h and | 26 2. Apply the following patch for platform related headers (putilimpl.h and |
27 others). | 27 others). |
28 | 28 |
29 - patches/putil.patch for Android, QNX and newlib(NaCl-newlib). | 29 - patches/putil.patch for Android, QNX and newlib(NaCl-newlib). |
30 Upstream bug for Android : http://bugs.icu-project.org/trac/ticket/10478 | 30 Upstream bug for Android : http://bugs.icu-project.org/trac/ticket/10478 |
31 Upstream bug for QNX : http://bugs.icu-project.org/trac/ticket/10811 | 31 Upstream bug for QNX : http://bugs.icu-project.org/trac/ticket/10811 |
32 Upstream bug for newlib : http://bugs.icu-project.org/trac/ticket/10873 | 32 Upstream bug for newlib : http://bugs.icu-project.org/trac/ticket/10873 |
33 | 33 |
34 - patches/platform_nacl.patch to add U_PF_NATIVE_CLIENT | 34 - patches/platform_nacl.patch to add U_PF_NATIVE_CLIENT |
35 Upstream bug : http://bugs.icu-project.org/trac/ticket/11033 | 35 Upstream bug : http://bugs.icu-project.org/trac/ticket/11033 |
36 | 36 |
37 | 37 |
38 3. Breakiterator patches | 38 3. Breakiterator patches |
39 | 39 |
40 - Apply patches/brkitr.patch | 40 - Apply patches/brkitr.patch |
41 * word.txt | 41 * word.txt |
42 a. Move full stops (U+002E, U+FF0E) from MidNumLet to MidNum so that | 42 a. Move full stops (U+002E, U+FF0E) from MidNumLet to MidNum so that |
43 FQDN labels can be split at '.' | 43 FQDN labels can be split at '.' |
44 b. Move fullwidth digits (U+FF10 - U+FF19) from Ideographic to Numeric. | 44 b. Move fullwidth digits (U+FF10 - U+FF19) from Ideographic to Numeric. |
45 See http://unicode.org/cldr/trac/ticket/6555 | 45 See http://unicode.org/cldr/trac/ticket/6555 |
46 * line.txt | 46 * line.txt |
47 a. Use Japanese rules for all locales because Japanese tailoring only | 47 a. Use Japanese rules for all locales because Japanese tailoring only |
48 affects Japanese specific characters. | 48 affects Japanese specific characters. |
49 See http://unicode.org/cldr/trac/ticket/3974 | 49 See http://unicode.org/cldr/trac/ticket/3974 |
50 b. Minor changes in CL, OP and IS definitions to handle 'comma-variants' | 50 b. Minor changes in CL, OP and IS definitions to handle 'comma-variants' |
51 more consistenly. | 51 more consistenly. |
52 See http://unicode.org/cldr/trac/ticket/6557 | 52 See http://unicode.org/cldr/trac/ticket/6557 |
53 c. Fix line breaking for Chinese characters and quotation marks | 53 c. Fix line breaking for Chinese characters and quotation marks |
54 See http://unicode.org/cldr/trac/ticket/4200 and | 54 See http://unicode.org/cldr/trac/ticket/4200 and |
55 http://crbug.com/39779 | 55 http://crbug.com/39779 |
56 | 56 |
57 | 57 |
58 - Add a new file brklocal.mk (copied from brkfiles.mk) with line_ja.txt | 58 - Add a new file brklocal.mk (copied from brkfiles.mk) with line_ja.txt |
59 and word_POSIX.txt dropped from the build list. | 59 and word_POSIX.txt dropped from the build list. |
60 | 60 |
61 - Apply patches/khmer-dictbe.patch and put in a smaller Khmer dictionary | 61 - Apply patches/khmer-dictbe.patch and put in a smaller Khmer dictionary |
62 (source/data/brkitr/khmerdict.txt) obtained from | 62 (source/data/brkitr/khmerdict.txt) obtained from |
63 http://bugs.icu-project.org/trac/ticket/9451 | 63 http://bugs.icu-project.org/trac/ticket/9451 |
64 | 64 |
65 - Add several common Chinese words that were dropped previously to | 65 - Add several common Chinese words that were dropped previously to |
66 source/data/cjdict/brkitr/cjdict.txt | 66 source/data/cjdict/brkitr/cjdict.txt |
67 patch: patches/cjdict.patch | 67 patch: patches/cjdict.patch |
68 upstream bug: http://bugs.icu-project.org/trac/ticket/10888 | 68 upstream bug: http://bugs.icu-project.org/trac/ticket/10888 |
69 | 69 |
70 | 70 |
71 - android/brkitr.patch (to be applied for Android build only) : | 71 - android/brkitr.patch (to be applied for Android build only) : |
72 Reverts some changes about Chinese/Japanese segmentation rules in | 72 Reverts some changes about Chinese/Japanese segmentation rules in |
73 patches/brkitr.patch to reduce binary size for Android. | 73 patches/brkitr.patch to reduce binary size for Android. |
74 | 74 |
75 4. Converter changes : | 75 4. Converter changes : |
76 | 76 |
77 - converters.patch : | 77 - converters.patch : |
78 a. revises existing mapping tables | 78 a. revises existing mapping tables |
79 b. Remove a lot of unused aliases in the converter alias table | 79 b. Remove a lot of unused aliases in the converter alias table |
80 (source/data/mappings/convrtrs.txt ) leading to 40kB size reduction. | 80 (source/data/mappings/convrtrs.txt ) leading to 40kB size reduction. |
81 | 81 |
82 - Add source/data/mappings/ucmlocal.txt : to list only converters we need. | 82 - Add source/data/mappings/ucmlocal.txt : to list only converters we need. |
83 - Add three new tables per WHATWG encoding standards for EUC-JP, | 83 - Add three new tables per WHATWG encoding standards for EUC-JP, |
84 Shift_JIS and CP866. | 84 Shift_JIS and CP866. |
85 They're generated with scripts/{eucjp, sjis, ibm866}_gen.sh. | 85 They're generated with scripts/{eucjp, sjis, ibm866}_gen.sh. |
86 - Add three 'fake' tables for ISO-2022-CN(-Ext) : noop-*.ucm. | 86 - Add three 'fake' tables for ISO-2022-CN(-Ext) : noop-*.ucm. |
87 | 87 |
88 - uconv.patch | 88 - uconv.patch |
89 a. ucnv2022 uses 3 fake tables for ISO-2022-CN(-Ext) instead of two | 89 a. ucnv2022 uses 3 fake tables for ISO-2022-CN(-Ext) instead of two |
90 huge tables. | 90 huge tables. |
91 b. ISO-2022-JP-[1-4] is dropped. | 91 b. ISO-2022-JP-[1-4] is dropped. |
92 c. SCSU, BOCU, ISCII, UTF-7 conversion is diabled leading to | 92 c. SCSU, BOCU, ISCII, UTF-7 conversion is diabled leading to |
93 the 47kB reduction in the code size. | 93 the 47kB reduction in the code size. |
94 | 94 |
95 5. Locale changes | 95 5. Locale changes |
96 - patches/locale1.patch : | 96 - patches/locale1.patch : |
97 a. Exemplar character set changes for zh*, ja + 9 Indian locales | 97 a. Exemplar character set changes for zh*, ja + 9 Indian locales |
98 b. Minor fixes for Korean, a few Indic (AmPmMarkers) and | 98 b. Minor fixes for Korean, a few Indic (AmPmMarkers) and |
99 others (datetime format) | 99 others (datetime format) |
100 | 100 |
101 - Locale build configuration files: To include the full locale data | 101 - Locale build configuration files: To include the full locale data |
102 for Chrome's UI languages and the minimum locale data for other locales, | 102 for Chrome's UI languages and the minimum locale data for other locales, |
103 add reslocal.mk or {trns,sprep,rbnf,coll}local.mk files to | 103 add reslocal.mk or {trns,sprep,rbnf,coll}local.mk files to |
104 source/data/{coll,curr,lang.locale,curr,region,translit,zone,rbnf,sprep}. | 104 source/data/{coll,curr,lang.locale,curr,region,translit,zone,rbnf,sprep}. |
105 | 105 |
106 This along with #8 (data.build.patch), #3 (brkiter) and #4 (converter) | 106 This along with #8 (data.build.patch), #3 (brkiter) and #4 (converter) |
107 cuts down the data size by ~ 11MB. | 107 cuts down the data size by ~ 11MB. |
108 | 108 |
109 - Run scripts/trim_data.sh : About 2.1MB data size reduction. | 109 - Run scripts/trim_data.sh : About 2.1MB data size reduction. |
110 a. Trim the locale data for Chrome's UI langauges : | 110 a. Trim the locale data for Chrome's UI langauges : |
111 locales, lang, region, currency | 111 locales, lang, region, currency |
112 b. Trim the locale data for non-UI languages to the bare minimum : | 112 b. Trim the locale data for non-UI languages to the bare minimum : |
113 ExemplarCharacters, LocaleScript, layout, and the name of the | 113 ExemplarCharacters, LocaleScript, layout, and the name of the |
114 language for a locale in its native language. | 114 language for a locale in its native language. |
115 c. Remove the legacy Chinese character set-based collation | 115 c. Remove the legacy Chinese character set-based collation |
116 (big5han/gb2312han) that don't make any sense and nobdoy uses. | 116 (big5han/gb2312han) that don't make any sense and nobdoy uses. |
117 | 117 |
118 - android/patch_locale.sh (to be run for Android build only): | 118 - android/patch_locale.sh (to be run for Android build only): |
119 a. Makes changes to source/data/{curr,region,lang} to exclude these data | 119 a. Makes changes to source/data/{curr,region,lang} to exclude these data |
120 except the language and script names of zh_Hans and zh_Hant. | 120 except the language and script names of zh_Hans and zh_Hant. |
121 b. Remove exemplar cities in timezone data (data/zone) | 121 b. Remove exemplar cities in timezone data (data/zone) |
122 c. Keep only the minimal calendar data in data/locales | 122 c. Keep only the minimal calendar data in data/locales |
123 | 123 |
124 - Add tg.txt to source/data/locale source/data/lang to add the minimal locale | 124 - Add tg.txt to source/data/locale source/data/lang to add the minimal locale |
125 data necessary for the spellchecker. In both directories, add tg.txt to | 125 data necessary for the spellchecker. In both directories, add tg.txt to |
126 reslocal.mk | 126 reslocal.mk |
127 | 127 |
128 6. Timezone data update | 128 6. Timezone data update |
129 - Grab the latest version of the following timezone data files and | 129 - Grab the latest version of the following timezone data files and |
130 put them in source/data/misc. | 130 put them in source/data/misc. |
131 | 131 |
132 metaZones.txt | 132 metaZones.txt |
133 timezoneTypes.txt | 133 timezoneTypes.txt |
(...skipping 13 matching lines...) Expand all Loading... |
147 | 147 |
148 8. Build-related changes | 148 8. Build-related changes |
149 | 149 |
150 - patches/wpo.patch | 150 - patches/wpo.patch |
151 Upstream bugs : http://bugs.icu-project.org/trac/ticket/8043 | 151 Upstream bugs : http://bugs.icu-project.org/trac/ticket/8043 |
152 http://bugs.icu-project.org/trac/ticket/5701 | 152 http://bugs.icu-project.org/trac/ticket/5701 |
153 - patches/vscomp.patch for building with Visual Studio on Windows. | 153 - patches/vscomp.patch for building with Visual Studio on Windows. |
154 a. do not use WINDOWS_LOCALE_API in locmap.c | 154 a. do not use WINDOWS_LOCALE_API in locmap.c |
155 b. do not redefine stringpiece::npos | 155 b. do not redefine stringpiece::npos |
156 c. fix a Windows build failure with U_USING_ICU_NAMESPACE=0 | 156 c. fix a Windows build failure with U_USING_ICU_NAMESPACE=0 |
157 upstream bug: http://bugs.icu-project.org/trac/ticket/10486 | 157 upstream bug: http://bugs.icu-project.org/trac/ticket/10486 |
158 fixed in ICU 53) | 158 fixed in ICU 53) |
159 d. Explicitly use Windows 'A' API when argument is an LPSTR in wintz.c | 159 d. Explicitly use Windows 'A' API when argument is an LPSTR in wintz.c |
160 upstream bug : http://bugs.icu-project.org/trac/ticket/10870 | 160 upstream bug : http://bugs.icu-project.org/trac/ticket/10870 |
161 | 161 |
162 - patches/data.build.patch : | 162 - patches/data.build.patch : |
163 Remove unnecessary resources : invuca, unames, collator source, stringprep | 163 Remove unnecessary resources : invuca, unames, collator source, stringprep |
164 - patches/data.build.win.patch : | 164 - patches/data.build.win.patch : |
165 Windows-only data build patch. | 165 Windows-only data build patch. |
166 | 166 |
167 - patches/clang_win.patch : | 167 - patches/clang_win.patch : |
168 Take care of 3 warnings from clang and MSVC 2013. | 168 Take care of 3 warnings from clang and MSVC 2013. |
169 upstream bug : http://bugs.icu-project.org/trac/ticket/11102 | 169 upstream bug : http://bugs.icu-project.org/trac/ticket/11102 |
170 | 170 |
171 9. Pre-built data files are checked in with the following steps on Linux: | 171 9. Pre-built data files are checked in with the following steps on Linux: |
172 | 172 |
173 a. Make a icu data build directory outside the Chromium source tree | 173 a. Make a icu data build directory outside the Chromium source tree |
174 and cd to that directory. | 174 and cd to that directory. |
175 b. Run | 175 b. Run |
176 | 176 |
177 ${CHROME_ICU_TREE_TOP}/source/runConfigureICU Linux --disable-layout | 177 ${CHROME_ICU_TREE_TOP}/source/runConfigureICU Linux --disable-layout |
178 | 178 |
179 c. Run 'make' | 179 c. Run 'make' |
180 d. 'make' will fail in the 1st pass. Copy | 180 d. 'make' will fail in the 1st pass. Copy |
181 ${CHROME_ICU_TREE_TOP}/source/data/in/coll/invuca.icu | 181 ${CHROME_ICU_TREE_TOP}/source/data/in/coll/invuca.icu |
182 to {BUILD_DIR_ROOT}/data/out/build/icudt52l/coll and re-run 'make' | 182 to {BUILD_DIR_ROOT}/data/out/build/icudt52l/coll and re-run 'make' |
183 in {BUILD_DIR_ROOT}/data. | 183 in {BUILD_DIR_ROOT}/data. |
184 | 184 |
185 e. 'make' will fail again when pkgdata looks for css3transform.res. Edit | 185 e. 'make' will fail again when pkgdata looks for css3transform.res. Edit |
186 data/out/tmp/icudata.lst to replace 'css3transform.res' with 'root.res'. | 186 data/out/tmp/icudata.lst to replace 'css3transform.res' with 'root.res'. |
187 (see http://bugs.icu-project.org/trac/ticket/10570 ) and run 'make' again. | 187 (see http://bugs.icu-project.org/trac/ticket/10570 ) and run 'make' again. |
188 | 188 |
189 | 189 |
190 - source/data/in/icudtl.dat : Built on Linux with all the patches | 190 - source/data/in/icudtl.dat : Built on Linux with all the patches |
191 above applied. icudt52l.dat is generated in | 191 above applied. icudt52l.dat is generated in |
192 {BUILD_DIR_ROOT}/data/out/tmp and copied to the above location with a | 192 {BUILD_DIR_ROOT}/data/out/tmp and copied to the above location with a |
193 version number (52) dropped. | 193 version number (52) dropped. |
194 | 194 |
195 | 195 |
196 - {mac,linux}/icudtl_dat.S : Built on Linux with all the | 196 - {mac,linux}/icudtl_dat.S : Built on Linux with all the |
197 patches above (except android/brkitr.patch) applied and checked in. | 197 patches above (except android/brkitr.patch) applied and checked in. |
198 This file will be generated in {BUILD_DIR_ROOT}/data/out/tmp as | 198 This file will be generated in {BUILD_DIR_ROOT}/data/out/tmp as |
199 icudt52l_dat.S, but '52' is dropped while copying. | 199 icudt52l_dat.S, but '52' is dropped while copying. |
200 | 200 |
201 mac/icudtl_dat.S is identical to linux/icudtl_dat.S except for | 201 mac/icudtl_dat.S is identical to linux/icudtl_dat.S except for |
202 the header portion. With "linux/icudtl_dat.S" in its place, | 202 the header portion. With "linux/icudtl_dat.S" in its place, |
203 run scripts/make_mac_assembly.sh to generate it. | 203 run scripts/make_mac_assembly.sh to generate it. |
204 | 204 |
205 - android/icudtl_dat.S : Built on Linux with all the patches above and | 205 - android/icudtl_dat.S : Built on Linux with all the patches above and |
206 android/brkitr.patch applied and android/patch_locale.sh executed. | 206 android/brkitr.patch applied and android/patch_locale.sh executed. |
207 '52' is dropped from the name generated in the build tree. | 207 '52' is dropped from the name generated in the build tree. |
208 | 208 |
209 - android/icudtl.dat : Generated as icudt52l.dat in | 209 - android/icudtl.dat : Generated as icudt52l.dat in |
210 {BUILD_DIR_ROOT}/data/out/tmp along with icudt52l_dat.S and | 210 {BUILD_DIR_ROOT}/data/out/tmp along with icudt52l_dat.S and |
211 copied to the above location with '52' dropped in its name. | 211 copied to the above location with '52' dropped in its name. |
212 | 212 |
213 - windows/icudt.dll (by default, we set icu_use_icu_data_flag to 1 | 213 - windows/icudt.dll (by default, we set icu_use_icu_data_flag to 1 |
214 and don't use this file.) | 214 and don't use this file.) |
215 | 215 |
216 a. check out a clean copy of icu52 from the upstream on Windows | 216 a. check out a clean copy of icu52 from the upstream on Windows |
217 outside the Chrome tree. | 217 outside the Chrome tree. |
218 | 218 |
219 $ svn export --native-eol LF http://source.icu-project.org/repos/icu/icu
/tags/release-52-1 ${SEPARATE_ICU_ROOT}/icu52 | 219 $ svn export --native-eol LF http://source.icu-project.org/repos/icu/icu
/tags/release-52-1 ${SEPARATE_ICU_ROOT}/icu52 |
220 | 220 |
221 b. copy ${CHROME_ICU_ROOT}/source/data/in/icudtl.dat to | 221 b. copy ${CHROME_ICU_ROOT}/source/data/in/icudtl.dat to |
222 ${SEPARATE_ICU_ROOT}/source/data/in/icudt52l.dat | 222 ${SEPARATE_ICU_ROOT}/source/data/in/icudt52l.dat |
223 c. copy ${CHROME_ICU_ROOT}/source/data/makedata.mak to | 223 c. copy ${CHROME_ICU_ROOT}/source/data/makedata.mak to |
224 ${SEPARATE_ICU_ROOT}/source/data/makedata.mak | 224 ${SEPARATE_ICU_ROOT}/source/data/makedata.mak |
225 c. In Visual Studio, open source/allinone/allinone.sln solution | 225 c. In Visual Studio, open source/allinone/allinone.sln solution |
226 in ${SEPARATE_ICU_ROOT} | 226 in ${SEPARATE_ICU_ROOT} |
227 d. Build 'makedata' target | 227 d. Build 'makedata' target |
228 e. icudt52.dll will be generated in ${SEPARATE_ICU_ROOT}/bin | 228 e. icudt52.dll will be generated in ${SEPARATE_ICU_ROOT}/bin |
229 f. Copy that icudt52.dll to ${CHROME_ICU_ROOT}/windows/icudt.dll | 229 f. Copy that icudt52.dll to ${CHROME_ICU_ROOT}/windows/icudt.dll |
230 and check that in. | 230 and check that in. |
231 | 231 |
232 | 232 |
233 10. Change export of U_ICUDATA_ENTRY_POINT from U_IMPORT to U_EXPORT. | 233 10. Change export of U_ICUDATA_ENTRY_POINT from U_IMPORT to U_EXPORT. |
234 - patches/declspec.patch | 234 - patches/declspec.patch |
| 235 |
| 236 11. Cherry-pick an upstream patch to fix a bug in bidi. |
| 237 - patches/bidi.patch |
| 238 - upstream bug : http://bugs.icu-project.org/trac/ticket/11054 |
OLD | NEW |