ports/141324: [UPDATE] devel/icu: update to 4.2.1
Andrei V. Lavreniyuk
andy.lavr at reactor-xg.kiev.ua
Wed Dec 9 22:20:04 UTC 2009
The following reply was made to PR ports/141324; it has been noted by GNATS.
From: "Andrei V. Lavreniyuk" <andy.lavr at reactor-xg.kiev.ua>
To: bug-followup at FreeBSD.org, "Mikhail T." <mi at aldan.algebra.com>
Cc:
Subject: Re: ports/141324: [UPDATE] devel/icu: update to 4.2.1
Date: Thu, 10 Dec 2009 00:10:01 +0200
This is a multi-part message in MIME format.
--------------050802080703020207070605
Content-Type: text/plain; charset=KOI8-R; format=flowed
Content-Transfer-Encoding: 7bit
Hi!
This corrected updating of port. Look it.
--
Best regards, Andrei V. Lavreniyuk.
--------------050802080703020207070605
Content-Type: text/plain;
name="update_icu.diff"
Content-Transfer-Encoding: 8bit
Content-Disposition: inline;
filename="update_icu.diff"
diff -ruN icu.bak/Makefile icu/Makefile
--- icu.bak/Makefile 2009-09-15 17:11:00.000000000 +0300
+++ icu/Makefile 2009-12-09 23:58:18.258746326 +0200
@@ -6,8 +6,7 @@
#
PORTNAME= icu
-PORTVERSION= 3.8.1
-PORTREVISION= 2
+PORTVERSION= 4.2.1
CATEGORIES= devel
MASTER_SITES= SF/${PORTNAME}/ICU4C/${PORTVERSION}
DISTNAME= icu4c-${PORTVERSION:S/./_/g}
@@ -25,10 +24,10 @@
GNU_CONFIGURE= yes
CONFIGURE_SCRIPT= runConfigureICU
-CONFIGURE_ARGS+= ${OPSYS}
-CONFIGURE_ARGS+= --enable-shared
-CONFIGURE_ARGS+= --enable-static
-CONFIGURE_ARGS+= --enable-samples=no
+CONFIGURE_ARGS+= ${OPSYS} \
+ --enable-shared \
+ --enable-static \
+ --enable-samples=no
USE_GMAKE= yes
@@ -51,6 +50,14 @@
PLIST_SUB+= ICUMAJOR=${ICUMAJOR} ICUMINOR=1
PLIST_SUB+= ICUVER=${PORTVERSION}
+post-install:
+ # Installing man-pages, which the vendor forgets to do...
+ ${INSTALL_MAN} ${WRKSRC}/config/icu-config.1 \
+ ${MAN1:N*config*:S|^|${WRKSRC}/*/*/|} \
+ ${MAN1PREFIX}/man/man1
+ ${INSTALL_MAN} ${MAN8:S,^,${WRKSRC}/tools/*/,} \
+ ${MAN8PREFIX}/man/man8
+
.include <bsd.port.pre.mk>
.if ${CC:T} == "cc"
@@ -59,7 +66,8 @@
.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}"
+CONFIGURE_ENV+= CFLAGS+="${CFLAGS}" \
+ CXXFLAGS+="${CXXFLAGS}"
.if defined(WITHOUT_THREADS)
CONFIGURE_ARGS+= --enable-threads=no
@@ -78,6 +86,6 @@
./${.TARGET}
.endif
-post-build test: iotest cintltst intltest
+post-build test regression-test: iotest cintltst intltest
.include <bsd.port.post.mk>
diff -ruN icu.bak/distinfo icu/distinfo
--- icu.bak/distinfo 2008-02-07 00:00:00.000000000 +0200
+++ icu/distinfo 2009-12-09 10:56:17.000000000 +0200
@@ -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_2_1-src.tgz) = e3738abd0d3ce1870dc1fd1f22bba5b1
+SHA256 (icu4c-4_2_1-src.tgz) = 814de31e1413df945cdd34939b424c4cf7a94d1c481f2d44c99c8ca52b288063
+SIZE (icu4c-4_2_1-src.tgz) = 13161131
diff -ruN icu.bak/files/patch-CVE-2007-4770 icu/files/patch-CVE-2007-4770
--- icu.bak/files/patch-CVE-2007-4770 2008-02-18 00:00:00.000000000 +0200
+++ icu/files/patch-CVE-2007-4770 1970-01-01 03:00:00.000000000 +0300
@@ -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 -ruN icu.bak/files/patch-Makefile.in icu/files/patch-Makefile.in
--- icu.bak/files/patch-Makefile.in 1970-01-01 03:00:00.000000000 +0300
+++ icu/files/patch-Makefile.in 2009-12-09 14:34:25.000000000 +0200
@@ -0,0 +1,10 @@
+--- Makefile.in 2009-07-01 21:51:26.000000000 +0300
++++ Makefile.in 2009-12-09 13:25:16.000000000 +0200
+@@ -130,7 +130,6 @@
+ @$(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
+ $(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
+ $(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc
diff -ruN icu.bak/files/patch-cc-flags icu/files/patch-cc-flags
--- icu.bak/files/patch-cc-flags 2005-10-20 00:00:00.000000000 +0300
+++ icu/files/patch-cc-flags 1970-01-01 03:00:00.000000000 +0300
@@ -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 -ruN icu.bak/files/patch-format icu/files/patch-format
--- icu.bak/files/patch-format 2009-03-25 00:00:00.000000000 +0200
+++ icu/files/patch-format 1970-01-01 03:00:00.000000000 +0300
@@ -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 at 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 at calendar=gregorian",
- "DATE=RELATIVE_SHORT",
-- "RELATIVE_MILLIS=0", // one day before now
-+ "RELATIVE_MILLIS=0", // today
- "Today"
- },
-@@ -73,5 +76,5 @@
- "en_US at 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 at 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 at calendar=gregorian",
- "DATE=RELATIVE_SHORT",
-- "RELATIVE_MILLIS=0", // one day before now
-+ "RELATIVE_MILLIS=0", // today
- "Illum"
- },
-@@ -91,5 +94,5 @@
- "mt_MT at 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 -ruN icu.bak/files/patch-install icu/files/patch-install
--- icu.bak/files/patch-install 2008-02-07 00:00:00.000000000 +0200
+++ icu/files/patch-install 1970-01-01 03:00:00.000000000 +0300
@@ -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 -ruN icu.bak/files/patch-putil icu/files/patch-putil
--- icu.bak/files/patch-putil 2008-02-07 00:00:00.000000000 +0200
+++ icu/files/patch-putil 1970-01-01 03:00:00.000000000 +0300
@@ -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 -ruN icu.bak/files/patch-regexcmp.cpp icu/files/patch-regexcmp.cpp
--- icu.bak/files/patch-regexcmp.cpp 1970-01-01 03:00:00.000000000 +0300
+++ icu/files/patch-regexcmp.cpp 2009-12-09 14:33:31.000000000 +0200
@@ -0,0 +1,32 @@
+--- i18n/regexcmp.cpp 2009-07-01 21:50:10.000000000 +0300
++++ i18n/regexcmp.cpp 2009-12-09 13:32:52.000000000 +0200
+@@ -1264,17 +1264,19 @@
+ // Because capture groups can be forward-referenced by back-references,
+ // 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);
+- } else {
+- op = URX_BUILD(URX_BACKREF, groupNum);
++ if (groupNum < 1) {
++ error(U_REGEX_INVALID_BACK_REF);
++ } else {
++ 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);
+ }
+- fRXPat->fCompiledPat->addElement(op, *fStatus);
+- }
+- break;
+-
++ }
++ break;
+
+ case doPossessivePlus:
+ // Possessive ++ quantifier.
diff -ruN icu.bak/files/patch-runConfigureICU icu/files/patch-runConfigureICU
--- icu.bak/files/patch-runConfigureICU 1970-01-01 03:00:00.000000000 +0300
+++ icu/files/patch-runConfigureICU 2009-12-09 14:34:04.000000000 +0200
@@ -0,0 +1,32 @@
+--- runConfigureICU 2009-07-01 21:51:26.000000000 +0300
++++ runConfigureICU 2009-12-09 13:27:11.000000000 +0200
+@@ -254,10 +254,10 @@
+ RELEASE_CXXFLAGS='-O2'
+ ;;
+ *BSD)
+- THE_OS="BSD"
+- THE_COMP="the GNU C++"
+- CC=gcc; export CC
+- CXX=g++; export CXX
++ THE_OS="$platform"
++ CC=${CC:=cc}; export CC
++ CXX=${CXX:=c++}; export CXX
++ THE_COMP="`$CC -v | fgrep -i ver`" # works with icc and gcc at least
+ ;;
+ TRU64V5.1/CXX)
+ THE_OS="OSF1"
+@@ -302,14 +302,6 @@
+
+ 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
+ CFLAGS="$CFLAGS $RELEASE_CFLAGS"
diff -ruN icu.bak/pkg-plist icu/pkg-plist
--- icu.bak/pkg-plist 2008-02-07 00:00:00.000000000 +0200
+++ icu/pkg-plist 2009-12-09 23:47:44.000000000 +0200
@@ -1,5 +1,6 @@
bin/derb
bin/genbrk
+bin/gencfu
bin/gencnval
bin/genctd
bin/genrb
@@ -7,12 +8,6 @@
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
@@ -25,16 +20,22 @@
include/layout/ParagraphLayout.h
include/layout/RunArrays.h
include/layout/loengine.h
- at dirrm include/layout
+include/layout/playout.h
+include/layout/plruns.h
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,8 +43,12 @@
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
@@ -55,9 +60,12 @@
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/putil.h
include/unicode/pwin32.h
@@ -72,11 +80,16 @@
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 +104,7 @@
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 +143,7 @@
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
@@ -146,42 +161,51 @@
include/unicode/utypes.h
include/unicode/uversion.h
include/unicode/vtzone.h
- at dirrm include/unicode
lib/icu/%%ICUVER%%/Makefile.inc
-lib/icu/current
+lib/icu/%%ICUVER%%/pkgdata.inc
lib/icu/Makefile.inc
-lib/libsicudata.a
-lib/libicudata.so.%%ICUMAJOR%%.%%ICUMINOR%%
+lib/icu/current
+lib/icu/pkgdata.inc
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/libicudata.so.%%ICUMAJOR%%.%%ICUMINOR%%
lib/libicui18n.so
lib/libicui18n.so.%%ICUMAJOR%%
-lib/libsicule.a
-lib/libicule.so.%%ICUMAJOR%%.%%ICUMINOR%%
+lib/libicui18n.so.%%ICUMAJOR%%.%%ICUMINOR%%
+lib/libicuio.so
+lib/libicuio.so.%%ICUMAJOR%%
+lib/libicuio.so.%%ICUMAJOR%%.%%ICUMINOR%%
lib/libicule.so
lib/libicule.so.%%ICUMAJOR%%
-lib/libsiculx.a
-lib/libiculx.so.%%ICUMAJOR%%.%%ICUMINOR%%
+lib/libicule.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/libiculx.so.%%ICUMAJOR%%.%%ICUMINOR%%
lib/libicutu.so
+lib/libicutu.so.%%ICUMAJOR%%
+lib/libicutu.so.%%ICUMAJOR%%.%%ICUMINOR%%
+lib/libicuuc.so
+lib/libicuuc.so.%%ICUMAJOR%%
+lib/libicuuc.so.%%ICUMAJOR%%.%%ICUMINOR%%
+lib/libsicudata.a
+lib/libsicui18n.a
+lib/libsicuio.a
+lib/libsicule.a
+lib/libsiculx.a
+lib/libsicutu.a
+lib/libsicuuc.a
+sbin/genccode
+sbin/gencmn
+sbin/gensprep
+sbin/genuca
+sbin/icupkg
%%DATADIR%%/%%ICUVER%%/config/mh-bsd-gcc
-%%DATADIR%%/%%ICUVER%%/mkinstalldirs
%%DATADIR%%/%%ICUVER%%/license.html
+%%DATADIR%%/%%ICUVER%%/mkinstalldirs
@dirrm %%DATADIR%%/%%ICUVER%%/config
- at dirrm %%DATADIR%%/%%ICUVER%%
+ at dirrm %%DATADIR%%/%%ICUVER%%
@dirrm %%DATADIR%%
- at dirrm lib/icu/%%ICUVER%%
+ at dirrm lib/icu/%%ICUVER%%
@dirrm lib/icu
+ at dirrm include/unicode
+ at dirrm include/layout
--------------050802080703020207070605--
More information about the freebsd-ports-bugs
mailing list