Browse Source

deps: Intl: ICU 58 bump: configure/LICENSE/docs

* bump to ICU 58.1 - update URL / hash
* does not attempt to reduce size - yet
* patch to work around http://bugs.icu-project.org/trac/ticket/12822
  ( compile issue on Windows)
* Fix ICU shrinker to delete old license.html file
  (update to https://github.com/nodejs/node/pull/8674 )

Fixes: https://github.com/nodejs/node/issues/7844
PR-URL: https://github.com/nodejs/node/pull/9234
Reviewed-By: James M Snell <jasnell@gmail.com>
v6.x
Steven R. Loomis 8 years ago
committed by Myles Borins
parent
commit
0ee665c4ed
  1. 93
      LICENSE
  2. 4
      configure
  3. 15
      tools/icu/README.md
  4. 1095
      tools/icu/patches/58/source/i18n/digitlst.cpp
  5. 17
      tools/icu/shrink-icu-src.py

93
LICENSE

@ -98,12 +98,53 @@ The externally maintained libraries used by Node.js are:
- ICU, located at deps/icu-small, is licensed as follows: - ICU, located at deps/icu-small, is licensed as follows:
""" """
ICU License - ICU 1.8.1 and later COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
Copyright © 1991-2016 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in http://www.unicode.org/copyright.html
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation
(the "Data Files") or Unicode software and any associated documentation
(the "Software") to deal in the Data Files or Software
without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, and/or sell copies of
the Data Files or Software, and to permit persons to whom the Data Files
or Software are furnished to do so, provided that either
(a) this copyright and permission notice appear with all copies
of the Data Files or Software, or
(b) this copyright and permission notice appear in associated
Documentation.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.
---------------------
Third-Party Software Licenses
This section contains third-party software notices and/or additional
terms for licensed third-party software components included within ICU
libraries.
1. ICU License - ICU 1.8.1 to ICU 57.1
COPYRIGHT AND PERMISSION NOTICE COPYRIGHT AND PERMISSION NOTICE
Copyright (c) 1995-2016 International Business Machines Corporation and others Copyright (c) 1995-2016 International Business Machines Corporation and others
All rights reserved. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
@ -134,54 +175,6 @@ The externally maintained libraries used by Node.js are:
All trademarks and registered trademarks mentioned herein are the All trademarks and registered trademarks mentioned herein are the
property of their respective owners. property of their respective owners.
---------------------
Third-Party Software Licenses
This section contains third-party software notices and/or additional
terms for licensed third-party software components included within ICU
libraries.
1. Unicode Data Files and Software
COPYRIGHT AND PERMISSION NOTICE
Copyright © 1991-2016 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in
http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation
(the "Data Files") or Unicode software and any associated documentation
(the "Software") to deal in the Data Files or Software
without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, and/or sell copies of
the Data Files or Software, and to permit persons to whom the Data Files
or Software are furnished to do so, provided that
(a) this copyright and permission notice appear with all copies
of the Data Files or Software,
(b) this copyright and permission notice appear in associated
documentation, and
(c) there is clear notice in each modified Data File or in the Software
as well as in the documentation associated with the Data File(s) or
Software that the data or software has been modified.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.
2. Chinese/Japanese Word Break Dictionary Data (cjdict.txt) 2. Chinese/Japanese Word Break Dictionary Data (cjdict.txt)
# The Google Chrome software developed by Google is licensed under # The Google Chrome software developed by Google is licensed under

4
configure

@ -987,8 +987,8 @@ def glob_to_var(dir_base, dir_sub, patch_dir):
def configure_intl(o): def configure_intl(o):
icus = [ icus = [
{ {
'url': 'https://ssl.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.zip', 'url': 'https://ssl.icu-project.org/files/icu4c/58.1/icu4c-58_1-src.zip',
'md5': 'f797503ecaebf1d38920013dc7893066', 'md5': 'd6476b355f66a11fbe12db1d61d90d69',
}, },
] ]
def icu_download(path): def icu_download(path):

15
tools/icu/README.md

@ -8,11 +8,12 @@
```shell ```shell
./configure \ ./configure \
--with-intl=small-icu \ --with-intl=small-icu \
--with-icu-source=http://download.icu-project.org/files/icu4c/56.1/icu4c-56_1-src.zip --with-icu-source=http://download.icu-project.org/files/icu4c/58.1/icu4c-58_1-src.tgz
make make
``` ```
(the equivalent `vcbuild.bat` commands should work also.) (The equivalent `vcbuild.bat` commands should work also. Note that we use the `.tgz` and not the `.zip` here,
that is because of line endings.)
- (note- may need to make changes in `icu-generic.gyp` or `tools/icu/patches` for - (note- may need to make changes in `icu-generic.gyp` or `tools/icu/patches` for
version specific stuff) version specific stuff)
@ -58,6 +59,14 @@ new Intl.DateTimeFormat('es',{month:'long'}).format(new Date(9E8));
- You are ready to check in the updated `deps/small-icu`. - You are ready to check in the updated `deps/small-icu`.
This is a big commit, so make this a separate commit from other changes. This is a big commit, so make this a separate commit from other changes.
- Now, rebuild the Node license.
```shell
# clean up - remove deps/icu
make clean
tools/license-builder.sh
```
- Now, fix the default URL for the `full-icu` build in `/configure`, in - Now, fix the default URL for the `full-icu` build in `/configure`, in
the `configure_intl()` function. It should match the ICU URL used in the the `configure_intl()` function. It should match the ICU URL used in the
first step. When this is done, the following should build with full ICU. first step. When this is done, the following should build with full ICU.
@ -70,7 +79,7 @@ make
make test-ci make test-ci
``` ```
- commit the change to `configure`. - commit the change to `configure` along with the updated `LICENSE` file.
----- -----

1095
tools/icu/patches/58/source/i18n/digitlst.cpp

File diff suppressed because it is too large

17
tools/icu/shrink-icu-src.py

@ -48,18 +48,17 @@ def icu_ignore(dir, files):
ign = ign + files ign = ign + files
# except... # except...
ign.remove('source') ign.remove('source')
ign.remove('license.html') if 'LICENSE' in ign:
ign.remove('LICENSE') ign.remove('LICENSE')
# license.html will be removed (it's obviated by LICENSE)
elif 'license.html' in ign:
ign.remove('license.html')
elif subdir == 'source': elif subdir == 'source':
ign = ign + ['layout','samples','test','extra','config','layoutex','allinone'] ign = ign + ['layout','samples','test','extra','config','layoutex','allinone','data']
ign = ign + ['runConfigureICU','install-sh','mkinstalldirs','configure'] ign = ign + ['runConfigureICU','install-sh','mkinstalldirs','configure']
elif subdir == 'source/tools': elif subdir == 'source/tools':
ign = ign + ['tzcode','ctestfw','gensprep','gennorm2','gendict','icuswap', ign = ign + ['tzcode','ctestfw','gensprep','gennorm2','gendict','icuswap',
'genbrk','gencfu','gencolusb','genren','memcheck','makeconv','gencnval','icuinfo','gentest'] 'genbrk','gencfu','gencolusb','genren','memcheck','makeconv','gencnval','icuinfo','gentest']
elif subdir == 'source/data':
ign = ign + ['unidata','curr','zone','unit','lang','region','misc','sprep']
# else:
# print '!%s! [%s]' % (subdir, files)
ign = ign + ['.DS_Store', 'Makefile', 'Makefile.in'] ign = ign + ['.DS_Store', 'Makefile', 'Makefile.in']
for file in files: for file in files:
@ -103,6 +102,10 @@ print '%s --> %s' % (options.icusrc, options.icusmall)
shutil.copytree(options.icusrc, options.icusmall, ignore=icu_ignore) shutil.copytree(options.icusrc, options.icusmall, ignore=icu_ignore)
print '%s --> %s' % (src_datafile, dst_datafile) print '%s --> %s' % (src_datafile, dst_datafile)
# now, make the data dir (since we ignored it)
os.mkdir(os.path.join(os.path.join(options.icusmall, "source", "data")))
os.mkdir(os.path.join(os.path.join(options.icusmall, "source", "data", "in")))
# OK, now copy the data file # OK, now copy the data file
shutil.copy(src_datafile, dst_datafile) shutil.copy(src_datafile, dst_datafile)

Loading…
Cancel
Save