From 1b1d0b83e496d106047948cc385637664a5e8a1f Mon Sep 17 00:00:00 2001 From: LEAN-ESX Date: Mon, 24 Feb 2020 03:00:01 -0800 Subject: [PATCH] icu: bump version --- libs/icu/Makefile | 72 ++++++++++++++++--- .../000-dont-cpy-files-from-topdirs.patch | 6 +- .../001-change_optimization_option.patch | 13 ++++ ...0-ICU-20877-i18n-Don-t-use-C-11-math.patch | 40 +++++++++++ 4 files changed, 119 insertions(+), 12 deletions(-) create mode 100644 libs/icu/patches/001-change_optimization_option.patch create mode 100644 libs/icu/patches/010-ICU-20877-i18n-Don-t-use-C-11-math.patch diff --git a/libs/icu/Makefile b/libs/icu/Makefile index 2d9a97da..277ab05a 100644 --- a/libs/icu/Makefile +++ b/libs/icu/Makefile @@ -8,23 +8,26 @@ include $(TOPDIR)/rules.mk PKG_NAME:=icu4c -PKG_VERSION:=61.1 -PKG_RELEASE:=1 +MAJOR_VERSION:=65 +MINOR_VERSION:=1 +PKG_VERSION:=$(MAJOR_VERSION).$(MINOR_VERSION) +PKG_RELEASE:=2 -PKG_SOURCE:=$(PKG_NAME)-61_1-src.tgz -PKG_SOURCE_URL:=http://download.icu-project.org/files/$(PKG_NAME)/$(PKG_VERSION) -PKG_HASH:=d007f89ae8a2543a53525c74359b65b36412fa84b3349f1400be6dcf409fafef +PKG_SOURCE:=$(PKG_NAME)-$(MAJOR_VERSION)_$(MINOR_VERSION)-src.tgz +PKG_SOURCE_URL:=https://github.com/unicode-org/icu/releases/download/release-$(MAJOR_VERSION)-$(MINOR_VERSION) +PKG_HASH:=53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948 -PKG_LICENSE:=ICU-1.8.1+ +PKG_LICENSE:=ICU PKG_LICENSE_FILES:=LICENSE +PKG_CPE_ID:=cpe:/a:icu-project:international_components_for_unicode PKG_MAINTAINER:=Hirokazu MORIKAWA PKG_INSTALL:=1 PKG_BUILD_PARALLEL:=1 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DEPENDS:=icu/host +HOST_BUILD_DEPENDS:=python3/host include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/host-build.mk @@ -40,6 +43,37 @@ define Package/icu DEPENDS:=+libstdcpp +libpthread endef +define Package/icu/description + ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications. ICU is widely portable and gives applications the same results on all platforms and between C/C++ and Java software. + This package supports C/C++. +endef + +define Package/icu-full-data + SECTION:=libs + CATEGORY:=Libraries + TITLE:=Full ICU Data + URL:=http://icu-project.org + DEPENDS:=+icu +endef + +define Package/icu-full-data/description + ICU makes use of a wide variety of data tables to provide many of its services. Examples include converter mapping tables, collation rules, transliteration rules, break iterator rules and dictionaries, and other locale data. + This package contains the complete data library provided by ICU. + A custom data library can be generated at http://apps.icu-project.org/datacustom/ +endef + +define Package/icu-data-tools + SECTION:=libs + CATEGORY:=Libraries + TITLE:=ICU Data manipulation tools + URL:=http://icu-project.org + DEPENDS:=+icu +endef + +define Package/icu-data-tools/description + This package provides tools for manipulating ICU data. +endef + CONFIGURE_CMD:= ./runConfigureICU CONFIGURE_ARGS:= \ Linux/gcc \ @@ -57,7 +91,7 @@ CONFIGURE_ARGS:= \ --disable-tracing \ --disable-extras \ --enable-dyload \ - --disable-tools \ + --with-data-packaging=archive \ --disable-tests \ --disable-samples \ --with-cross-build="$(STAGING_DIR_HOSTPKG)/share/icu/$(PKG_VERSION)" \ @@ -78,6 +112,11 @@ HOST_CONFIGURE_ARGS:= \ --enable-dyload \ --prefix=$(STAGING_DIR_HOSTPKG) +define Build/Prepare + $(call Build/Prepare/Default) + mkdir -p $(PKG_BUILD_DIR)/data/out +endef + define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include $(INSTALL_DIR) $(1)/usr/lib @@ -105,5 +144,20 @@ define Package/icu/install $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/ endef -$(eval $(call BuildPackage,icu)) +define Package/icu-full-data/install + $(INSTALL_DIR) $(1)/usr/share/icu/$(PKG_VERSION) + $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/icu/$(PKG_VERSION)/icudt*.dat \ + $(1)/usr/share/icu/$(PKG_VERSION)/ +endef + +define Package/icu-data-tools/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/ +endef + $(eval $(call HostBuild)) +$(eval $(call BuildPackage,icu)) +$(eval $(call BuildPackage,icu-full-data)) +$(eval $(call BuildPackage,icu-data-tools)) diff --git a/libs/icu/patches/000-dont-cpy-files-from-topdirs.patch b/libs/icu/patches/000-dont-cpy-files-from-topdirs.patch index cada77ff..55dc4859 100644 --- a/libs/icu/patches/000-dont-cpy-files-from-topdirs.patch +++ b/libs/icu/patches/000-dont-cpy-files-from-topdirs.patch @@ -2,11 +2,11 @@ diff --git a/Makefile.in b/Makefile.in index 9db6c52..6aa2273 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -186,7 +186,6 @@ install-icu: $(INSTALLED_BUILT_FILES) +@@ -190,7 +190,6 @@ install-icu: $(INSTALLED_BUILT_FILES) $(INSTALL_SCRIPT) $(top_srcdir)/install-sh $(DESTDIR)$(pkgdatadir)/install-sh @$(MKINSTALLDIRS) $(DESTDIR)$(libdir)/pkgconfig $(INSTALL_DATA) $(ALL_PKGCONFIG_FILES) $(DESTDIR)$(libdir)/pkgconfig/ - $(INSTALL_DATA) $(top_srcdir)/../LICENSE $(DESTDIR)$(pkgdatadir)/LICENSE + ifeq ($(INSTALL_ICU_CONFIG),true) $(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config - $(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc - $(INSTALL_DATA) $(top_builddir)/config/pkgdata.inc $(DESTDIR)$(pkglibdir)/pkgdata.inc + endif diff --git a/libs/icu/patches/001-change_optimization_option.patch b/libs/icu/patches/001-change_optimization_option.patch new file mode 100644 index 00000000..6914a070 --- /dev/null +++ b/libs/icu/patches/001-change_optimization_option.patch @@ -0,0 +1,13 @@ +--- a/runConfigureICU ++++ b/runConfigureICU +@@ -239,8 +239,8 @@ + THE_COMP="the GNU C++" + CC=gcc; export CC + CXX=g++; export CXX +- RELEASE_CFLAGS='-O3' +- RELEASE_CXXFLAGS='-O3' ++ RELEASE_CFLAGS=' ' ++ RELEASE_CXXFLAGS=' ' + DEBUG_CFLAGS='-g' + DEBUG_CXXFLAGS='-g' + ;; diff --git a/libs/icu/patches/010-ICU-20877-i18n-Don-t-use-C-11-math.patch b/libs/icu/patches/010-ICU-20877-i18n-Don-t-use-C-11-math.patch new file mode 100644 index 00000000..38cb669d --- /dev/null +++ b/libs/icu/patches/010-ICU-20877-i18n-Don-t-use-C-11-math.patch @@ -0,0 +1,40 @@ +From 8fda72f6d8e442c5382f21cdd884e2c962bb53bd Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Wed, 11 Dec 2019 13:25:32 -0800 +Subject: [PATCH] ICU-20877 i18n: Don't use C++11 math + +It's not available with some libc implementations. Specifically, +BIONIC and uClibc-ng. uprv_ variants are available. + +Signed-off-by: Rosen Penev +--- + i18n/decimfmt.cpp | 2 +- + i18n/number_decimalquantity.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/i18n/decimfmt.cpp b/i18n/decimfmt.cpp +index 4015250e273..0cbaca7e099 100644 +--- a/i18n/decimfmt.cpp ++++ b/i18n/decimfmt.cpp +@@ -1801,7 +1801,7 @@ bool DecimalFormat::fastFormatDouble(double input, UnicodeString& output) const + return false; + } + if (std::isnan(input) +- || std::trunc(input) != input ++ || uprv_trunc(input) != input + || input <= INT32_MIN + || input > INT32_MAX) { + return false; +diff --git a/i18n/number_decimalquantity.cpp b/i18n/number_decimalquantity.cpp +index abbc23de032..778feb141b4 100644 +--- a/i18n/number_decimalquantity.cpp ++++ b/i18n/number_decimalquantity.cpp +@@ -452,7 +452,7 @@ void DecimalQuantity::_setToDoubleFast(double n) { + for (; i <= -22; i += 22) n /= 1e22; + n /= DOUBLE_MULTIPLIERS[-i]; + } +- auto result = static_cast(std::round(n)); ++ auto result = static_cast(uprv_round(n)); + if (result != 0) { + _setToLong(result); + scale -= fracLength;