diff --git a/dev-libs/icu/icu-60.1.recipe b/dev-libs/icu/icu-60.1.recipe index 3156dd2c7..b49076453 100644 --- a/dev-libs/icu/icu-60.1.recipe +++ b/dev-libs/icu/icu-60.1.recipe @@ -51,7 +51,7 @@ CHECKSUM_SHA256_3="bbb920c6e67de8d9dcc0f0ec5554870170d0cb5eff6f0bc9881efc605f682 SOURCE_DIR="icu" PATCHES="icu-$portVersion.patchset" -ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64 ?arm sparc" +ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64 ?arm sparc" # leave inactive until full testing can be done SECONDARY_ARCHITECTURES="?x86" diff --git a/dev-libs/icu/icu-64.2.recipe b/dev-libs/icu/icu-64.2.recipe new file mode 100644 index 000000000..a0073c9ce --- /dev/null +++ b/dev-libs/icu/icu-64.2.recipe @@ -0,0 +1,184 @@ +SUMMARY="Libraries to support Unicode and globalization" +SUMMARY_devel="The ICU development files" +DESCRIPTION="International Components for Unicode (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. +ICU is released under a nonrestrictive open source license that is suitable \ +for use with both commercial software and with other open source or free \ +software. + +Here are a few highlights of the services provided by ICU: + +* Code Page Conversion: Convert text data to or from Unicode and nearly any \ +other character set or encoding. ICU's conversion tables are based on charset \ +data collected by IBM over the course of many decades, and is the most \ +complete available anywhere. +* Collation: Compare strings according to the conventions and standards of a \ +particular language, region or country. ICU's collation is based on the \ +Unicode Collation Algorithm plus locale-specific comparison rules from the \ +Common Locale Data Repository, a comprehensive source for this type of data. +* Formatting: Format numbers, dates, times and currency amounts according the \ +conventions of a chosen locale. This includes translating month and day names \ +into the selected language, choosing appropriate abbreviations, ordering \ +fields correctly, etc. This data also comes from the Common Locale Data \ +Repository. +* Time Calculations: Multiple types of calendars are provided beyond the \ +traditional Gregorian calendar. A thorough set of timezone calculation APIs \ +are provided. +* Unicode Support: ICU closely tracks the Unicode standard, providing easy \ +access to all of the many Unicode character properties, Unicode Normalization, \ +Case Folding and other fundamental operations as specified by the Unicode \ +Standard. +* Regular Expression: ICU's regular expressions fully support Unicode while \ +providing very competitive performance. +* Bidi: support for handling text containing a mixture of left to right \ +(English) and right to left (Arabic or Hebrew) data. +* Text Boundaries: Locate the positions of words, sentences, paragraphs within \ +a range of text, or identify locations that would be suitable for line \ +wrapping when displaying the text." +HOMEPAGE="http://www.icu-project.org" +COPYRIGHT="1995-2019 IBM Corporation and others." +LICENSE="ICU" +REVISION="1" +SOURCE_URI="https://ssl.icu-project.org/files/icu4c/$portVersion/icu4c-64_2-src.tgz" +SOURCE_URI_2="http://www.iana.org/time-zones/repository/releases/tzdata2019c.tar.gz#noarchive" +SOURCE_URI_3="https://ssl.icu-project.org/files/icu4c/$portVersion/icu4c-64_2-data.zip#noarchive" +CHECKSUM_SHA256="627d5d8478e6d96fc8c90fed4851239079a561a6a8b9e48b0892f24e82d31d6c" +CHECKSUM_SHA256_2="79c7806dab09072308da0e3d22c37d3b245015a591891ea147d3b133b60ffc7c" +CHECKSUM_SHA256_3="fba0e89f5b3f285d722a83317647bffee69b6f1eb8d067d5da03c5677c45e510" +SOURCE_DIR="icu" +PATCHES="icu-$portVersion.patchset" + +ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64 ?arm ?sparc" +# leave inactive until full testing can be done +SECONDARY_ARCHITECTURES="?x86" + +PROVIDES=" + icu$secondaryArchSuffix = $portVersion compat >= 60 + lib:libicudata$secondaryArchSuffix = $portVersion compat >= 60 + lib:libicui18n$secondaryArchSuffix = $portVersion compat >= 60 + lib:libicuio$secondaryArchSuffix = $portVersion compat >= 60 + lib:libicutest$secondaryArchSuffix = $portVersion compat >= 60 + lib:libicutu$secondaryArchSuffix = $portVersion compat >= 60 + lib:libicuuc$secondaryArchSuffix = $portVersion compat >= 60 + " +REQUIRES=" + haiku$secondaryArchSuffix + " + +PROVIDES_devel=" + icu${secondaryArchSuffix}_devel = $portVersion + cmd:icu_config${secondaryArchSuffix} = $portVersion compat >= 60 + devel:libicudata${secondaryArchSuffix} = $portVersion compat >= 60 + devel:libicui18n${secondaryArchSuffix} = $portVersion compat >= 60 + devel:libicuio${secondaryArchSuffix} = $portVersion compat >= 60 + devel:libicutest${secondaryArchSuffix} = $portVersion compat >= 60 + devel:libicutu${secondaryArchSuffix} = $portVersion compat >= 60 + devel:libicuuc${secondaryArchSuffix} = $portVersion compat >= 60 + " +REQUIRES_devel=" + icu${secondaryArchSuffix} == $portVersion base + " + +if [ -z "$secondaryArchSuffix" ]; then + SUMMARY_tools="The ICU support tools" + PROVIDES_tools=" + icu_tools = $portVersion + cmd:derb + cmd:escapesrc + cmd:genbrk + cmd:genccode + cmd:gencfu + cmd:gencmn + cmd:gencnval + cmd:gendict + cmd:gennorm2 + cmd:genrb + cmd:gensprep + cmd:icuinfo + cmd:icupkg + cmd:makeconv + cmd:pkgdata + " + REQUIRES_tools=" + icu == $portVersion base + haiku + " +fi + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + " +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:awk + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:python3 + cmd:sed + cmd:unzip + cmd:tar + cmd:gunzip + " + +BUILD() +{ + cd source + + # Created during build and prevent rebuilds. + rm -rf tools/tzcode/vanguard + + cp ../../../sources-2/tzdata*.tar.gz tools/tzcode/ + unzip -oq ../../../sources-3/icu4c-*-data.zip + rm -f data/in/icudt??l.dat + autoconf + runConfigure ./configure \ + --disable-samples --disable-extras --with-data-packaging=archive + make $jobArgs +} + +INSTALL() +{ + cd source + make install + + + prepareInstalledDevelLibs \ + libicudata \ + libicui18n \ + libicuio \ + libicutest \ + libicutu \ + libicuuc + fixPkgconfig + + # Update icu-config to point to the develop/lib dir + fixDevelopLibDirReferences \ + $binDir/icu-config + + # devel package + packageEntries devel \ + $developDir \ + $libDir/icu \ + $binDir/icu-config \ + $manDir/man1/icu-config.1 + + # tools package + if [ -z "$secondaryArchSuffix" ]; then + packageEntries tools \ + $binDir \ + $manDir + else + rm -r $binDir $manDir + fi +} + +TEST() +{ + cd source + make check +} diff --git a/dev-libs/icu/patches/icu-64.2.patchset b/dev-libs/icu/patches/icu-64.2.patchset new file mode 100644 index 000000000..b33d8529b --- /dev/null +++ b/dev-libs/icu/patches/icu-64.2.patchset @@ -0,0 +1,141 @@ +From 5645406365b4822caaa538cf3767f74c0fb1720b Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 20 Sep 2019 14:50:08 +0200 +Subject: Import changes from icu 60.1 patchset. + + +diff --git a/source/common/putilimp.h b/source/common/putilimp.h +index 73defd9..d21cea0 100644 +--- a/source/common/putilimp.h ++++ b/source/common/putilimp.h +@@ -101,7 +101,7 @@ typedef size_t uintptr_t; + #if U_PLATFORM_HAS_WINUWP_API == 0 + # define U_TZSET _tzset + #endif +-#elif U_PLATFORM == U_PF_OS400 ++#elif U_PLATFORM == U_PF_OS400 || defined(__HAIKU__) + /* not defined */ + #else + # define U_TZSET tzset +@@ -139,7 +139,7 @@ typedef size_t uintptr_t; + #if U_PLATFORM_HAS_WINUWP_API == 0 + # define U_TZNAME _tzname + #endif +-#elif U_PLATFORM == U_PF_OS400 ++#elif U_PLATFORM == U_PF_OS400 || defined(__HAIKU__) + /* not defined */ + #else + # define U_TZNAME tzname +diff --git a/source/configure.ac b/source/configure.ac +index 8cd270b..76081c0 100644 +--- a/source/configure.ac ++++ b/source/configure.ac +@@ -311,7 +311,7 @@ if test "$ENABLE_STATIC" = "YES"; then + OLD_LDFLAGS="${LDFLAGS}" + + case "${host}" in +- *-linux*|i*86-*-*bsd*|i*86-pc-gnu) ++ *-linux*|i*86-*-*bsd*|i*86-pc-gnu|*-haiku*) + if test "$GCC" = yes; then + CPPFLAGS="${CPPFLAGS} -ffunction-sections -fdata-sections" + LDFLAGS="${LDFLAGS} -Wl,--gc-sections" +@@ -808,50 +808,12 @@ else + fi + AC_SUBST(U_HAVE_POPEN) + +-AC_CHECK_FUNC(tzset) ++#AC_CHECK_FUNC(tzset) + U_HAVE_TZSET=0 +-if test x$ac_cv_func_tzset = xyes +-then +- U_TZSET=tzset +- U_HAVE_TZSET=1 +-else +- AC_CHECK_FUNC(_tzset) +- if test x$ac_cv_func__tzset = xyes +- then +- U_TZSET=_tzset +- U_HAVE_TZSET=1 +- else +- CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_TZSET=0" +- fi +-fi + AC_SUBST(U_HAVE_TZSET) + AC_SUBST(U_TZSET) + + U_HAVE_TZNAME=0 +-AC_CACHE_CHECK(for tzname,ac_cv_var_tzname, +-[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#ifndef _XOPEN_SOURCE +-#define _XOPEN_SOURCE +-#endif +-#include +-#include +-#ifndef tzname /* For SGI. */ +-extern char *tzname[]; /* RS6000 and others reject char **tzname. */ +-#endif]], [atoi(*tzname);])],[ac_cv_var_tzname=yes],[ac_cv_var_tzname=no])]) +-if test $ac_cv_var_tzname = yes; then +- U_TZNAME=tzname +- U_HAVE_TZNAME=1 +-else +- AC_CACHE_CHECK(for _tzname,ac_cv_var__tzname, +- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include +- #include +- extern char *_tzname[];]], [atoi(*_tzname);])],[ac_cv_var__tzname=yes],[ac_cv_var__tzname=no])]) +- if test $ac_cv_var__tzname = yes; then +- U_TZNAME=_tzname +- U_HAVE_TZNAME=1 +- else +- CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_TZNAME=0" +- fi +-fi + AC_SUBST(U_HAVE_TZNAME) + AC_SUBST(U_TZNAME) + +@@ -1277,6 +1239,7 @@ case "${host}" in + *-*-nto*) platform=U_QNX ;; + *-dec-osf*) platform=U_OSF ;; + *-*-beos) platform=U_BEOS ;; ++ *-*-haiku) platform=U_HAIKU ;; + *-*-irix*) platform=U_IRIX ;; + *-ncr-*) platform=U_MPRAS ;; + *) platform=U_UNKNOWN_PLATFORM ;; +diff --git a/source/tools/tzcode/Makefile.in b/source/tools/tzcode/Makefile.in +index 80139f7..51328f1 100644 +--- a/source/tools/tzcode/Makefile.in ++++ b/source/tools/tzcode/Makefile.in +@@ -139,7 +139,7 @@ $(ICUZDUMPTARG): $(srcdir)/icuzdump.cpp + $(LINK.cc) -I$(srcdir) -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/io -pedantic $(srcdir)/icuzdump.cpp $(LIBICUUC) $(LIBICUDT) $(LIBICUI18N) $(LIBICUIO) $(LIBICUTOOLUTIL) -o $@ + + +-$(TDATA): tdatamarker ++$(TDATA) $(XDATA): tdatamarker + + tdatamarker: $(TZDATA) + mkdir $(VANGUARD_DIR) +-- +2.23.0 + + +From 18813bf98d36d39d2648cc9691e4a4d670889225 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 20 Sep 2019 16:03:07 +0200 +Subject: Fix duplicate definition of constant + +This may still be needed but only in the gcc2 version of the patch + +diff --git a/source/config/mh-haiku b/source/config/mh-haiku +index bb814cd..965c949 100644 +--- a/source/config/mh-haiku ++++ b/source/config/mh-haiku +@@ -20,7 +20,7 @@ LIBCPPFLAGS = + THREADSCPPFLAGS = + + # +-CPPFLAGS += -D__STDC_ISO_10646__ -DU_CHARSET_IS_UTF8=1 ++CPPFLAGS += -DU_CHARSET_IS_UTF8=1 + + ## Compiler switch to embed a runtime search path + LD_RPATH= +-- +2.23.0 +