{"id":15462314,"url":"https://github.com/goderbauer/icu-xp","last_synced_at":"2025-03-28T10:43:16.320Z","repository":{"id":83747887,"uuid":"140633142","full_name":"goderbauer/icu-xp","owner":"goderbauer","description":null,"archived":false,"fork":false,"pushed_at":"2018-07-11T22:23:52.000Z","size":205059,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"foo","last_synced_at":"2024-10-18T20:44:24.650Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/goderbauer.png","metadata":{"files":{"readme":"README.chromium","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-11T22:21:34.000Z","updated_at":"2019-03-25T03:29:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"d29a98f1-916a-4068-afa0-bb603e637c6b","html_url":"https://github.com/goderbauer/icu-xp","commit_stats":{"total_commits":227,"total_committers":32,"mean_commits":7.09375,"dds":"0.44052863436123346","last_synced_commit":"6cbdc2398d132e7c2adbbd171e95c02676dd7b74"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goderbauer%2Ficu-xp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goderbauer%2Ficu-xp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goderbauer%2Ficu-xp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goderbauer%2Ficu-xp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goderbauer","download_url":"https://codeload.github.com/goderbauer/icu-xp/tar.gz/refs/heads/foo","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246014452,"owners_count":20709817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T00:01:26.070Z","updated_at":"2025-03-28T10:43:16.300Z","avatar_url":"https://github.com/goderbauer.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Name: icu\nURL: http://site.icu-project.org/\nVersion: 62.1\nLicense: MIT\nSecurity Critical: yes\n\nDescription:\nThis directory contains the source code of ICU 62.1 for C/C++.\n\nA. How to update ICU\n\n1. Run \"scripts/update.sh \u003cversion\u003e\" (e.g. 60-1).\n   This will download ICU from the upstream svn repository.\n   It does preserve Chrome-specific build files (*local.mk) and\n   converter files. (see section C)\n\n   BUILD.gn and icu.gyp* files are automatically updated, too.\n\n2. Review and apply patches/changes in \"D. Local Modifications\" if\n   necessary/applicable. Update patch files in patches/.\n\n3. Follow the instructions in section B on building ICU data files\n\n\nB. How to build ICU data files\n\n\nPre-built data files are generated and checked in with the following steps\n\n1. icu data files for Chrome OS, Linux, Mac and Windows\n\n  a. Make a icu data build directory outside the Chromium source tree\n     and cd to that directory (say, $ICUBUILDIR).\n\n  b. Run\n\n    ${CHROME_ICU_TREE_TOP}/source/runConfigureICU Linux --disable-layout --disable-tests\n\n\n  c. Run make\n     'make' will fail  when pkgdata looks for root_subset.res. This\n     is expected. See https://ssl.icu-project.org/trac/ticket/10570\n\n  d. Run\n       ${CHROME_ICU_TREE_TOP}/scripts/make_data_all.sh\n\n     This script takes the following steps:\n\n     i) scripts/trim_data.sh\n       The full locale data for Chrome's UI languages and their select variants\n       and the bare minimum locale data for other locales will be kept.\n\n     ii) scripts/make_data.sh\n       This makes icudt${version}l.dat.\n\n     iii)  scripts/copy_data.sh common\n       This copies the ICU data files for non-Android platforms\n       (both Little and Big Endian) to the following locations:\n\n       common/icudtl.dat\n       common/icudtb.dat\n\n     iv) cast/patch_locale.sh\n       On top of trim_data.sh (step d), further cuts the data entries for\n       Cast.\n\n     v) Repeat ii) and iii) for cast to get cast/icudtl.dat\n\n     vi) android/patch_locale.sh\n       On top of trim_data.sh (step d), further cuts the data entries for\n       Android.\n\n     vii) Repeat ii) and iii) for Android to get android/icudtl.dat\n\n     viii) ios/patch_locale.sh\n       Further cuts the data size for iOS.\n\n     ix) Repeat ii) and iii) for iOS to get ios/icudtl.dat\n\n     x) scripts/clean_up_data_source.sh\n\n     This reverts the result of trim_data.sh and patch_locale.sh and\n     make the tree ready for committing updated ICU data files for\n     non-Android and Android platforms.\n\n  e. Whenever data is updated (e.g timezone update), take step d as long\n  as the ICU build directory used in a ~ c is kept.\n\n2. Note on the locale data customization\n\n  - scripts/trim_data.sh\n      a. Trim the locale data for Chrome's UI langauges :\n         locales, lang, region, currency, zone\n      b. Trim the locale data for non-UI languages to the bare minimum :\n        ExemplarCharacters, LocaleScript, layout, and the name of the\n        language for a locale in its native language.\n      c. Remove the legacy Chinese character set-based collation\n         (big5han/gb2312han) that don't make any sense and nobdoy uses.\n\n  - android/patch_locale.sh\n      a. Make changes to source/data/{region,lang} to exclude these data\n         except the language and script names of zh_Hans and zh_Hant.\n      b. Remove exemplar cities in timezone data (data/zone).\n      c. Keep only the minimal calendar data in data/locales.\n      d. Include currency display names for a smaller subset of currencies.\n      e. Minimize the locale data for 9 locales to which Chrome on Android\n         is not localized.\n      f. Also apply android/brkitr.patch\n\n  - android/brkitr.patch\n      Do not use the C+J dictionary for Chinese/Japanese segmentation\n      to reduce the data size. Adjust word.txt and a few other files.\n\nC. Chromium-specific data build files and converters\n\nThey're preserved in step A.1 above. In general, there's no need to touch\nthem when updating ICU.\n\n1. source/data/mappings\n  - convrtrs.txt : Lists encodings and aliases required by the WHATWG\n    Encoding spec plus a few extra (see the file as to why).\n\n  - ucmlocal.txt : to list only converters we need.\n\n  - *html.ucm: Mapping files per WHATWG encoding standards for EUC-JP,\n    Shift_JIS, Big5 (Big5+Big5HKSCS), EUC-KR and all the single byte encodings.\n    They're generated with scripts/{eucjp,sjis,big5,euckr,single_byte}_gen.sh.\n\n  - gb18030.ucm and windows-936.ucm\n    gb_table.patch was applied for the following changes. No need\n    to apply it again. The patch is kept for the record.\n    a. Map \\xA3\\xA0 to U+3000 instead of U+E5E5 in gb18030 and windows-936 per\n    the encoding spec (one-way mapping in toUnicode direction).\n    b. Map \\xA8\\xBF to U+01F9 instead of U+E7C8. Add one-way map\n    from U+1E3F to \\xA8\\xBC (windows-936/GBK).\n       See https://www.w3.org/Bugs/Public/show_bug.cgi?id=28740#c3\n\n2. source/data/*/*local.mk\n  - List locales of interest to Chromium\n   a. Chrome's UI languages\n   b. Variants of UI languages\n   c. Other locales in Accept-Language list : will only have bare minimum\n   locale data\n\n  - brklocal.mk drops some line*brk files to save space for now.\n\n3. source/data/brkitr\n  - dictionaries/khmerdict.txt: Abridged Khmer dictionary. See\n    https://ssl.icu-project.org/trac/ticket/9451\n  - rules/word_ja.txt (used only on Android)\n    Added for Japanese-specific word-breaking without the C+J dictionary.\n  - rules/{fi,root,zh,zh_Hant}.txt\n    a. Drop *_loose.txt for fi/root and use the corresponding line_normal.txt\n    b. Use line_normal by default.\n    c. Drop local patches we used to have for the following issues. They'll\n       be dealt with in the upstream (Unicode/CLDR).\n       http://unicode.org/cldr/trac/ticket/6557\n       http://unicode.org/cldr/trac/ticket/4200 (http://crbug.com/39779)\n\n4. source/data/trnslit/root_subset.txt\n   Subset of transliteration data to keep for:\n\n5. Add {an,ku,tg,wa}.txt to source/data/{locale,lang}\n   with the minimal locale data necessary for spellchecker and\n   and language menus.\n\nD. Local Modifications\n\n1. Applied locale data patches from Google obtained by diff'ing\n   the upstream copy and Google's internal copy for source/data\n\n  - patches/locale_google.patch:\n    * Google's internal ICU locale changes\n    * Simpler region names for Hong Kong and Macau in all locales\n    * Currency signs in ru and uk locales (do not include 'tr' locale changes)\n    * AM/PM, midnight, noon formatting for a few Indian locales\n    * Timezone name changes in Korean and Chinese locales\n    * Default digit for Arabic locale is European digits.\n\n  - patches/locale1.patch: Minor fixes for Korean\n\n\n2. Breakiterator patches\n  - patches/wordbrk.patch for word.txt\n    a. Move full stops (U+002E, U+FF0E) from MidNumLet to MidNum so that\n       FQDN labels can be split at '.'\n    b. Move fullwidth digits (U+FF10 - U+FF19) from Ideographic to Numeric.\n       See http://unicode.org/cldr/trac/ticket/6555\n\n  - patches/khmer-dictbe.patch\n    Adjust parameters to use a smaller Khmer dictionary (khmerdict.txt).\n    https://ssl.icu-project.org/trac/ticket/9451\n\n  - Add several common Chinese words that were dropped previously to\n    source/data/cjdict/brkitr/cjdict.txt\n    patch: patches/cjdict.patch\n    upstream bug: https://ssl.icu-project.org/trac/ticket/10888\n\n3. Timezone data update\n  Run scripts/update_tz.sh to grab the latest version of the\n  following timezone data files and put them in source/data/misc\n\n     metaZones.txt\n     timezoneTypes.txt\n     windowsZones.txt\n     zoneinfo64.txt\n\n  As of May 4, 2018, the latest version is 2018e and the above files\n  are available at\n  http://source.icu-project.org/repos/icu/data/trunk/tzdata/icunew/2018e/44/\n\n4. Build-related changes\n\n  - patches/wpo.patch (only needed when icudata dll is used).\n    upstream bugs : https://ssl.icu-project.org/trac/ticket/8043\n                    https://ssl.icu-project.org/trac/ticket/5701\n  - patches/vscomp.patch for building with Visual Studio on Windows:\n    do not use WINDOWS_LOCALE_API in locmap.c\n\n  - patches/data.build.patch :\n      Remove unnecessary resources : unames, collator rule source\n  - patches/data.build.win.patch :\n      Windows-only data build patch.\n  - patches/data_symb.patch :\n      Put ICU_DATA_ENTRY_POINT(icudtXX_dat) in common when we use\n      the icu data file or icudt.dll\n\n5. Fix -Wsign-compare warning in EnumSet::isValidEnum()\n\n  - patches/isvalidenum.patch\n    upstream bug: https://ssl.icu-project.org/trac/ticket/13509\n\n7. Update IANA language tag/subtag mapping and add missing canonicalization for\n    deprecated regions\n\n  - patches/locid_map.patch\n  - upstream bugs:\n    https://ssl.icu-project.org/trac/ticket/13726\n    https://ssl.icu-project.org/trac/ticket/13723\n    https://ssl.icu-project.org/trac/ticket/13721\n    https://ssl.icu-project.org/trac/ticket/13720\n    https://ssl.icu-project.org/trac/ticket/13719\n\n8. Double conversion library build failure\n\n  - patches/double_conversion.patch\n  - upstream bugs:\n    https://ssl.icu-project.org/trac/ticket/13750\n    https://github.com/google/double-conversion/issues/66\n\n9. Cherry-pick Greek lowercase fix from the upstream\n\n  - patches/greek_lowercase.patch\n  - upstream bug (fixed in 62.2-to-be)\n    https://ssl.icu-project.org/trac/ticket/13851\n\n10. Max significant digit is always 6\n\n  - patches/nf_maxsig.patch\n  - upstream bug:\n    https://ssl.icu-project.org/trac/ticket/13852\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoderbauer%2Ficu-xp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoderbauer%2Ficu-xp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoderbauer%2Ficu-xp/lists"}