mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-22 19:50:05 +02:00
icu: preliminary recipe for version 64.2.
There is no way this will build for gcc2. Versions of ICU from 59 onwards require and use C++11. This means anything wanting to use the new APIs will not build with gcc2 anymore. Marked as untested for now, still need to investigate: - Why embedding the data in libicudata doesn't work, gcc fails to link the lib, but manually re running the command works? - Migration process to get Haiku to use it on all architectures, and wether to keep an icu57 package around for some time.
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
184
dev-libs/icu/icu-64.2.recipe
Normal file
184
dev-libs/icu/icu-64.2.recipe
Normal file
@@ -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
|
||||
}
|
||||
141
dev-libs/icu/patches/icu-64.2.patchset
Normal file
141
dev-libs/icu/patches/icu-64.2.patchset
Normal file
@@ -0,0 +1,141 @@
|
||||
From 5645406365b4822caaa538cf3767f74c0fb1720b Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
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 <stdlib.h>
|
||||
-#include <time.h>
|
||||
-#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 <stdlib.h>
|
||||
- #include <time.h>
|
||||
- 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 <pulkomandy@pulkomandy.tk>
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user