summaryrefslogtreecommitdiff
path: root/devel/icu4
diff options
context:
space:
mode:
Diffstat (limited to 'devel/icu4')
-rw-r--r--devel/icu4/Makefile81
-rw-r--r--devel/icu4/distinfo3
-rw-r--r--devel/icu4/files/patch-CVE-2007-4770304
-rw-r--r--devel/icu4/files/patch-cc-flags27
-rw-r--r--devel/icu4/files/patch-format210
-rw-r--r--devel/icu4/files/patch-install8
-rw-r--r--devel/icu4/files/patch-putil9
-rw-r--r--devel/icu4/pkg-descr11
-rw-r--r--devel/icu4/pkg-plist187
9 files changed, 0 insertions, 840 deletions
diff --git a/devel/icu4/Makefile b/devel/icu4/Makefile
deleted file mode 100644
index 434a972f0416..000000000000
--- a/devel/icu4/Makefile
+++ /dev/null
@@ -1,81 +0,0 @@
-# New ports collection makefile for: icu
-# Date created: 22 Jan 2001
-# Whom: dwm
-#
-# $FreeBSD$
-#
-
-PORTNAME= icu
-PORTVERSION= 3.8.1
-PORTREVISION= 2
-CATEGORIES= devel
-MASTER_SITES= SF
-DISTNAME= icu4c-${PORTVERSION:S/./_/g}
-EXTRACT_SUFX= -src.tgz
-
-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]*
-
-USE_LDCONFIG= yes
-
-WRKSRC= ${WRKDIR}/icu/source
-
-GNU_CONFIGURE= yes
-CONFIGURE_SCRIPT= runConfigureICU
-CONFIGURE_ARGS+= ${OPSYS}
-CONFIGURE_ARGS+= --enable-shared
-CONFIGURE_ARGS+= --enable-static
-CONFIGURE_ARGS+= --enable-samples=no
-
-USE_GMAKE= yes
-
-MAN1+= derb.1
-MAN1+= genbrk.1
-MAN1+= gencnval.1
-MAN1+= genctd.1
-MAN1+= genrb.1
-MAN1+= icu-config.1
-MAN1+= makeconv.1
-MAN1+= pkgdata.1
-MAN1+= uconv.1
-MAN8+= icupkg.8
-MAN8+= genccode.8
-MAN8+= gencmn.8
-MAN8+= gensprep.8
-MAN8+= genuca.8
-
-ICUMAJOR= ${PORTVERSION:S/.//:R}
-PLIST_SUB+= ICUMAJOR=${ICUMAJOR} ICUMINOR=1
-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
-# This builds thread-safe, but not the thread-using version:
-CONFIGURE_ARGS+= --enable-weak-threads
-post-patch:
- ${REINPLACE_CMD} -e 's,\(THREADSC.*FLAGS\).*,\1=${PTHREAD_CFLAGS},g' ${WRKSRC}/config/mh-bsd-gcc
-.endif
-
-iotest cintltst intltest:
- -${GMAKE} -C ${WRKSRC}/test
- cd ${WRKSRC}/test/${.TARGET} && ${SETENV} \
- LD_LIBRARY_PATH=${WRKSRC}/lib:${WRKSRC}/tools/ctestfw \
- ./${.TARGET}
-
-post-build test: iotest cintltst intltest
-
-.include <bsd.port.post.mk>
diff --git a/devel/icu4/distinfo b/devel/icu4/distinfo
deleted file mode 100644
index 0f8fe7c770f0..000000000000
--- a/devel/icu4/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 (icu4c-3_8_1-src.tgz) = a827dbc9d909febd4ec39b90386868ba
-SHA256 (icu4c-3_8_1-src.tgz) = 16dda09dff3f770e629313a4c50a82fee88baf87d89a3bb2a28806be07766cee
-SIZE (icu4c-3_8_1-src.tgz) = 10998841
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-cc-flags b/devel/icu4/files/patch-cc-flags
deleted file mode 100644
index 7de91a1a6aa6..000000000000
--- a/devel/icu4/files/patch-cc-flags
+++ /dev/null
@@ -1,27 +0,0 @@
---- runConfigureICU Fri Jan 16 17:26:40 2004
-+++ runConfigureICU Mon Nov 15 11:05:50 2004
-@@ -289,7 +289,7 @@
- *BSD)
-- THE_OS="BSD"
-+ THE_OS="$platform"
-- THE_COMP="the GNU C++"
-- CC=gcc; export CC
-- CXX=g++; export CXX
-+ CC=${CC:=cc}; export CC
-+ CXX=${CXX:=c++}; export CXX
-+ THE_COMP="`$CC -v | fgrep -i ver`" # works with icc and gcc at least
- ;;
- QNX)
-@@ -358,12 +358,4 @@
- if test $release -eq 1
- then
-- if test "$RELEASE_CFLAGS" = ""
-- then
-- case $CC in
-- gcc|*/gcc|*-gcc-*|*/*-gcc-*)
-- RELEASE_CFLAGS=-O3
-- ;;
-- esac
-- fi
- if test "$RELEASE_CFLAGS" != ""
- then
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-install b/devel/icu4/files/patch-install
deleted file mode 100644
index 9af0afc80593..000000000000
--- a/devel/icu4/files/patch-install
+++ /dev/null
@@ -1,8 +0,0 @@
---- Makefile.in 2007-12-12 13:58:06.000000000 -0500
-+++ Makefile.in 2008-01-28 15:20:56.000000000 -0500
-@@ -126,5 +126,4 @@
- $(INSTALL_DATA) @platform_make_fragment@ $(DESTDIR)$(pkgdatadir)/config/@platform_make_fragment_name@
- $(INSTALL_SCRIPT) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)/mkinstalldirs
-- $(INSTALL_SCRIPT) $(top_srcdir)/install-sh $(DESTDIR)$(pkgdatadir)/install-sh
- $(INSTALL_DATA) $(top_srcdir)/../license.html $(DESTDIR)$(pkgdatadir)/license.html
- $(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config
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
deleted file mode 100644
index 917de707e9a0..000000000000
--- a/devel/icu4/pkg-descr
+++ /dev/null
@@ -1,11 +0,0 @@
-The International Components for Unicode (ICU) is a C and C++ library
-providing Unicode support (p.ex. character set conversions, locales,
-normalization, transliteration, etc.).
-
-More information on ICU can be found on the homepage
-
-WWW: http://icu.sourceforge.net/
-WWW: http://ibm.com/software/globalization/icu
-
-- Bjoern A. Zeeb
-bzeeb+freebsdports@zabbadoz.net
diff --git a/devel/icu4/pkg-plist b/devel/icu4/pkg-plist
deleted file mode 100644
index 2b9df0bd0602..000000000000
--- a/devel/icu4/pkg-plist
+++ /dev/null
@@ -1,187 +0,0 @@
-bin/derb
-bin/genbrk
-bin/gencnval
-bin/genctd
-bin/genrb
-bin/icu-config
-bin/makeconv
-bin/pkgdata
-bin/uconv
-sbin/genccode
-sbin/gencmn
-sbin/gensprep
-sbin/genuca
-sbin/icupkg
-sbin/icuswap
-include/layout/LEFontInstance.h
-include/layout/LEGlyphFilter.h
-include/layout/LEGlyphStorage.h
-include/layout/LEInsertionList.h
-include/layout/LELanguages.h
-include/layout/LEScripts.h
-include/layout/LESwaps.h
-include/layout/LETypes.h
-include/layout/LayoutEngine.h
-include/layout/ParagraphLayout.h
-include/layout/RunArrays.h
-include/layout/loengine.h
-@dirrm include/layout
-include/unicode/basictz.h
-include/unicode/brkiter.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/curramt.h
-include/unicode/currunit.h
-include/unicode/datefmt.h
-include/unicode/dbbi.h
-include/unicode/dcfmtsym.h
-include/unicode/decimfmt.h
-include/unicode/docmain.h
-include/unicode/dtfmtsym.h
-include/unicode/dtptngen.h
-include/unicode/dtrule.h
-include/unicode/fieldpos.h
-include/unicode/fmtable.h
-include/unicode/format.h
-include/unicode/gregocal.h
-include/unicode/locid.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/parseerr.h
-include/unicode/parsepos.h
-include/unicode/platform.h
-include/unicode/ppalmos.h
-include/unicode/putil.h
-include/unicode/pwin32.h
-include/unicode/rbbi.h
-include/unicode/rbnf.h
-include/unicode/rbtz.h
-include/unicode/regex.h
-include/unicode/rep.h
-include/unicode/resbund.h
-include/unicode/schriter.h
-include/unicode/search.h
-include/unicode/simpletz.h
-include/unicode/smpdtfmt.h
-include/unicode/sortkey.h
-include/unicode/strenum.h
-include/unicode/stsearch.h
-include/unicode/symtable.h
-include/unicode/tblcoll.h
-include/unicode/timezone.h
-include/unicode/translit.h
-include/unicode/tzrule.h
-include/unicode/tztrans.h
-include/unicode/ubidi.h
-include/unicode/ubrk.h
-include/unicode/ucal.h
-include/unicode/ucasemap.h
-include/unicode/ucat.h
-include/unicode/uchar.h
-include/unicode/uchriter.h
-include/unicode/uclean.h
-include/unicode/ucnv.h
-include/unicode/ucnv_cb.h
-include/unicode/ucnv_err.h
-include/unicode/ucol.h
-include/unicode/ucoleitr.h
-include/unicode/uconfig.h
-include/unicode/ucsdet.h
-include/unicode/ucurr.h
-include/unicode/udat.h
-include/unicode/udata.h
-include/unicode/udatpg.h
-include/unicode/udeprctd.h
-include/unicode/udraft.h
-include/unicode/uenum.h
-include/unicode/uidna.h
-include/unicode/uintrnal.h
-include/unicode/uiter.h
-include/unicode/uloc.h
-include/unicode/ulocdata.h
-include/unicode/umachine.h
-include/unicode/umisc.h
-include/unicode/umsg.h
-include/unicode/unifilt.h
-include/unicode/unifunct.h
-include/unicode/unimatch.h
-include/unicode/unirepl.h
-include/unicode/uniset.h
-include/unicode/unistr.h
-include/unicode/unorm.h
-include/unicode/unum.h
-include/unicode/uobject.h
-include/unicode/uobslete.h
-include/unicode/uregex.h
-include/unicode/urename.h
-include/unicode/urep.h
-include/unicode/ures.h
-include/unicode/uscript.h
-include/unicode/usearch.h
-include/unicode/uset.h
-include/unicode/usetiter.h
-include/unicode/ushape.h
-include/unicode/usprep.h
-include/unicode/ustdio.h
-include/unicode/ustream.h
-include/unicode/ustring.h
-include/unicode/usystem.h
-include/unicode/utext.h
-include/unicode/utf.h
-include/unicode/utf16.h
-include/unicode/utf32.h
-include/unicode/utf8.h
-include/unicode/utf_old.h
-include/unicode/utmscale.h
-include/unicode/utrace.h
-include/unicode/utrans.h
-include/unicode/utypes.h
-include/unicode/uversion.h
-include/unicode/vtzone.h
-@dirrm include/unicode
-lib/icu/%%ICUVER%%/Makefile.inc
-lib/icu/current
-lib/icu/Makefile.inc
-lib/libsicudata.a
-lib/libicudata.so.%%ICUMAJOR%%.%%ICUMINOR%%
-lib/libicudata.so
-lib/libicudata.so.%%ICUMAJOR%%
-lib/libsicuuc.a
-lib/libicuuc.so.%%ICUMAJOR%%.%%ICUMINOR%%
-lib/libicuuc.so
-lib/libicuuc.so.%%ICUMAJOR%%
-lib/libsicui18n.a
-lib/libicui18n.so.%%ICUMAJOR%%.%%ICUMINOR%%
-lib/libicui18n.so
-lib/libicui18n.so.%%ICUMAJOR%%
-lib/libsicule.a
-lib/libicule.so.%%ICUMAJOR%%.%%ICUMINOR%%
-lib/libicule.so
-lib/libicule.so.%%ICUMAJOR%%
-lib/libsiculx.a
-lib/libiculx.so.%%ICUMAJOR%%.%%ICUMINOR%%
-lib/libiculx.so
-lib/libiculx.so.%%ICUMAJOR%%
-lib/libsicuio.a
-lib/libicuio.so.%%ICUMAJOR%%.%%ICUMINOR%%
-lib/libicuio.so
-lib/libicuio.so.%%ICUMAJOR%%
-lib/libicutu.so.%%ICUMAJOR%%.%%ICUMINOR%%
-lib/libicutu.so.%%ICUMAJOR%%
-lib/libicutu.so
-%%DATADIR%%/%%ICUVER%%/config/mh-bsd-gcc
-%%DATADIR%%/%%ICUVER%%/mkinstalldirs
-%%DATADIR%%/%%ICUVER%%/license.html
-@dirrm %%DATADIR%%/%%ICUVER%%/config
-@dirrm %%DATADIR%%/%%ICUVER%%
-@dirrm %%DATADIR%%
-@dirrm lib/icu/%%ICUVER%%
-@dirrm lib/icu