2020-06-02 10:34:35 +02:00
|
|
|
# $NetBSD: Makefile,v 1.133 2020/06/02 08:34:35 adam Exp $
|
2000-12-20 19:27:59 +01:00
|
|
|
|
2020-06-02 08:39:03 +02:00
|
|
|
DISTNAME= icu4c-67_1-src
|
2012-02-02 00:53:32 +01:00
|
|
|
PKGNAME= ${DISTNAME:S/4c//:S/-src//:S/_/./g}
|
2000-12-20 19:27:59 +01:00
|
|
|
CATEGORIES= textproc
|
2020-04-12 09:06:43 +02:00
|
|
|
MASTER_SITES= ${MASTER_SITE_GITHUB:=unicode-org/}
|
2003-10-18 14:46:37 +02:00
|
|
|
EXTRACT_SUFX= .tgz
|
2020-04-12 09:06:43 +02:00
|
|
|
GITHUB_PROJECT= icu
|
2020-06-02 08:39:03 +02:00
|
|
|
GITHUB_RELEASE= release-67-1
|
2000-12-20 19:27:59 +01:00
|
|
|
|
2006-03-04 22:28:51 +01:00
|
|
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
2020-04-12 09:06:43 +02:00
|
|
|
HOMEPAGE= http://site.icu-project.org/
|
2003-07-21 19:27:24 +02:00
|
|
|
COMMENT= Robust and full-featured Unicode services
|
2011-03-14 14:46:32 +01:00
|
|
|
LICENSE= mit
|
2000-12-20 19:27:59 +01:00
|
|
|
|
Update from version 3.6nb2 to 4.0.1.
Pkgsrc changes:
o New MASTER_SITE
o Adjust PLIST
o Remove no-longer-needed patches, since corresponding changes
have been adopted upstream
o BUILDLINK_ABI_DEPENDS bumped to >=4.0, since a new shared library
version is installed
o Fixes security vulnerability, ref. below.
Dependent pkgsrc packages will have their revisions bumped shortly
due to the (possibly/probably) changed ABI.
Upstream changes:
4.0.1:
ICU4C 4.0.1 is a maintenance release of ICU4J 4.0. The primary
changes of this release were:
* Updated time zone data to 2008i
* Technical preview of string search implementation using
Boyer-Moore algorithm (#6286). For detail information, please
see the tech note here.
* #5691 Conversion: consistent illegal sequences
* #6435 Bad @stable ICU4.0 tags
* #6597 TestDisplayNamesMeta failure
* #6670 Test failure in format/TimeZoneTest/TestShortZoneIDs
4.0:
Major changes in ICU 4.0 include the following:
* Common Changes
o Unicode 5.1 (#5696)
o Locale Data: ICU uses and supports data from Common
Locale Data Repository (CLDR) 1.6 , which includes many
improvements in quality and quantity of data.
o add/removeLikelySubtags (#6124)
o Charset converter file size improvement (#5987)
o Date Interval Formatting (#6157) Note: Calendar type
supported by this feature is Gregorian only in this
release.
o Improved Plural support
* ICU4C Specific Changes
Additional Calendars
+ Chinese (#4081)
+ Coptic/Ethiopic (#4571)
* ICU4J Specific Changes
o Charset
+ Graduated from Technology Preview status
+ ICU2022 Converter (#5791)
+ HZ Converter (#6128)
+ SCSU/BOCU-1 Converter (#2147)
+ Charset Converter Callback (#6144)
o Thai Dictionary break iterator (#5385)
o JDK TimeZone support (#5975)
o Locale Service Provider (#5976)
o More convenient formatting of year+month, day+month,
and other combinations (#6304)
o Simple Duration Formatting (#6303)
* ICU4C Security Fixes
ICU4C 4.0 resolves the vulnerabilities CVE-2007-4770 and
CVE-2007-4771 which were found in earlier versions of ICU.
The standard ICU tests verify that these have been corrected,
however, the updated versions of the previous tests may be
run by applying the following patch to ICU 4.0: r24324. As
well, ICU4C and ICU4J 4.0 resolve the issue underlying
CVE-2008-1036.
2009-03-25 23:30:19 +01:00
|
|
|
WRKSRC= ${WRKDIR}/icu/source
|
2016-12-08 13:15:43 +01:00
|
|
|
USE_LANGUAGES= c99 c++
|
2020-04-12 09:06:43 +02:00
|
|
|
USE_TOOLS+= gmake pkg-config
|
2017-04-24 23:20:10 +02:00
|
|
|
GCC_REQD+= 4.8
|
2003-06-23 09:49:39 +02:00
|
|
|
TEST_TARGET= check
|
2006-07-26 13:04:37 +02:00
|
|
|
UNLIMIT_RESOURCES+= datasize
|
2010-12-07 18:58:13 +01:00
|
|
|
GNU_CONFIGURE= yes
|
2003-06-23 09:49:39 +02:00
|
|
|
CONFIGURE_ARGS+= --enable-static
|
2010-12-07 18:58:13 +01:00
|
|
|
CONFIGURE_ENV+= U_MAKE=${TOOLS_GMAKE}
|
2000-12-20 19:27:59 +01:00
|
|
|
|
2019-05-04 22:30:34 +02:00
|
|
|
CHECK_SSP_SKIP= lib/libicudata.so*
|
|
|
|
|
2019-12-28 18:23:52 +01:00
|
|
|
PYTHON_FOR_BUILD_ONLY= tool
|
|
|
|
|
2004-04-04 18:58:16 +02:00
|
|
|
.include "../../mk/pthread.buildlink3.mk"
|
2003-12-03 17:52:48 +01:00
|
|
|
|
|
|
|
.if defined(PTHREAD_TYPE) && ${PTHREAD_TYPE} != "native"
|
|
|
|
CONFIGURE_ARGS+= --disable-threads
|
|
|
|
.endif
|
|
|
|
|
2004-04-13 18:39:11 +02:00
|
|
|
.include "../../mk/compiler.mk"
|
|
|
|
|
2014-06-03 11:08:05 +02:00
|
|
|
# from ICU_CHECK_MH_FRAG in source/acinclude.m4
|
|
|
|
.if ${OPSYS} == "SunOS"
|
2016-12-12 18:46:39 +01:00
|
|
|
. if ${PKGSRC_COMPILER:Mclang} || ${PKGSRC_COMPILER:Mgcc}
|
2004-04-06 18:36:00 +02:00
|
|
|
PLIST_SUBST+= MH_NAME=mh-solaris-gcc
|
|
|
|
. else
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-solaris
|
|
|
|
. endif
|
2012-05-08 18:10:38 +02:00
|
|
|
. if !empty(CC_VERSION:Mgcc-4.[6-9].*)
|
|
|
|
BUILDLINK_TRANSFORM+= rm:-D__STDC__=0
|
|
|
|
. endif
|
|
|
|
BUILDLINK_TRANSFORM+= rm:-ansi
|
2014-06-03 11:08:05 +02:00
|
|
|
.elif !empty(MACHINE_PLATFORM:MLinux-*-alpha)
|
|
|
|
. if !empty(CC_VERSION:Mgcc*)
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-alpha-linux-gcc
|
|
|
|
. else
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-alpha-linux-cc
|
|
|
|
. endif
|
|
|
|
.elif !empty(MACHINE_PLATFORM:MLinux-*-powerpc*)
|
|
|
|
. if !empty(CC_VERSION:Mgcc*)
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-linux
|
|
|
|
. else
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-linux-va
|
|
|
|
. endif
|
|
|
|
.elif ${OPSYS} == "Linux" || ${OPSYS} == "GNUkFreeBSD"
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-linux
|
2013-10-04 20:26:29 +02:00
|
|
|
.elif ${OPSYS} == "Cygwin"
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-cygwin
|
2015-08-31 17:26:18 +02:00
|
|
|
.elif !empty(OPSYS:M*BSD*) || ${OPSYS} == "DragonFly" || ${OPSYS} == "Bitrig"
|
2014-06-03 11:08:05 +02:00
|
|
|
PLIST_SUBST+= MH_NAME=mh-bsd-gcc
|
|
|
|
.elif ${OPSYS} == "AIX"
|
|
|
|
. if !empty(CC_VERSION:Mgcc*)
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-aix-gcc
|
|
|
|
. else
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-aix-va
|
|
|
|
. endif
|
|
|
|
.elif ${OPSYS} == "HPUX"
|
|
|
|
. if !empty(CC_VERSION:Mgcc*)
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-hpux-gcc
|
|
|
|
. else
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-hpux-acc
|
|
|
|
. endif
|
|
|
|
.elif ${OPSYS} == "Darwin"
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-darwin
|
|
|
|
.elif ${OPSYS} == "Haiku"
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-haiku
|
|
|
|
.elif ${OPSYS} == "IRIX"
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-irix
|
2014-07-18 12:28:11 +02:00
|
|
|
.elif ${OPSYS} == "Cygwin"
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-cygwin
|
|
|
|
.elif ${OS_VARIANT} == "SCOOSR5"
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-scoosr5
|
2014-06-03 11:08:05 +02:00
|
|
|
.elif ${OPSYS} == "OSF1"
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-alpha-osf
|
|
|
|
.elif ${OPSYS} == "QNX"
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-qnx
|
2004-04-06 18:36:00 +02:00
|
|
|
.else
|
|
|
|
# For unknown systems, set the filename to mh-unknown so that the user
|
|
|
|
# gets a warning about missing files.
|
|
|
|
PLIST_SUBST+= MH_NAME=mh-unknown
|
|
|
|
.endif
|
|
|
|
|
2020-03-18 01:26:28 +01:00
|
|
|
PKGCONFIG_OVERRIDE+= config/icu*.pc
|
2014-06-08 11:08:19 +02:00
|
|
|
PKGCONFIG_OVERRIDE_STAGE= post-build
|
|
|
|
|
2019-05-13 16:55:05 +02:00
|
|
|
# work around ICU-20533 (build failure on big endian machines)
|
|
|
|
post-configure:
|
|
|
|
${MKDIR} ${WRKSRC}/data/out
|
|
|
|
|
2012-04-27 12:54:48 +02:00
|
|
|
# expect builtin gcc atomic functions for gcc>=4.1
|
|
|
|
# (source/common/putilimp.h)
|
|
|
|
.if !empty(CC_VERSION:Mgcc-*) && \
|
|
|
|
(empty(CC_VERSION:Mgcc-4.0*) && empty(CC_VERSION:Mgcc-[0-3].*))
|
|
|
|
. if ${MACHINE_ARCH} == "i386"
|
|
|
|
CFLAGS+= -march=i486
|
|
|
|
. endif
|
|
|
|
.endif
|
|
|
|
|
2013-10-04 20:26:29 +02:00
|
|
|
.if ${OPSYS} == "Cygwin"
|
2017-04-22 22:11:45 +02:00
|
|
|
INSTALL_UNSTRIPPED= yes
|
2014-06-08 11:09:01 +02:00
|
|
|
SO_MAJOR= ${PKGVERSION_NOREV:R}
|
2014-06-08 10:32:10 +02:00
|
|
|
. for l in data i18n io le lx test tu uc
|
|
|
|
GENERATE_PLIST+= ${ECHO} bin/cygicu${l}${SO_MAJOR}.dll;
|
|
|
|
GENERATE_PLIST+= ${ECHO} lib/libicu${l}${SO_MAJOR}.dll.a;
|
|
|
|
. endfor
|
|
|
|
|
2013-10-04 20:26:29 +02:00
|
|
|
post-install:
|
2014-06-08 10:32:10 +02:00
|
|
|
mv ${DESTDIR}${PREFIX}/lib/cygicu*.dll ${DESTDIR}${PREFIX}/bin/
|
|
|
|
. for l in data i18n io le lx test tu uc
|
|
|
|
${LN} -s libicu${l}${SO_MAJOR}.dll.a ${DESTDIR}${PREFIX}/lib/libicu${l}.dll.a
|
|
|
|
. endfor
|
|
|
|
|
|
|
|
SUBST_CLASSES+= icu-config
|
|
|
|
SUBST_STAGE.icu-config= post-install
|
|
|
|
SUBST_FILES.icu-config= ${DESTDIR}${PREFIX}/bin/icu-config
|
|
|
|
SUBST_SED.icu-config+= -e '/^ICUUC_FILE=/ s/libdir/bindir/'
|
|
|
|
SUBST_SED.icu-config+= -e 's/l$${LIBICU}/l$${ICUPREFIX}/g'
|
|
|
|
SUBST_SED.icu-config+= -e '/l$${ICUPREFIX}/ s/$${ICULIBSUFFIX_VERSION}//g'
|
2013-10-04 20:26:29 +02:00
|
|
|
.endif
|
|
|
|
|
Update to 64.1
Changelog:
Common Changes
Unicode 12: 554 new characters, including 4 new scripts and 61 new emoji characters.
CLDR 35
Somali and Javanese data now up to modern level
Cebuano, Hausa, Igbo, and Yoruba data now up to basic level
23 additional measurement units
Many data additions and corrections in many other languages
The following language has been added to ICU: Cebuano
This version of ICU does not yet implement the Indic Grapheme Cluster improvements from CLDR 35.
New Japanese calendar era from 2019: CLDR and ICU include data for testing that can be enabled. (ICU #12973, CLDR #10750)
To enable CLDR new Japanese era placeholder name, set environment variable (and Java system property for ICU4J) ICU_ENABLE_TENTATIVE_ERA=true (This was added in ICU 63).
Support added for Gannen year numbering (using 元 for the first year of an era) in the Japanese locale Japanese-calendar full, long, and medium formats. Gannen year support is also automatically added for other non-numeric formats (those containing other kanji characters such as 年) derived from pattern skeletons unless specifically overridden. (ICU #20441, CLDR #11843, CLDR #11819)
We are planning for an ICU 64.2 update in 2019-April which will add the new Japanese era with its real name.
ICU 64 now uses "rearguard" TZ data. (Recent versions have used "vanguard" data with certain overrides.) (ICU-20398)
ICU data filtering: The ICU4C build accepts an optional filter script that specifies a subset of the data to be built, with whitelists and blacklists for locales and for resource bundle paths. (ICU-10923, design doc)
See this new documentation page: userguide/icu_data/buildtool.md
MessageFormat has new pattern syntax for specifying the style of a date/time argument via a locale-independent skeleton rather than a locale-specific pattern. (ICU-9622)
Date/time skeletons use the same "::" prefix as number skeletons.
Example MessageFormat pattern string: "We close on {closing,date,::MMMMd} at {closing,time,::jm}."
Many formatting APIs can now output a new type of result object which is-a FormattedValue (Java & C++), or convertible to a UFormattedValue (C).
These combine the result strings with easy iteration over FieldPosition metadata.
ICU4C Specific Changes
New C++ class LocaleBuilder for building a Locale from subtags, keywords, and extensions. (ICU-20328)
Parallel to the existing ICU4J ULocale.Builder class.
For C++ MeasureUnit instances, there are now additional factory methods that return units by value, not by pointer-with-ownership. (ICU-20337)
Various Out-Of-Memory (OOM) issues have been fixed. (ticket query)
2019-04-03 02:12:59 +02:00
|
|
|
.include "../../lang/python/tool.mk"
|
2000-12-20 19:27:59 +01:00
|
|
|
.include "../../mk/bsd.pkg.mk"
|