aboutsummaryrefslogtreecommitdiff
path: root/devel/icu4
diff options
context:
space:
mode:
authorMikhail Teterin <mi@FreeBSD.org>2009-12-20 01:45:43 +0000
committerMikhail Teterin <mi@FreeBSD.org>2009-12-20 01:45:43 +0000
commit42046fc0f4a761fd559f4a1f6f89647175093989 (patch)
tree1ce4fdaaeab92da044bdcad1c05613328ce82d39 /devel/icu4
parenta4653df0c2725f64fd29c663eed8145c8f0d9980 (diff)
downloadports-42046fc0f4a761fd559f4a1f6f89647175093989.tar.gz
ports-42046fc0f4a761fd559f4a1f6f89647175093989.zip
Upgrade (after repo-copy) to 4.3.3 (a.k.a. 4.4M3). The devel/icu will
remain at 3.x for the time being. 4.3.3 is not an official release (of those the latest is 4.2.1), but the third "milestone". By the time icu-users update to use this port, the 4.4 should be released by developers. PR: ports/141324 ports/127499 Testing helped by: delphij
Notes
Notes: svn path=/head/; revision=246273
Diffstat (limited to 'devel/icu4')
-rw-r--r--devel/icu4/Makefile29
-rw-r--r--devel/icu4/distinfo6
-rw-r--r--devel/icu4/files/patch-CVE-2007-4770304
-rw-r--r--devel/icu4/files/patch-format210
-rw-r--r--devel/icu4/files/patch-putil9
-rw-r--r--devel/icu4/pkg-descr1
-rw-r--r--devel/icu4/pkg-plist29
7 files changed, 43 insertions, 545 deletions
diff --git a/devel/icu4/Makefile b/devel/icu4/Makefile
index 84bdfe5d63e9..2c2bc859a968 100644
--- a/devel/icu4/Makefile
+++ b/devel/icu4/Makefile
@@ -6,10 +6,9 @@
#
PORTNAME= icu
-PORTVERSION= 3.8.1
-PORTREVISION= 2
+PORTVERSION= 4.3.3
CATEGORIES= devel
-MASTER_SITES= SF/${PORTNAME}/ICU4C/${PORTVERSION}
+MASTER_SITES= http://download.icu-project.org/files/icu4c/${PORTVERSION}/
DISTNAME= icu4c-${PORTVERSION:S/./_/g}
EXTRACT_SUFX= -src.tgz
@@ -17,11 +16,11 @@ MAINTAINER= mi@aldan.algebra.com
COMMENT= International Components for Unicode (from IBM)
OPTIONS= THREADS "Build thread-safe version of the library" on
-CONFLICTS= icu2-[0-9]*
+CONFLICTS= icu2-[0-9]* icu3-[0-9]
-USE_LDCONFIG= yes
+USE_LDCONFIG= yes
-WRKSRC= ${WRKDIR}/icu/source
+WRKSRC= ${WRKDIR}/icu/source
GNU_CONFIGURE= yes
CONFIGURE_SCRIPT= runConfigureICU
@@ -29,8 +28,11 @@ CONFIGURE_ARGS+= ${OPSYS}
CONFIGURE_ARGS+= --enable-shared
CONFIGURE_ARGS+= --enable-static
CONFIGURE_ARGS+= --enable-samples=no
+CONFIGURE_ARGS+= --mandir=${MANPREFIX}/man
+MAKE_JOBS_SAFE= yes
USE_GMAKE= yes
+INSTALL_TARGET= install install-manx
MAN1+= derb.1
MAN1+= genbrk.1
@@ -48,19 +50,11 @@ MAN8+= gensprep.8
MAN8+= genuca.8
ICUMAJOR= ${PORTVERSION:S/.//:R}
-PLIST_SUB+= ICUMAJOR=${ICUMAJOR} ICUMINOR=1
+PLIST_SUB+= ICUMAJOR=${ICUMAJOR} ICUMINOR=${PORTVERSION:E}
PLIST_SUB+= ICUVER=${PORTVERSION}
.include <bsd.port.pre.mk>
-.if ${CC:T} == "cc"
-CFLAGS:= ${CFLAGS:N-funroll-loops:N-O*:N-*strict-aliasing} -O2 -fno-strict-aliasing
-.endif
-.if ${CXX:T} == "c++"
-CXXFLAGS:= ${CXXFLAGS:N-funroll-loops:N-O*:N-*strict-aliasing} -O2 -fno-strict-aliasing
-.endif
-CONFIGURE_ENV+= CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}"
-
.if defined(WITHOUT_THREADS)
CONFIGURE_ARGS+= --enable-threads=no
.else
@@ -71,13 +65,12 @@ post-patch:
.endif
iotest cintltst intltest:
-.if ${ARCH} == "amd64" || ${ARCH} == "i386"
+ # Performing the ${.TARGET} test
-${GMAKE} -C ${WRKSRC}/test
cd ${WRKSRC}/test/${.TARGET} && ${SETENV} \
LD_LIBRARY_PATH=${WRKSRC}/lib:${WRKSRC}/tools/ctestfw \
./${.TARGET}
-.endif
-post-build test: iotest cintltst intltest
+post-build test regression-test: iotest cintltst intltest
.include <bsd.port.post.mk>
diff --git a/devel/icu4/distinfo b/devel/icu4/distinfo
index 0f8fe7c770f0..9c20bcce2a43 100644
--- a/devel/icu4/distinfo
+++ b/devel/icu4/distinfo
@@ -1,3 +1,3 @@
-MD5 (icu4c-3_8_1-src.tgz) = a827dbc9d909febd4ec39b90386868ba
-SHA256 (icu4c-3_8_1-src.tgz) = 16dda09dff3f770e629313a4c50a82fee88baf87d89a3bb2a28806be07766cee
-SIZE (icu4c-3_8_1-src.tgz) = 10998841
+MD5 (icu4c-4_3_3-src.tgz) = 69b1fdaa7c7ea720673f322a5e07fe8f
+SHA256 (icu4c-4_3_3-src.tgz) = 6c961f29e90c2e490e51cdb4f74475d9901b4258f4521679cb2a4468c5917508
+SIZE (icu4c-4_3_3-src.tgz) = 15799640
diff --git a/devel/icu4/files/patch-CVE-2007-4770 b/devel/icu4/files/patch-CVE-2007-4770
deleted file mode 100644
index 7d6cdf43766d..000000000000
--- a/devel/icu4/files/patch-CVE-2007-4770
+++ /dev/null
@@ -1,304 +0,0 @@
-Index: /icu/branches/maint/maint-3-8/source/i18n/regexcmp.cpp
-===================================================================
---- i18n/regexcmp.cpp (revision 21805)
-+++ i18n/regexcmp.cpp (revision 23292)
-@@ -3,5 +3,5 @@
- // file: regexcmp.cpp
- //
--// Copyright (C) 2002-2007 International Business Machines Corporation and others.
-+// Copyright (C) 2002-2008 International Business Machines Corporation and others.
- // All Rights Reserved.
- //
-@@ -1187,12 +1187,15 @@
- // we fill the operand with the capture group number. At the end
- // of compilation, it will be changed to the variable's location.
-- U_ASSERT(groupNum > 0);
-- int32_t op;
-- if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-- op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ if (groupNum < 1) {
-+ error(U_REGEX_INVALID_BACK_REF);
- } else {
-- op = URX_BUILD(URX_BACKREF, groupNum);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ int32_t op;
-+ if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-+ op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ } else {
-+ op = URX_BUILD(URX_BACKREF, groupNum);
-+ }
-+ fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ }
- }
- break;
-Index: /icu/branches/maint/maint-3-8/source/i18n/rematch.cpp
-===================================================================
---- i18n/rematch.cpp (revision 21973)
-+++ i18n/rematch.cpp (revision 23292)
-@@ -1,5 +1,5 @@
- /*
- **************************************************************************
--* Copyright (C) 2002-2007 International Business Machines Corporation *
-+* Copyright (C) 2002-2008 International Business Machines Corporation *
- * and others. All rights reserved. *
- **************************************************************************
-@@ -30,4 +30,13 @@
-
- U_NAMESPACE_BEGIN
-+
-+// Limit the size of the back track stack, to avoid system failures caused
-+// by heap exhaustion. Units are in 32 bit words, not bytes.
-+// This value puts ICU's limits higher than most other regexp implementations,
-+// which use recursion rather than the heap, and take more storage per
-+// backtrack point.
-+// This constant is _temporary_. Proper API to control the value will added.
-+//
-+static const int32_t BACKTRACK_STACK_CAPACITY = 8000000;
-
- //-----------------------------------------------------------------------------
-@@ -54,6 +63,7 @@
- if (fStack == NULL || fData == NULL) {
- fDeferredStatus = U_MEMORY_ALLOCATION_ERROR;
-- }
--
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
-+ }
- reset(RegexStaticSets::gStaticSets->fEmptyString);
- }
-@@ -79,4 +89,6 @@
- if (fStack == NULL || fData == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
- reset(input);
-@@ -103,4 +115,6 @@
- if (fStack == NULL || fData == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
- reset(RegexStaticSets::gStaticSets->fEmptyString);
-@@ -1015,4 +1029,12 @@
- // push storage for a new frame.
- int32_t *newFP = fStack->reserveBlock(frameSize, status);
-+ if (newFP == NULL) {
-+ // Heap allocation error on attempted stack expansion.
-+ // We need to return a writable stack frame, so just return the
-+ // previous frame. The match operation will stop quickly
-+ // becuase of the error status, after which the frame will never
-+ // be looked at again.
-+ return fp;
-+ }
- fp = (REStackFrame *)(newFP - frameSize); // in case of realloc of stack.
-
-@@ -1030,6 +1052,6 @@
- return (REStackFrame *)newFP;
- }
--
--
-+
-+
- //--------------------------------------------------------------------------------
- //
-@@ -2262,4 +2284,5 @@
-
- if (U_FAILURE(status)) {
-+ isMatch = FALSE;
- break;
- }
-Index: /icu/branches/maint/maint-3-8/source/test/intltest/regextst.h
-===================================================================
---- test/intltest/regextst.h (revision 22001)
-+++ test/intltest/regextst.h (revision 23292)
-@@ -1,5 +1,5 @@
- /********************************************************************
- * COPYRIGHT:
-- * Copyright (c) 2002-2007, International Business Machines Corporation and
-+ * Copyright (c) 2002-2008, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************/
-@@ -31,4 +31,5 @@
- virtual void Errors();
- virtual void PerlTests();
-+ virtual void Bug6149();
-
- // The following functions are internal to the regexp tests.
-Index: /icu/branches/maint/maint-3-8/source/test/intltest/regextst.cpp
-===================================================================
---- test/intltest/regextst.cpp (revision 22057)
-+++ test/intltest/regextst.cpp (revision 23292)
-@@ -1,5 +1,5 @@
- /********************************************************************
- * COPYRIGHT:
-- * Copyright (c) 2002-2007, International Business Machines Corporation and
-+ * Copyright (c) 2002-2008, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************/
-@@ -67,4 +67,8 @@
- if (exec) PerlTests();
- break;
-+ case 7: name = "Bug 6149";
-+ if (exec) Bug6149();
-+ break;
-+
-
-
-@@ -1640,4 +1644,10 @@
- // Ticket 5389
- REGEX_ERR("*c", 1, 1, U_REGEX_RULE_SYNTAX);
-+
-+ // Invalid Back Reference \0
-+ // For ICU 3.8 and earlier
-+ // For ICU versions newer than 3.8, \0 introduces an octal escape.
-+ //
-+ REGEX_ERR("(ab)\\0", 1, 6, U_REGEX_INVALID_BACK_REF);
-
- }
-@@ -2123,4 +2133,24 @@
-
-
-+//--------------------------------------------------------------
-+//
-+// Bug6149 Verify limits to heap expansion for backtrack stack.
-+// Use this pattern,
-+// "(a?){1,}"
-+// The zero-length match will repeat forever.
-+// (That this goes into a loop is another bug)
-+//
-+//---------------------------------------------------------------
-+void RegexTest::Bug6149() {
-+ UnicodeString pattern("(a?){1,}");
-+ UnicodeString s("xyz");
-+ uint32_t flags = 0;
-+ UErrorCode status = U_ZERO_ERROR;
-+
-+ RegexMatcher matcher(pattern, s, flags, status);
-+ UBool result = false;
-+ REGEX_ASSERT_FAIL(result=matcher.matches(status), U_BUFFER_OVERFLOW_ERROR);
-+ REGEX_ASSERT(result == FALSE);
-+ }
-
- #endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS */
-Index: /icu/branches/maint/maint-3-8/source/common/uvectr32.cpp
-===================================================================
---- common/uvectr32.cpp (revision 12958)
-+++ common/uvectr32.cpp (revision 23292)
-@@ -1,5 +1,5 @@
- /*
- ******************************************************************************
--* Copyright (C) 1999-2003, International Business Machines Corporation and *
-+* Copyright (C) 1999-2008, International Business Machines Corporation and *
- * others. All Rights Reserved. *
- ******************************************************************************
-@@ -27,4 +27,5 @@
- count(0),
- capacity(0),
-+ maxCapacity(0),
- elements(NULL)
- {
-@@ -35,4 +36,5 @@
- count(0),
- capacity(0),
-+ maxCapacity(0),
- elements(0)
- {
-@@ -46,4 +48,7 @@
- if (initialCapacity < 1) {
- initialCapacity = DEFUALT_CAPACITY;
-+ }
-+ if (maxCapacity>0 && maxCapacity<initialCapacity) {
-+ initialCapacity = maxCapacity;
- }
- elements = (int32_t *)uprv_malloc(sizeof(int32_t)*initialCapacity);
-@@ -190,19 +195,33 @@
- if (capacity >= minimumCapacity) {
- return TRUE;
-- } else {
-- int32_t newCap = capacity * 2;
-- if (newCap < minimumCapacity) {
-- newCap = minimumCapacity;
-- }
-- int32_t* newElems = (int32_t *)uprv_malloc(sizeof(int32_t)*newCap);
-- if (newElems == 0) {
-- status = U_MEMORY_ALLOCATION_ERROR;
-- return FALSE;
-- }
-- uprv_memcpy(newElems, elements, sizeof(elements[0]) * count);
-- uprv_free(elements);
-- elements = newElems;
-- capacity = newCap;
-- return TRUE;
-+ }
-+ if (maxCapacity>0 && minimumCapacity>maxCapacity) {
-+ status = U_BUFFER_OVERFLOW_ERROR;
-+ return FALSE;
-+ }
-+ int32_t newCap = capacity * 2;
-+ if (newCap < minimumCapacity) {
-+ newCap = minimumCapacity;
-+ }
-+ if (maxCapacity > 0 && newCap > maxCapacity) {
-+ newCap = maxCapacity;
-+ }
-+ int32_t* newElems = (int32_t *)uprv_malloc(sizeof(int32_t)*newCap);
-+ if (newElems == 0) {
-+ status = U_MEMORY_ALLOCATION_ERROR;
-+ return FALSE;
-+ }
-+ uprv_memcpy(newElems, elements, sizeof(elements[0]) * count);
-+ uprv_free(elements);
-+ elements = newElems;
-+ capacity = newCap;
-+ return TRUE;
-+}
-+
-+void UVector32::setMaxCapacity(int32_t limit) {
-+ U_ASSERT(limit >= 0);
-+ maxCapacity = limit;
-+ if (maxCapacity < 0) {
-+ maxCapacity = 0;
- }
- }
-Index: /icu/branches/maint/maint-3-8/source/common/uvectr32.h
-===================================================================
---- common/uvectr32.h (revision 19000)
-+++ common/uvectr32.h (revision 23292)
-@@ -1,5 +1,5 @@
- /*
- **********************************************************************
--* Copyright (C) 1999-2006, International Business Machines
-+* Copyright (C) 1999-2008, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
-@@ -62,4 +62,6 @@
-
- int32_t capacity;
-+
-+ int32_t maxCapacity; // Limit beyond which capacity is not permitted to grow.
-
- int32_t* elements;
-@@ -161,4 +163,12 @@
- */
- int32_t *getBuffer() const;
-+
-+ /**
-+ * Set the maximum allowed buffer capacity for this vector/stack.
-+ * Default with no limit set is unlimited, go until malloc() fails.
-+ * A Limit of zero means unlimited capacity.
-+ * Units are vector elements (32 bits each), not bytes.
-+ */
-+ void setMaxCapacity(int32_t limit);
-
- /**
-@@ -222,5 +232,7 @@
-
- inline int32_t *UVector32::reserveBlock(int32_t size, UErrorCode &status) {
-- ensureCapacity(count+size, status);
-+ if (ensureCapacity(count+size, status) == FALSE) {
-+ return NULL;
-+ }
- int32_t *rp = elements+count;
- count += size;
diff --git a/devel/icu4/files/patch-format b/devel/icu4/files/patch-format
deleted file mode 100644
index 817d4fb1733b..000000000000
--- a/devel/icu4/files/patch-format
+++ /dev/null
@@ -1,210 +0,0 @@
-Fix self-test(s) breaking, when build happens on days with other than
-24-hours (such as when daylight saving time kicks in). See:
-
- http://www.freebsd.org/cgi/query-pr.cgi?pr=128521
- http://www.icu-project.org/trac/ticket/6018
-
-Index: /icu/trunk/source/i18n/calendar.cpp
-===================================================================
---- i18n/calendar.cpp (revision 22978)
-+++ i18n/calendar.cpp (revision 23166)
-@@ -1,5 +1,5 @@
- /*
- *******************************************************************************
--* Copyright (C) 1997-2007, International Business Machines Corporation and *
-+* Copyright (C) 1997-2008, International Business Machines Corporation and *
- * others. All Rights Reserved. *
- *******************************************************************************
-@@ -74,6 +74,12 @@
-
- #if defined( U_DEBUG_CALSVC ) || defined (U_DEBUG_CAL)
-+
-+/**
-+ * fldName was removed as a duplicate implementation.
-+ * use udbg_ services instead,
-+ * which depend on include files and library from ../tools/ctestfw
-+ */
-+#include "unicode/udbgutil.h"
- #include <stdio.h>
--
-
- /**
-@@ -83,12 +89,8 @@
- * @internal
- */
--#error fldName() has been removed. Please use udbg_ucal_fieldName() from libctestfw instead. The following code might work.
--
--static const char* fldName(UCalendarDateFields f) {
-- const char *udbg_ucal_fieldName(int32_t fld);
-- return udbg_ucal_fieldName((int32_t)f);
--}
--
--
-+
-+const char* fldName(UCalendarDateFields f) {
-+ return udbg_enumName(UDBG_UCalendarDateFields, (int32_t)f);
-+}
-
- #if UCAL_DEBUG_DUMP
-Index: /icu/trunk/source/i18n/reldtfmt.cpp
-===================================================================
---- i18n/reldtfmt.cpp (revision 22561)
-+++ i18n/reldtfmt.cpp (revision 23166)
-@@ -1,5 +1,5 @@
- /*
- *******************************************************************************
--* Copyright (C) 2007, International Business Machines Corporation and *
-+* Copyright (C) 2007-2008, International Business Machines Corporation and *
- * others. All Rights Reserved. *
- *******************************************************************************
-@@ -304,8 +304,13 @@
- return 0;
- }
-- // TODO: Cache the nowCal to avoid heap allocs?
-+ // TODO: Cache the nowCal to avoid heap allocs? Would be difficult, don't know the calendar type
- Calendar *nowCal = cal.clone();
- nowCal->setTime(Calendar::getNow(), status);
-- int32_t dayDiff = nowCal->fieldDifference(cal.getTime(status), Calendar::DATE, status);
-+
-+ // For the day difference, we are interested in the difference in the (modified) julian day number
-+ // which is midnight to midnight. Using fieldDifference() is NOT correct here, because
-+ // 6pm Jan 4th to 10am Jan 5th should be considered "tomorrow".
-+ int32_t dayDiff = cal.get(UCAL_JULIAN_DAY, status) - nowCal->get(UCAL_JULIAN_DAY, status);
-+
- delete nowCal;
- return dayDiff;
-Index: /icu/trunk/source/test/intltest/dadrfmt.cpp
-===================================================================
---- test/intltest/dadrfmt.cpp (revision 22493)
-+++ test/intltest/dadrfmt.cpp (revision 23166)
-@@ -1,5 +1,5 @@
- /********************************************************************
- * COPYRIGHT:
-- * Copyright (c) 1997-2007, International Business Machines Corporation and
-+ * Copyright (c) 1997-2008, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************/
-@@ -94,4 +94,5 @@
- UnicodeString kMILLIS("MILLIS="); // TODO: static
- UnicodeString kRELATIVE_MILLIS("RELATIVE_MILLIS="); // TODO: static
-+ UnicodeString kRELATIVE_ADD("RELATIVE_ADD:"); // TODO: static
-
- UErrorCode status = U_ZERO_ERROR;
-@@ -170,5 +171,10 @@
- }
- }
--
-+
-+ Calendar *cal = Calendar::createInstance(loc, status);
-+ if(U_FAILURE(status)) {
-+ errln("case %d: could not create calendar from %s", n, calLoc);
-+ }
-+
- // parse 'date'
- if(date.startsWith(kMILLIS)) {
-@@ -180,4 +186,28 @@
- useDate = TRUE;
- fromDate = udbg_stoi(millis) + now;
-+ } else if(date.startsWith(kRELATIVE_ADD)) {
-+ UnicodeString add = UnicodeString(date, kRELATIVE_ADD.length()); // "add" is a string indicating which fields to add
-+ if(fromSet.parseFrom(add, status)<0 || U_FAILURE(status)) {
-+ errln("case %d: could not parse date as RELATIVE_ADD calendar fields: %s", n, u_errorName(status));
-+ continue;
-+ }
-+ logln("Parsing ..\n");
-+ useDate=TRUE;
-+ cal->clear();
-+ cal->setTime(now, status);
-+ for (int q=0; q<UCAL_FIELD_COUNT; q++) {
-+ if (fromSet.isSet((UCalendarDateFields)q)) {
-+ int32_t oldv = cal->get((UCalendarDateFields)q, status);
-+ cal->add((UCalendarDateFields)q,
-+ fromSet.get((UCalendarDateFields)q), status);
-+ int32_t newv = cal->get((UCalendarDateFields)q, status);
-+ logln("adding %d to %s ..went from %d to %d\n", fromSet.get((UCalendarDateFields)q), udbg_enumName(UDBG_UCalendarDateFields, q), oldv, newv);
-+ }
-+ }
-+ fromDate = cal->getTime(status);
-+ if(U_FAILURE(status)) {
-+ errln("case %d: could not apply date as RELATIVE_ADD calendar fields: %s", n, u_errorName(status));
-+ continue;
-+ }
- } else if(fromSet.parseFrom(date, status)<0 || U_FAILURE(status)) {
- errln("case %d: could not parse date as calendar fields: %s", n, u_errorName(status));
-@@ -185,8 +215,4 @@
- }
-
-- Calendar *cal = Calendar::createInstance(loc, status);
-- if(U_FAILURE(status)) {
-- errln("case %d: could not create calendar from %s", n, calLoc);
-- }
- // now, do it.
- if (fmt) {
-Index: /icu/trunk/source/test/testdata/format.txt
-===================================================================
---- test/testdata/format.txt (revision 22885)
-+++ test/testdata/format.txt (revision 23166)
-@@ -1,3 +1,3 @@
--// Copyright (c) 2007 International Business Machines
-+// Copyright (c) 2007-2008 International Business Machines
- // Corporation and others. All Rights Reserved.
- format:table(nofallback) {
-@@ -23,5 +23,8 @@
- // locale: locale including calendar type
- // spec: either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
-- // date: either 'MILLIS=####' where #### is an unsigned long (millis), or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
-+ // date: either 'MILLIS=####' where #### is millis,
-+ // or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
-+ // or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
-+ // or RELATIVE_ADD:DATE=1 which means that the field "DATE" will be added by +1 relative to current time
- // str: the expected unicode string
- Cases {
-@@ -61,5 +64,5 @@
- "en_US@calendar=gregorian",
- "DATE=RELATIVE_SHORT",
-- "RELATIVE_MILLIS=86410000", // one day from now
-+ "RELATIVE_ADD:DATE=1", // one day from now
- "Tomorrow"
- },
-@@ -67,5 +70,5 @@
- "en_US@calendar=gregorian",
- "DATE=RELATIVE_SHORT",
-- "RELATIVE_MILLIS=0", // one day before now
-+ "RELATIVE_MILLIS=0", // today
- "Today"
- },
-@@ -73,5 +76,5 @@
- "en_US@calendar=gregorian",
- "DATE=RELATIVE_SHORT",
-- "RELATIVE_MILLIS=-86410000", // one day before now
-+ "RELATIVE_ADD:DATE=-1", // one day before now
- "Yesterday"
- },
-@@ -79,5 +82,5 @@
- "mt_MT@calendar=gregorian",
- "DATE=RELATIVE_SHORT",
-- "RELATIVE_MILLIS=86410000", // one day from now
-+ "RELATIVE_ADD:DATE=1", // one day from now
- "Għada"
- },
-@@ -85,5 +88,5 @@
- "mt_MT@calendar=gregorian",
- "DATE=RELATIVE_SHORT",
-- "RELATIVE_MILLIS=0", // one day before now
-+ "RELATIVE_MILLIS=0", // today
- "Illum"
- },
-@@ -91,5 +94,5 @@
- "mt_MT@calendar=gregorian",
- "DATE=RELATIVE_SHORT",
-- "RELATIVE_MILLIS=-86410000", // one day before now
-+ "RELATIVE_ADD:DATE=-1", // one day before now
- "Lbieraħ"
- },
-@@ -97,5 +100,5 @@
- "ru",
- "DATE=RELATIVE_SHORT",
-- "RELATIVE_MILLIS=-172810000", // 2 days ago
-+ "RELATIVE_ADD:DATE=-2", // 2 days ago
- "Позавчера"
- },
diff --git a/devel/icu4/files/patch-putil b/devel/icu4/files/patch-putil
deleted file mode 100644
index f102043ddb96..000000000000
--- a/devel/icu4/files/patch-putil
+++ /dev/null
@@ -1,9 +0,0 @@
---- common/putil.c 2007-12-12 13:57:26.000000000 -0500
-+++ common/putil.c 2008-01-28 13:04:02.000000000 -0500
-@@ -577,5 +577,5 @@
- /* These platforms are likely to use Olson timezone IDs. */
- #define CHECK_LOCALTIME_LINK 1
--#if defined(U_LINUX)
-+#if defined(U_LINUX) || defined(U_BSD)
- #define TZDEFAULT "/etc/localtime"
- #define TZZONEINFO "/usr/share/zoneinfo/"
diff --git a/devel/icu4/pkg-descr b/devel/icu4/pkg-descr
index 917de707e9a0..811b78f1d198 100644
--- a/devel/icu4/pkg-descr
+++ b/devel/icu4/pkg-descr
@@ -5,6 +5,7 @@ normalization, transliteration, etc.).
More information on ICU can be found on the homepage
WWW: http://icu.sourceforge.net/
+WWW: http://site.icu-project.org/
WWW: http://ibm.com/software/globalization/icu
- Bjoern A. Zeeb
diff --git a/devel/icu4/pkg-plist b/devel/icu4/pkg-plist
index 2b9df0bd0602..295c7a827ce9 100644
--- a/devel/icu4/pkg-plist
+++ b/devel/icu4/pkg-plist
@@ -1,5 +1,6 @@
bin/derb
bin/genbrk
+bin/gencfu
bin/gencnval
bin/genctd
bin/genrb
@@ -12,7 +13,6 @@ sbin/gencmn
sbin/gensprep
sbin/genuca
sbin/icupkg
-sbin/icuswap
include/layout/LEFontInstance.h
include/layout/LEGlyphFilter.h
include/layout/LEGlyphStorage.h
@@ -25,16 +25,23 @@ include/layout/LayoutEngine.h
include/layout/ParagraphLayout.h
include/layout/RunArrays.h
include/layout/loengine.h
+include/layout/playout.h
+include/layout/plruns.h
@dirrm include/layout
include/unicode/basictz.h
+include/unicode/bms.h
+include/unicode/bmsearch.h
include/unicode/brkiter.h
+include/unicode/bytestream.h
include/unicode/calendar.h
include/unicode/caniter.h
include/unicode/chariter.h
include/unicode/choicfmt.h
include/unicode/coleitr.h
include/unicode/coll.h
+include/unicode/colldata.h
include/unicode/curramt.h
+include/unicode/currpinf.h
include/unicode/currunit.h
include/unicode/datefmt.h
include/unicode/dbbi.h
@@ -42,23 +49,33 @@ include/unicode/dcfmtsym.h
include/unicode/decimfmt.h
include/unicode/docmain.h
include/unicode/dtfmtsym.h
+include/unicode/dtintrv.h
+include/unicode/dtitvfmt.h
+include/unicode/dtitvinf.h
include/unicode/dtptngen.h
include/unicode/dtrule.h
+include/unicode/errorcode.h
include/unicode/fieldpos.h
include/unicode/fmtable.h
include/unicode/format.h
include/unicode/gregocal.h
+include/unicode/icudataver.h
include/unicode/locid.h
+include/unicode/localpointer.h
include/unicode/measfmt.h
include/unicode/measunit.h
include/unicode/measure.h
include/unicode/msgfmt.h
include/unicode/normlzr.h
include/unicode/numfmt.h
+include/unicode/numsys.h
include/unicode/parseerr.h
include/unicode/parsepos.h
include/unicode/platform.h
+include/unicode/plurfmt.h
+include/unicode/plurrule.h
include/unicode/ppalmos.h
+include/unicode/ptypes.h
include/unicode/putil.h
include/unicode/pwin32.h
include/unicode/rbbi.h
@@ -72,11 +89,16 @@ include/unicode/search.h
include/unicode/simpletz.h
include/unicode/smpdtfmt.h
include/unicode/sortkey.h
+include/unicode/std_string.h
include/unicode/strenum.h
+include/unicode/stringpiece.h
include/unicode/stsearch.h
include/unicode/symtable.h
include/unicode/tblcoll.h
include/unicode/timezone.h
+include/unicode/tmunit.h
+include/unicode/tmutamt.h
+include/unicode/tmutfmt.h
include/unicode/translit.h
include/unicode/tzrule.h
include/unicode/tztrans.h
@@ -91,6 +113,7 @@ include/unicode/uclean.h
include/unicode/ucnv.h
include/unicode/ucnv_cb.h
include/unicode/ucnv_err.h
+include/unicode/ucnvsel.h
include/unicode/ucol.h
include/unicode/ucoleitr.h
include/unicode/uconfig.h
@@ -129,6 +152,7 @@ include/unicode/usearch.h
include/unicode/uset.h
include/unicode/usetiter.h
include/unicode/ushape.h
+include/unicode/uspoof.h
include/unicode/usprep.h
include/unicode/ustdio.h
include/unicode/ustream.h
@@ -145,11 +169,14 @@ include/unicode/utrace.h
include/unicode/utrans.h
include/unicode/utypes.h
include/unicode/uversion.h
+include/unicode/uvernum.h
include/unicode/vtzone.h
@dirrm include/unicode
lib/icu/%%ICUVER%%/Makefile.inc
+lib/icu/%%ICUVER%%/pkgdata.inc
lib/icu/current
lib/icu/Makefile.inc
+lib/icu/pkgdata.inc
lib/libsicudata.a
lib/libicudata.so.%%ICUMAJOR%%.%%ICUMINOR%%
lib/libicudata.so