* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2015-11-02 21:51 Andreas Hüttel
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Hüttel @ 2015-11-02 21:51 UTC (permalink / raw
To: gentoo-commits
commit: 236e3a215901857f964efa457fa6b3c1bf5c6c10
Author: Andreas K. Huettel (dilfridge) <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 2 21:51:34 2015 +0000
Commit: Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Mon Nov 2 21:51:34 2015 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=236e3a21
dev-libs/icu: Remove old
Package-Manager: portage-2.2.23
dev-libs/icu/Manifest | 1 -
dev-libs/icu/files/icu-54.1-CVE-2014-9654.patch | 1105 -----------------------
dev-libs/icu/icu-54.1-r1.ebuild | 135 ---
3 files changed, 1241 deletions(-)
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index 2374fdc..f600c9f 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,2 +1 @@
-DIST icu4c-54_1-src.tgz 25485678 SHA256 d42bc9a8ca6a91c55eb0925c279f49e5b508d51ef26ac9850d9be55de5bb8ab3 SHA512 d54d4cd826e1aef62a574595a04f9fec0a42c4445ed0a166a6bb5c5f3c9f692bf3273756f350233f50b2a1ad32c437dedfeeac96d6dc814d27bfd9159b7a651c WHIRLPOOL 1ae01eb26824ca591ff76ea040f703023f24975ad4177d49b1dd60f7e7f96f60884745d6c6e5e2bdf17fc8e104e97ed814f6c0ca051d1807814e324eb24e94dd
DIST icu4c-55_1-src.tgz 25600847 SHA256 e16b22cbefdd354bec114541f7849a12f8fc2015320ca5282ee4fd787571457b SHA512 21a3eb2c3678cd27b659eed073f8f1bd99c9751291d077820e9a370fd90b7d9b3bf414cc03dec4acb7fa61087e02d04f9f40e91a32c5180c718e2102fbd0cd35 WHIRLPOOL 8c5221c82ee2c8a02beafd0fdf91e0038e49912cc8b05fb7437dd4d0a0204b97ea62c45c2dd9dde0f658620b772d706e795821865c567d2e1eb91f8b83a12c4a
diff --git a/dev-libs/icu/files/icu-54.1-CVE-2014-9654.patch b/dev-libs/icu/files/icu-54.1-CVE-2014-9654.patch
deleted file mode 100644
index db86c92..0000000
--- a/dev-libs/icu/files/icu-54.1-CVE-2014-9654.patch
+++ /dev/null
@@ -1,1105 +0,0 @@
-Index: /icu/trunk/source/common/unicode/utypes.h
-===================================================================
---- /icu/trunk/source/common/unicode/utypes.h (revision 36800)
-+++ /icu/trunk/source/common/unicode/utypes.h (revision 36801)
-@@ -648,4 +648,5 @@
- U_REGEX_TIME_OUT, /**< Maximum allowed match time exceeded */
- U_REGEX_STOPPED_BY_CALLER, /**< Matching operation aborted by user callback fn. */
-+ U_REGEX_PATTERN_TOO_BIG, /**< Pattern exceeds limits on size or complexity. @draft ICU 55 */
- U_REGEX_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for regexp errors */
-
-Index: /icu/trunk/source/common/utypes.c
-===================================================================
---- /icu/trunk/source/common/utypes.c (revision 36800)
-+++ /icu/trunk/source/common/utypes.c (revision 36801)
-@@ -2,5 +2,5 @@
- ******************************************************************************
- *
--* Copyright (C) 1997-2011, International Business Machines
-+* Copyright (C) 1997-2014, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
-@@ -166,5 +166,6 @@
- "U_REGEX_STACK_OVERFLOW",
- "U_REGEX_TIME_OUT",
-- "U_REGEX_STOPPED_BY_CALLER"
-+ "U_REGEX_STOPPED_BY_CALLER",
-+ "U_REGEX_PATTERN_TOO_BIG"
- };
-
-Index: /icu/trunk/source/i18n/regexcmp.cpp
-===================================================================
---- /icu/trunk/source/i18n/regexcmp.cpp (revision 36800)
-+++ /icu/trunk/source/i18n/regexcmp.cpp (revision 36801)
-@@ -305,5 +305,5 @@
- // the position in the compiled pattern.
- //
-- fRXPat->fFrameSize+=RESTACKFRAME_HDRCOUNT;
-+ allocateStackData(RESTACKFRAME_HDRCOUNT);
-
- //
-@@ -371,7 +371,7 @@
- //4 NOP Resreved, will be replaced by a save if there are
- // OR | operators at the top level
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_STATE_SAVE, 2), *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_JMP, 3), *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_FAIL, 0), *fStatus);
-+ appendOp(URX_STATE_SAVE, 2);
-+ appendOp(URX_JMP, 3);
-+ appendOp(URX_FAIL, 0);
-
- // Standard open nonCapture paren action emits the two NOPs and
-@@ -396,5 +396,5 @@
-
- // add the END operation to the compiled pattern.
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_END, 0), *fStatus);
-+ appendOp(URX_END, 0);
-
- // Terminate the pattern compilation state machine.
-@@ -418,5 +418,5 @@
- int32_t op = (int32_t)fRXPat->fCompiledPat->elementAti(savePosition);
- U_ASSERT(URX_TYPE(op) == URX_NOP); // original contents of reserved location
-- op = URX_BUILD(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+1);
-+ op = buildOp(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+1);
- fRXPat->fCompiledPat->setElementAt(op, savePosition);
-
-@@ -424,6 +424,5 @@
- // the JMP will eventually be the location following the ')' for the
- // group. This will be patched in later, when the ')' is encountered.
-- op = URX_BUILD(URX_JMP, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_JMP, 0);
-
- // Push the position of the newly added JMP op onto the parentheses stack.
-@@ -434,5 +433,5 @@
- // for a SAVE in the event that there is yet another '|' following
- // this one.
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-+ appendOp(URX_NOP, 0);
- fParenStack.push(fRXPat->fCompiledPat->size()-1, *fStatus);
- }
-@@ -460,10 +459,8 @@
- {
- fixLiterals();
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-- int32_t varsLoc = fRXPat->fFrameSize; // Reserve three slots in match stack frame.
-- fRXPat->fFrameSize += 3;
-- int32_t cop = URX_BUILD(URX_START_CAPTURE, varsLoc);
-- fRXPat->fCompiledPat->addElement(cop, *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-+ appendOp(URX_NOP, 0);
-+ int32_t varsLoc = allocateStackData(3); // Reserve three slots in match stack frame.
-+ appendOp(URX_START_CAPTURE, varsLoc);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -490,6 +487,6 @@
- {
- fixLiterals();
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-+ appendOp(URX_NOP, 0);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -513,10 +510,8 @@
- {
- fixLiterals();
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-- int32_t varLoc = fRXPat->fDataSize; // Reserve a data location for saving the
-- fRXPat->fDataSize += 1; // state stack ptr.
-- int32_t stoOp = URX_BUILD(URX_STO_SP, varLoc);
-- fRXPat->fCompiledPat->addElement(stoOp, *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-+ appendOp(URX_NOP, 0);
-+ int32_t varLoc = allocateData(1); // Reserve a data location for saving the state stack ptr.
-+ appendOp(URX_STO_SP, varLoc);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -561,24 +556,12 @@
- {
- fixLiterals();
-- int32_t dataLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize += 2;
-- int32_t op = URX_BUILD(URX_LA_START, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+ 2);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_JMP, fRXPat->fCompiledPat->size()+ 3);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_LA_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_BACKTRACK, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_NOP, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ int32_t dataLoc = allocateData(2);
-+ appendOp(URX_LA_START, dataLoc);
-+ appendOp(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+ 2);
-+ appendOp(URX_JMP, fRXPat->fCompiledPat->size()+ 3);
-+ appendOp(URX_LA_END, dataLoc);
-+ appendOp(URX_BACKTRACK, 0);
-+ appendOp(URX_NOP, 0);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -605,14 +588,8 @@
- {
- fixLiterals();
-- int32_t dataLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize += 2;
-- int32_t op = URX_BUILD(URX_LA_START, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_STATE_SAVE, 0); // dest address will be patched later.
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_NOP, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ int32_t dataLoc = allocateData(2);
-+ appendOp(URX_LA_START, dataLoc);
-+ appendOp(URX_STATE_SAVE, 0); // dest address will be patched later.
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -652,21 +629,17 @@
-
- // Allocate data space
-- int32_t dataLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize += 4;
-+ int32_t dataLoc = allocateData(4);
-
- // Emit URX_LB_START
-- int32_t op = URX_BUILD(URX_LB_START, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LB_START, dataLoc);
-
- // Emit URX_LB_CONT
-- op = URX_BUILD(URX_LB_CONT, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- fRXPat->fCompiledPat->addElement(0, *fStatus); // MinMatchLength. To be filled later.
-- fRXPat->fCompiledPat->addElement(0, *fStatus); // MaxMatchLength. To be filled later.
--
-- // Emit the NOP
-- op = URX_BUILD(URX_NOP, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LB_CONT, dataLoc);
-+ appendOp(URX_RESERVED_OP, 0); // MinMatchLength. To be filled later.
-+ appendOp(URX_RESERVED_OP, 0); // MaxMatchLength. To be filled later.
-+
-+ // Emit the NOPs
-+ appendOp(URX_NOP, 0);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -708,22 +681,18 @@
-
- // Allocate data space
-- int32_t dataLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize += 4;
-+ int32_t dataLoc = allocateData(4);
-
- // Emit URX_LB_START
-- int32_t op = URX_BUILD(URX_LB_START, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LB_START, dataLoc);
-
- // Emit URX_LBN_CONT
-- op = URX_BUILD(URX_LBN_CONT, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- fRXPat->fCompiledPat->addElement(0, *fStatus); // MinMatchLength. To be filled later.
-- fRXPat->fCompiledPat->addElement(0, *fStatus); // MaxMatchLength. To be filled later.
-- fRXPat->fCompiledPat->addElement(0, *fStatus); // Continue Loc. To be filled later.
--
-- // Emit the NOP
-- op = URX_BUILD(URX_NOP, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LBN_CONT, dataLoc);
-+ appendOp(URX_RESERVED_OP, 0); // MinMatchLength. To be filled later.
-+ appendOp(URX_RESERVED_OP, 0); // MaxMatchLength. To be filled later.
-+ appendOp(URX_RESERVED_OP, 0); // Continue Loc. To be filled later.
-+
-+ // Emit the NOPs
-+ appendOp(URX_NOP, 0);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -795,10 +764,7 @@
- if (URX_TYPE(repeatedOp) == URX_SETREF) {
- // Emit optimized code for [char set]+
-- int32_t loopOpI = URX_BUILD(URX_LOOP_SR_I, URX_VAL(repeatedOp));
-- fRXPat->fCompiledPat->addElement(loopOpI, *fStatus);
-- frameLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
-- int32_t loopOpC = URX_BUILD(URX_LOOP_C, frameLoc);
-- fRXPat->fCompiledPat->addElement(loopOpC, *fStatus);
-+ appendOp(URX_LOOP_SR_I, URX_VAL(repeatedOp));
-+ frameLoc = allocateStackData(1);
-+ appendOp(URX_LOOP_C, frameLoc);
- break;
- }
-@@ -808,5 +774,5 @@
- URX_TYPE(repeatedOp) == URX_DOTANY_UNIX) {
- // Emit Optimized code for .+ operations.
-- int32_t loopOpI = URX_BUILD(URX_LOOP_DOT_I, 0);
-+ int32_t loopOpI = buildOp(URX_LOOP_DOT_I, 0);
- if (URX_TYPE(repeatedOp) == URX_DOTANY_ALL) {
- // URX_LOOP_DOT_I operand is a flag indicating ". matches any" mode.
-@@ -816,9 +782,7 @@
- loopOpI |= 2;
- }
-- fRXPat->fCompiledPat->addElement(loopOpI, *fStatus);
-- frameLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
-- int32_t loopOpC = URX_BUILD(URX_LOOP_C, frameLoc);
-- fRXPat->fCompiledPat->addElement(loopOpC, *fStatus);
-+ appendOp(loopOpI);
-+ frameLoc = allocateStackData(1);
-+ appendOp(URX_LOOP_C, frameLoc);
- break;
- }
-@@ -834,16 +798,13 @@
- // Emit the code sequence that can handle it.
- insertOp(topLoc);
-- frameLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
--
-- int32_t op = URX_BUILD(URX_STO_INP_LOC, frameLoc);
-+ frameLoc = allocateStackData(1);
-+
-+ int32_t op = buildOp(URX_STO_INP_LOC, frameLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc);
-
-- op = URX_BUILD(URX_JMP_SAV_X, topLoc+1);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_JMP_SAV_X, topLoc+1);
- } else {
- // Simpler code when the repeated body must match something non-empty
-- int32_t jmpOp = URX_BUILD(URX_JMP_SAV, topLoc);
-- fRXPat->fCompiledPat->addElement(jmpOp, *fStatus);
-+ appendOp(URX_JMP_SAV, topLoc);
- }
- }
-@@ -857,6 +818,5 @@
- {
- int32_t topLoc = blockTopLoc(FALSE);
-- int32_t saveStateOp = URX_BUILD(URX_STATE_SAVE, topLoc);
-- fRXPat->fCompiledPat->addElement(saveStateOp, *fStatus);
-+ appendOp(URX_STATE_SAVE, topLoc);
- }
- break;
-@@ -872,5 +832,5 @@
- {
- int32_t saveStateLoc = blockTopLoc(TRUE);
-- int32_t saveStateOp = URX_BUILD(URX_STATE_SAVE, fRXPat->fCompiledPat->size());
-+ int32_t saveStateOp = buildOp(URX_STATE_SAVE, fRXPat->fCompiledPat->size());
- fRXPat->fCompiledPat->setElementAt(saveStateOp, saveStateLoc);
- }
-@@ -891,12 +851,10 @@
- int32_t jmp2_loc = fRXPat->fCompiledPat->size();
-
-- int32_t jmp1_op = URX_BUILD(URX_JMP, jmp2_loc+1);
-+ int32_t jmp1_op = buildOp(URX_JMP, jmp2_loc+1);
- fRXPat->fCompiledPat->setElementAt(jmp1_op, jmp1_loc);
-
-- int32_t jmp2_op = URX_BUILD(URX_JMP, jmp2_loc+2);
-- fRXPat->fCompiledPat->addElement(jmp2_op, *fStatus);
--
-- int32_t save_op = URX_BUILD(URX_STATE_SAVE, jmp1_loc+1);
-- fRXPat->fCompiledPat->addElement(save_op, *fStatus);
-+ appendOp(URX_JMP, jmp2_loc+2);
-+
-+ appendOp(URX_STATE_SAVE, jmp1_loc+1);
- }
- break;
-@@ -938,10 +896,8 @@
- if (URX_TYPE(repeatedOp) == URX_SETREF) {
- // Emit optimized code for a [char set]*
-- int32_t loopOpI = URX_BUILD(URX_LOOP_SR_I, URX_VAL(repeatedOp));
-+ int32_t loopOpI = buildOp(URX_LOOP_SR_I, URX_VAL(repeatedOp));
- fRXPat->fCompiledPat->setElementAt(loopOpI, topLoc);
-- dataLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
-- int32_t loopOpC = URX_BUILD(URX_LOOP_C, dataLoc);
-- fRXPat->fCompiledPat->addElement(loopOpC, *fStatus);
-+ dataLoc = allocateStackData(1);
-+ appendOp(URX_LOOP_C, dataLoc);
- break;
- }
-@@ -951,5 +907,5 @@
- URX_TYPE(repeatedOp) == URX_DOTANY_UNIX) {
- // Emit Optimized code for .* operations.
-- int32_t loopOpI = URX_BUILD(URX_LOOP_DOT_I, 0);
-+ int32_t loopOpI = buildOp(URX_LOOP_DOT_I, 0);
- if (URX_TYPE(repeatedOp) == URX_DOTANY_ALL) {
- // URX_LOOP_DOT_I operand is a flag indicating . matches any mode.
-@@ -960,8 +916,6 @@
- }
- fRXPat->fCompiledPat->setElementAt(loopOpI, topLoc);
-- dataLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
-- int32_t loopOpC = URX_BUILD(URX_LOOP_C, dataLoc);
-- fRXPat->fCompiledPat->addElement(loopOpC, *fStatus);
-+ dataLoc = allocateStackData(1);
-+ appendOp(URX_LOOP_C, dataLoc);
- break;
- }
-@@ -972,5 +926,5 @@
-
- int32_t saveStateLoc = blockTopLoc(TRUE);
-- int32_t jmpOp = URX_BUILD(URX_JMP_SAV, saveStateLoc+1);
-+ int32_t jmpOp = buildOp(URX_JMP_SAV, saveStateLoc+1);
-
- // Check for minimum match length of zero, which requires
-@@ -978,10 +932,9 @@
- if (minMatchLength(saveStateLoc, fRXPat->fCompiledPat->size()-1) == 0) {
- insertOp(saveStateLoc);
-- dataLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
--
-- int32_t op = URX_BUILD(URX_STO_INP_LOC, dataLoc);
-+ dataLoc = allocateStackData(1);
-+
-+ int32_t op = buildOp(URX_STO_INP_LOC, dataLoc);
- fRXPat->fCompiledPat->setElementAt(op, saveStateLoc+1);
-- jmpOp = URX_BUILD(URX_JMP_SAV_X, saveStateLoc+2);
-+ jmpOp = buildOp(URX_JMP_SAV_X, saveStateLoc+2);
- }
-
-@@ -990,10 +943,10 @@
- int32_t continueLoc = fRXPat->fCompiledPat->size()+1;
-
-- // Put together the save state op store it into the compiled code.
-- int32_t saveStateOp = URX_BUILD(URX_STATE_SAVE, continueLoc);
-+ // Put together the save state op and store it into the compiled code.
-+ int32_t saveStateOp = buildOp(URX_STATE_SAVE, continueLoc);
- fRXPat->fCompiledPat->setElementAt(saveStateOp, saveStateLoc);
-
- // Append the URX_JMP_SAV or URX_JMPX operation to the compiled pattern.
-- fRXPat->fCompiledPat->addElement(jmpOp, *fStatus);
-+ appendOp(jmpOp);
- }
- break;
-@@ -1009,8 +962,7 @@
- int32_t jmpLoc = blockTopLoc(TRUE); // loc 1.
- int32_t saveLoc = fRXPat->fCompiledPat->size(); // loc 3.
-- int32_t jmpOp = URX_BUILD(URX_JMP, saveLoc);
-- int32_t stateSaveOp = URX_BUILD(URX_STATE_SAVE, jmpLoc+1);
-+ int32_t jmpOp = buildOp(URX_JMP, saveLoc);
- fRXPat->fCompiledPat->setElementAt(jmpOp, jmpLoc);
-- fRXPat->fCompiledPat->addElement(stateSaveOp, *fStatus);
-+ appendOp(URX_STATE_SAVE, jmpLoc+1);
- }
- break;
-@@ -1085,7 +1037,7 @@
- // First the STO_SP before the start of the loop
- insertOp(topLoc);
-- int32_t varLoc = fRXPat->fDataSize; // Reserve a data location for saving the
-- fRXPat->fDataSize += 1; // state stack ptr.
-- int32_t op = URX_BUILD(URX_STO_SP, varLoc);
-+
-+ int32_t varLoc = allocateData(1); // Reserve a data location for saving the
-+ int32_t op = buildOp(URX_STO_SP, varLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc);
-
-@@ -1096,6 +1048,5 @@
-
- // Then the LD_SP after the end of the loop
-- op = URX_BUILD(URX_LD_SP, varLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LD_SP, varLoc);
- }
-
-@@ -1133,13 +1084,11 @@
- {
- fixLiterals(FALSE);
-- int32_t op;
- if (fModeFlags & UREGEX_DOTALL) {
-- op = URX_BUILD(URX_DOTANY_ALL, 0);
-+ appendOp(URX_DOTANY_ALL, 0);
- } else if (fModeFlags & UREGEX_UNIX_LINES) {
-- op = URX_BUILD(URX_DOTANY_UNIX, 0);
-+ appendOp(URX_DOTANY_UNIX, 0);
- } else {
-- op = URX_BUILD(URX_DOTANY, 0);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_DOTANY, 0);
-+ }
- }
- break;
-@@ -1148,15 +1097,13 @@
- {
- fixLiterals(FALSE);
-- int32_t op = 0;
- if ( (fModeFlags & UREGEX_MULTILINE) == 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) {
-- op = URX_CARET;
-+ appendOp(URX_CARET, 0);
- } else if ((fModeFlags & UREGEX_MULTILINE) != 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) {
-- op = URX_CARET_M;
-+ appendOp(URX_CARET_M, 0);
- } else if ((fModeFlags & UREGEX_MULTILINE) == 0 && (fModeFlags & UREGEX_UNIX_LINES) != 0) {
-- op = URX_CARET; // Only testing true start of input.
-+ appendOp(URX_CARET, 0); // Only testing true start of input.
- } else if ((fModeFlags & UREGEX_MULTILINE) != 0 && (fModeFlags & UREGEX_UNIX_LINES) != 0) {
-- op = URX_CARET_M_UNIX;
-- }
-- fRXPat->fCompiledPat->addElement(URX_BUILD(op, 0), *fStatus);
-+ appendOp(URX_CARET_M_UNIX, 0);
-+ }
- }
- break;
-@@ -1165,15 +1112,13 @@
- {
- fixLiterals(FALSE);
-- int32_t op = 0;
- if ( (fModeFlags & UREGEX_MULTILINE) == 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) {
-- op = URX_DOLLAR;
-+ appendOp(URX_DOLLAR, 0);
- } else if ((fModeFlags & UREGEX_MULTILINE) != 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) {
-- op = URX_DOLLAR_M;
-+ appendOp(URX_DOLLAR_M, 0);
- } else if ((fModeFlags & UREGEX_MULTILINE) == 0 && (fModeFlags & UREGEX_UNIX_LINES) != 0) {
-- op = URX_DOLLAR_D;
-+ appendOp(URX_DOLLAR_D, 0);
- } else if ((fModeFlags & UREGEX_MULTILINE) != 0 && (fModeFlags & UREGEX_UNIX_LINES) != 0) {
-- op = URX_DOLLAR_MD;
-- }
-- fRXPat->fCompiledPat->addElement(URX_BUILD(op, 0), *fStatus);
-+ appendOp(URX_DOLLAR_MD, 0);
-+ }
- }
- break;
-@@ -1181,5 +1126,5 @@
- case doBackslashA:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_CARET, 0), *fStatus);
-+ appendOp(URX_CARET, 0);
- break;
-
-@@ -1193,5 +1138,5 @@
- fixLiterals(FALSE);
- int32_t op = (fModeFlags & UREGEX_UWORD)? URX_BACKSLASH_BU : URX_BACKSLASH_B;
-- fRXPat->fCompiledPat->addElement(URX_BUILD(op, 1), *fStatus);
-+ appendOp(op, 1);
- }
- break;
-@@ -1206,5 +1151,5 @@
- fixLiterals(FALSE);
- int32_t op = (fModeFlags & UREGEX_UWORD)? URX_BACKSLASH_BU : URX_BACKSLASH_B;
-- fRXPat->fCompiledPat->addElement(URX_BUILD(op, 0), *fStatus);
-+ appendOp(op, 0);
- }
- break;
-@@ -1212,44 +1157,40 @@
- case doBackslashD:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKSLASH_D, 1), *fStatus);
-+ appendOp(URX_BACKSLASH_D, 1);
- break;
-
- case doBackslashd:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKSLASH_D, 0), *fStatus);
-+ appendOp(URX_BACKSLASH_D, 0);
- break;
-
- case doBackslashG:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKSLASH_G, 0), *fStatus);
-+ appendOp(URX_BACKSLASH_G, 0);
- break;
-
- case doBackslashS:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(
-- URX_BUILD(URX_STAT_SETREF_N, URX_ISSPACE_SET), *fStatus);
-+ appendOp(URX_STAT_SETREF_N, URX_ISSPACE_SET);
- break;
-
- case doBackslashs:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(
-- URX_BUILD(URX_STATIC_SETREF, URX_ISSPACE_SET), *fStatus);
-+ appendOp(URX_STATIC_SETREF, URX_ISSPACE_SET);
- break;
-
- case doBackslashW:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(
-- URX_BUILD(URX_STAT_SETREF_N, URX_ISWORD_SET), *fStatus);
-+ appendOp(URX_STAT_SETREF_N, URX_ISWORD_SET);
- break;
-
- case doBackslashw:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(
-- URX_BUILD(URX_STATIC_SETREF, URX_ISWORD_SET), *fStatus);
-+ appendOp(URX_STATIC_SETREF, URX_ISWORD_SET);
- break;
-
- case doBackslashX:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKSLASH_X, 0), *fStatus);
-+ appendOp(URX_BACKSLASH_X, 0);
- break;
-
-@@ -1257,10 +1198,10 @@
- case doBackslashZ:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_DOLLAR, 0), *fStatus);
-+ appendOp(URX_DOLLAR, 0);
- break;
-
- case doBackslashz:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKSLASH_Z, 0), *fStatus);
-+ appendOp(URX_BACKSLASH_Z, 0);
- break;
-
-@@ -1322,11 +1263,9 @@
- // and shouldn't enter this code path at all.
- fixLiterals(FALSE);
-- int32_t op;
- if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-- op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ appendOp(URX_BACKREF_I, groupNum);
- } else {
-- op = URX_BUILD(URX_BACKREF, groupNum);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_BACKREF, groupNum);
-+ }
- }
- break;
-@@ -1349,20 +1288,16 @@
- // Emit the STO_SP
- int32_t topLoc = blockTopLoc(TRUE);
-- int32_t stoLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize++; // Reserve the data location for storing save stack ptr.
-- int32_t op = URX_BUILD(URX_STO_SP, stoLoc);
-+ int32_t stoLoc = allocateData(1); // Reserve the data location for storing save stack ptr.
-+ int32_t op = buildOp(URX_STO_SP, stoLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc);
-
- // Emit the STATE_SAVE
-- op = URX_BUILD(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+2);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+2);
-
- // Emit the JMP
-- op = URX_BUILD(URX_JMP, topLoc+1);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_JMP, topLoc+1);
-
- // Emit the LD_SP
-- op = URX_BUILD(URX_LD_SP, stoLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LD_SP, stoLoc);
- }
- break;
-@@ -1384,21 +1319,18 @@
-
- // emit STO_SP loc
-- int32_t stoLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize++; // Reserve the data location for storing save stack ptr.
-- int32_t op = URX_BUILD(URX_STO_SP, stoLoc);
-+ int32_t stoLoc = allocateData(1); // Reserve the data location for storing save stack ptr.
-+ int32_t op = buildOp(URX_STO_SP, stoLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc);
-
- // Emit the SAVE_STATE 5
- int32_t L7 = fRXPat->fCompiledPat->size()+1;
-- op = URX_BUILD(URX_STATE_SAVE, L7);
-+ op = buildOp(URX_STATE_SAVE, L7);
- fRXPat->fCompiledPat->setElementAt(op, topLoc+1);
-
- // Append the JMP operation.
-- op = URX_BUILD(URX_JMP, topLoc+1);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_JMP, topLoc+1);
-
- // Emit the LD_SP loc
-- op = URX_BUILD(URX_LD_SP, stoLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LD_SP, stoLoc);
- }
- break;
-@@ -1419,17 +1351,15 @@
-
- // Emit the STO_SP
-- int32_t stoLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize++; // Reserve the data location for storing save stack ptr.
-- int32_t op = URX_BUILD(URX_STO_SP, stoLoc);
-+ int32_t stoLoc = allocateData(1); // Reserve the data location for storing save stack ptr.
-+ int32_t op = buildOp(URX_STO_SP, stoLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc);
-
- // Emit the SAVE_STATE
- int32_t continueLoc = fRXPat->fCompiledPat->size()+1;
-- op = URX_BUILD(URX_STATE_SAVE, continueLoc);
-+ op = buildOp(URX_STATE_SAVE, continueLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc+1);
-
- // Emit the LD_SP
-- op = URX_BUILD(URX_LD_SP, stoLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LD_SP, stoLoc);
- }
- break;
-@@ -1488,6 +1418,6 @@
- {
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-+ appendOp(URX_NOP, 0);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -1826,5 +1756,4 @@
- //------------------------------------------------------------------------------
- void RegexCompile::fixLiterals(UBool split) {
-- int32_t op = 0; // An op from/for the compiled pattern.
-
- // If no literal characters have been scanned but not yet had code generated
-@@ -1865,21 +1794,21 @@
- if ((fModeFlags & UREGEX_CASE_INSENSITIVE) &&
- u_hasBinaryProperty(lastCodePoint, UCHAR_CASE_SENSITIVE)) {
-- op = URX_BUILD(URX_ONECHAR_I, lastCodePoint);
-+ appendOp(URX_ONECHAR_I, lastCodePoint);
- } else {
-- op = URX_BUILD(URX_ONECHAR, lastCodePoint);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_ONECHAR, lastCodePoint);
-+ }
- } else {
- // Two or more chars, emit a URX_STRING to match them.
-+ if (fLiteralChars.length() > 0x00ffffff || fRXPat->fLiteralText.length() > 0x00ffffff) {
-+ error(U_REGEX_PATTERN_TOO_BIG);
-+ }
- if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-- op = URX_BUILD(URX_STRING_I, fRXPat->fLiteralText.length());
-+ appendOp(URX_STRING_I, fRXPat->fLiteralText.length());
- } else {
- // TODO here: add optimization to split case sensitive strings of length two
- // into two single char ops, for efficiency.
-- op = URX_BUILD(URX_STRING, fRXPat->fLiteralText.length());
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- op = URX_BUILD(URX_STRING_LEN, fLiteralChars.length());
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_STRING, fRXPat->fLiteralText.length());
-+ }
-+ appendOp(URX_STRING_LEN, fLiteralChars.length());
-
- // Add this string into the accumulated strings of the compiled pattern.
-@@ -1891,6 +1820,56 @@
-
-
--
--
-+int32_t RegexCompile::buildOp(int32_t type, int32_t val) {
-+ if (U_FAILURE(*fStatus)) {
-+ return 0;
-+ }
-+ if (type < 0 || type > 255) {
-+ U_ASSERT(FALSE);
-+ error(U_REGEX_INTERNAL_ERROR);
-+ type = URX_RESERVED_OP;
-+ }
-+ if (val > 0x00ffffff) {
-+ U_ASSERT(FALSE);
-+ error(U_REGEX_INTERNAL_ERROR);
-+ val = 0;
-+ }
-+ if (val < 0) {
-+ if (!(type == URX_RESERVED_OP_N || type == URX_RESERVED_OP)) {
-+ U_ASSERT(FALSE);
-+ error(U_REGEX_INTERNAL_ERROR);
-+ return -1;
-+ }
-+ if (URX_TYPE(val) != 0xff) {
-+ U_ASSERT(FALSE);
-+ error(U_REGEX_INTERNAL_ERROR);
-+ return -1;
-+ }
-+ type = URX_RESERVED_OP_N;
-+ }
-+ return (type << 24) | val;
-+}
-+
-+
-+//------------------------------------------------------------------------------
-+//
-+// appendOp() Append a new instruction onto the compiled pattern
-+// Includes error checking, limiting the size of the
-+// pattern to lengths that can be represented in the
-+// 24 bit operand field of an instruction.
-+//
-+//------------------------------------------------------------------------------
-+void RegexCompile::appendOp(int32_t op) {
-+ if (U_FAILURE(*fStatus)) {
-+ return;
-+ }
-+ fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ if ((fRXPat->fCompiledPat->size() > 0x00fffff0) && U_SUCCESS(*fStatus)) {
-+ error(U_REGEX_PATTERN_TOO_BIG);
-+ }
-+}
-+
-+void RegexCompile::appendOp(int32_t type, int32_t val) {
-+ appendOp(buildOp(type, val));
-+}
-
-
-@@ -1908,5 +1887,5 @@
- U_ASSERT(where>0 && where < code->size());
-
-- int32_t nop = URX_BUILD(URX_NOP, 0);
-+ int32_t nop = buildOp(URX_NOP, 0);
- code->insertElementAt(nop, where, *fStatus);
-
-@@ -1929,5 +1908,5 @@
- // needs to be incremented to adjust for the insertion.
- opValue++;
-- op = URX_BUILD(opType, opValue);
-+ op = buildOp(opType, opValue);
- code->setElementAt(op, loc);
- }
-@@ -1953,4 +1932,56 @@
- }
-
-+
-+//------------------------------------------------------------------------------
-+//
-+// allocateData() Allocate storage in the matcher's static data area.
-+// Return the index for the newly allocated data.
-+// The storage won't actually exist until we are running a match
-+// operation, but the storage indexes are inserted into various
-+// opcodes while compiling the pattern.
-+//
-+//------------------------------------------------------------------------------
-+int32_t RegexCompile::allocateData(int32_t size) {
-+ if (U_FAILURE(*fStatus)) {
-+ return 0;
-+ }
-+ if (size <= 0 || size > 0x100 || fRXPat->fDataSize < 0) {
-+ error(U_REGEX_INTERNAL_ERROR);
-+ return 0;
-+ }
-+ int32_t dataIndex = fRXPat->fDataSize;
-+ fRXPat->fDataSize += size;
-+ if (fRXPat->fDataSize >= 0x00fffff0) {
-+ error(U_REGEX_INTERNAL_ERROR);
-+ }
-+ return dataIndex;
-+}
-+
-+
-+//------------------------------------------------------------------------------
-+//
-+// allocateStackData() Allocate space in the back-tracking stack frame.
-+// Return the index for the newly allocated data.
-+// The frame indexes are inserted into various
-+// opcodes while compiling the pattern, meaning that frame
-+// size must be restricted to the size that will fit
-+// as an operand (24 bits).
-+//
-+//------------------------------------------------------------------------------
-+int32_t RegexCompile::allocateStackData(int32_t size) {
-+ if (U_FAILURE(*fStatus)) {
-+ return 0;
-+ }
-+ if (size <= 0 || size > 0x100 || fRXPat->fFrameSize < 0) {
-+ error(U_REGEX_INTERNAL_ERROR);
-+ return 0;
-+ }
-+ int32_t dataIndex = fRXPat->fFrameSize;
-+ fRXPat->fFrameSize += size;
-+ if (fRXPat->fFrameSize >= 0x00fffff0) {
-+ error(U_REGEX_PATTERN_TOO_BIG);
-+ }
-+ return dataIndex;
-+}
-
-
-@@ -1996,5 +2027,5 @@
- }
- if (reserveLoc) {
-- int32_t nop = URX_BUILD(URX_NOP, 0);
-+ int32_t nop = buildOp(URX_NOP, 0);
- fRXPat->fCompiledPat->insertElementAt(nop, theLoc, *fStatus);
- }
-@@ -2071,6 +2102,5 @@
-
- int32_t frameVarLocation = URX_VAL(captureOp);
-- int32_t endCaptureOp = URX_BUILD(URX_END_CAPTURE, frameVarLocation);
-- fRXPat->fCompiledPat->addElement(endCaptureOp, *fStatus);
-+ appendOp(URX_END_CAPTURE, frameVarLocation);
- }
- break;
-@@ -2083,6 +2113,5 @@
- U_ASSERT(URX_TYPE(stoOp) == URX_STO_SP);
- int32_t stoLoc = URX_VAL(stoOp);
-- int32_t ldOp = URX_BUILD(URX_LD_SP, stoLoc);
-- fRXPat->fCompiledPat->addElement(ldOp, *fStatus);
-+ appendOp(URX_LD_SP, stoLoc);
- }
- break;
-@@ -2093,6 +2122,5 @@
- U_ASSERT(URX_TYPE(startOp) == URX_LA_START);
- int32_t dataLoc = URX_VAL(startOp);
-- int32_t op = URX_BUILD(URX_LA_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LA_END, dataLoc);
- }
- break;
-@@ -2104,10 +2132,7 @@
- U_ASSERT(URX_TYPE(startOp) == URX_LA_START);
- int32_t dataLoc = URX_VAL(startOp);
-- int32_t op = URX_BUILD(URX_LA_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- op = URX_BUILD(URX_BACKTRACK, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- op = URX_BUILD(URX_LA_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LA_END, dataLoc);
-+ appendOp(URX_BACKTRACK, 0);
-+ appendOp(URX_LA_END, dataLoc);
-
- // Patch the URX_SAVE near the top of the block.
-@@ -2116,5 +2141,5 @@
- U_ASSERT(URX_TYPE(saveOp) == URX_STATE_SAVE);
- int32_t dest = fRXPat->fCompiledPat->size()-1;
-- saveOp = URX_BUILD(URX_STATE_SAVE, dest);
-+ saveOp = buildOp(URX_STATE_SAVE, dest);
- fRXPat->fCompiledPat->setElementAt(saveOp, fMatchOpenParen);
- }
-@@ -2129,8 +2154,6 @@
- U_ASSERT(URX_TYPE(startOp) == URX_LB_START);
- int32_t dataLoc = URX_VAL(startOp);
-- int32_t op = URX_BUILD(URX_LB_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- op = URX_BUILD(URX_LA_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LB_END, dataLoc);
-+ appendOp(URX_LA_END, dataLoc);
-
- // Determine the min and max bounds for the length of the
-@@ -2168,6 +2191,5 @@
- U_ASSERT(URX_TYPE(startOp) == URX_LB_START);
- int32_t dataLoc = URX_VAL(startOp);
-- int32_t op = URX_BUILD(URX_LBN_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LBN_END, dataLoc);
-
- // Determine the min and max bounds for the length of the
-@@ -2194,5 +2216,5 @@
- // Insert the pattern location to continue at after a successful match
- // as the last operand of the URX_LBN_CONT
-- op = URX_BUILD(URX_RELOC_OPRND, fRXPat->fCompiledPat->size());
-+ int32_t op = buildOp(URX_RELOC_OPRND, fRXPat->fCompiledPat->size());
- fRXPat->fCompiledPat->setElementAt(op, fMatchOpenParen-1);
- }
-@@ -2235,5 +2257,5 @@
- {
- // Set of no elements. Always fails to match.
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKTRACK, 0), *fStatus);
-+ appendOp(URX_BACKTRACK, 0);
- delete theSet;
- }
-@@ -2256,6 +2278,5 @@
- int32_t setNumber = fRXPat->fSets->size();
- fRXPat->fSets->addElement(theSet, *fStatus);
-- int32_t setOp = URX_BUILD(URX_SETREF, setNumber);
-- fRXPat->fCompiledPat->addElement(setOp, *fStatus);
-+ appendOp(URX_SETREF, setNumber);
- }
- }
-@@ -2296,11 +2317,8 @@
- // +1 --> Input index (for breaking non-progressing loops)
- // (Only present if unbounded upper limit on loop)
-- int32_t counterLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
-- if (fIntervalUpper < 0) {
-- fRXPat->fFrameSize++;
-- }
--
-- int32_t op = URX_BUILD(InitOp, counterLoc);
-+ int32_t dataSize = fIntervalUpper < 0 ? 2 : 1;
-+ int32_t counterLoc = allocateStackData(dataSize);
-+
-+ int32_t op = buildOp(InitOp, counterLoc);
- fRXPat->fCompiledPat->setElementAt(op, topOfBlock);
-
-@@ -2310,5 +2328,5 @@
- // position to move.
- int32_t loopEnd = fRXPat->fCompiledPat->size();
-- op = URX_BUILD(URX_RELOC_OPRND, loopEnd);
-+ op = buildOp(URX_RELOC_OPRND, loopEnd);
- fRXPat->fCompiledPat->setElementAt(op, topOfBlock+1);
-
-@@ -2319,6 +2337,5 @@
- // Apend the CTR_LOOP op. The operand is the location of the CTR_INIT op.
- // Goes at end of the block being looped over, so just append to the code so far.
-- op = URX_BUILD(LoopOp, topOfBlock);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(LoopOp, topOfBlock);
-
- if ((fIntervalLow & 0xff000000) != 0 ||
-@@ -2373,5 +2390,5 @@
- int32_t endOfSequenceLoc = fRXPat->fCompiledPat->size()-1
- + fIntervalUpper + (fIntervalUpper-fIntervalLow);
-- int32_t saveOp = URX_BUILD(URX_STATE_SAVE, endOfSequenceLoc);
-+ int32_t saveOp = buildOp(URX_STATE_SAVE, endOfSequenceLoc);
- if (fIntervalLow == 0) {
- insertOp(topOfBlock);
-@@ -2386,11 +2403,8 @@
- int32_t i;
- for (i=1; i<fIntervalUpper; i++ ) {
-- if (i == fIntervalLow) {
-- fRXPat->fCompiledPat->addElement(saveOp, *fStatus);
-- }
-- if (i > fIntervalLow) {
-- fRXPat->fCompiledPat->addElement(saveOp, *fStatus);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ if (i >= fIntervalLow) {
-+ appendOp(saveOp);
-+ }
-+ appendOp(op);
- }
- return TRUE;
-@@ -3612,5 +3626,5 @@
- U_ASSERT(operandAddress>=0 && operandAddress<deltas.size());
- int32_t fixedOperandAddress = operandAddress - deltas.elementAti(operandAddress);
-- op = URX_BUILD(opType, fixedOperandAddress);
-+ op = buildOp(opType, fixedOperandAddress);
- fRXPat->fCompiledPat->setElementAt(op, dst);
- dst++;
-@@ -3627,5 +3641,5 @@
- }
- where = fRXPat->fGroupMap->elementAti(where-1);
-- op = URX_BUILD(opType, where);
-+ op = buildOp(opType, where);
- fRXPat->fCompiledPat->setElementAt(op, dst);
- dst++;
-@@ -3979,5 +3993,5 @@
- //
- // scanNamedChar
-- // Get a UChar32 from a \N{UNICODE CHARACTER NAME} in the pattern.
-+// Get a UChar32 from a \N{UNICODE CHARACTER NAME} in the pattern.
- //
- // The scan position will be at the 'N'. On return
-Index: /icu/trunk/source/i18n/regexcmp.h
-===================================================================
---- /icu/trunk/source/i18n/regexcmp.h (revision 36800)
-+++ /icu/trunk/source/i18n/regexcmp.h (revision 36801)
-@@ -105,4 +105,11 @@
- void insertOp(int32_t where); // Open up a slot for a new op in the
- // generated code at the specified location.
-+ void appendOp(int32_t op); // Append a new op to the compiled pattern.
-+ void appendOp(int32_t type, int32_t val); // Build & append a new op to the compiled pattern.
-+ int32_t buildOp(int32_t type, int32_t val); // Construct a new pcode instruction.
-+ int32_t allocateData(int32_t size); // Allocate space in the matcher data area.
-+ // Return index of the newly allocated data.
-+ int32_t allocateStackData(int32_t size); // Allocate space in the match back-track stack frame.
-+ // Return offset index in the frame.
- int32_t minMatchLength(int32_t start,
- int32_t end);
-Index: /icu/trunk/source/i18n/regeximp.h
-===================================================================
---- /icu/trunk/source/i18n/regeximp.h (revision 36800)
-+++ /icu/trunk/source/i18n/regeximp.h (revision 36801)
-@@ -1,4 +1,4 @@
- //
--// Copyright (C) 2002-2013 International Business Machines Corporation
-+// Copyright (C) 2002-2014 International Business Machines Corporation
- // and others. All rights reserved.
- //
-@@ -242,5 +242,4 @@
- // Convenience macros for assembling and disassembling a compiled operation.
- //
--#define URX_BUILD(type, val) (int32_t)((type << 24) | (val))
- #define URX_TYPE(x) ((uint32_t)(x) >> 24)
- #define URX_VAL(x) ((x) & 0xffffff)
-Index: /icu/trunk/source/test/intltest/regextst.cpp
-===================================================================
---- /icu/trunk/source/test/intltest/regextst.cpp (revision 36800)
-+++ /icu/trunk/source/test/intltest/regextst.cpp (revision 36801)
-@@ -145,4 +145,7 @@
- if (exec) TestBug11049();
- break;
-+ case 25: name = "TestBug11371";
-+ if (exec) TestBug11371();
-+ break;
- default: name = "";
- break; //needed to end loop
-@@ -5368,4 +5371,47 @@
-
-
-+void RegexTest::TestBug11371() {
-+ if (quick) {
-+ logln("Skipping test. Runs in exhuastive mode only.");
-+ return;
-+ }
-+ UErrorCode status = U_ZERO_ERROR;
-+ UnicodeString patternString;
-+
-+ for (int i=0; i<8000000; i++) {
-+ patternString.append(UnicodeString("()"));
-+ }
-+ LocalPointer<RegexPattern> compiledPat(RegexPattern::compile(patternString, 0, status));
-+ if (status != U_REGEX_PATTERN_TOO_BIG) {
-+ errln("File %s, line %d expected status=U_REGEX_PATTERN_TOO_BIG; got %s.",
-+ __FILE__, __LINE__, u_errorName(status));
-+ }
-+
-+ status = U_ZERO_ERROR;
-+ patternString = "(";
-+ for (int i=0; i<20000000; i++) {
-+ patternString.append(UnicodeString("A++"));
-+ }
-+ patternString.append(UnicodeString("){0}B++"));
-+ LocalPointer<RegexPattern> compiledPat2(RegexPattern::compile(patternString, 0, status));
-+ if (status != U_REGEX_PATTERN_TOO_BIG) {
-+ errln("File %s, line %d expected status=U_REGEX_PATTERN_TOO_BIG; got %s.",
-+ __FILE__, __LINE__, u_errorName(status));
-+ }
-+
-+ // Pattern with too much string data, such that string indexes overflow operand data field size
-+ // in compiled instruction.
-+ status = U_ZERO_ERROR;
-+ patternString = "";
-+ while (patternString.length() < 0x00ffffff) {
-+ patternString.append(UnicodeString("stuff and things dont you know, these are a few of my favorite strings\n"));
-+ }
-+ patternString.append(UnicodeString("X? trailing string"));
-+ LocalPointer<RegexPattern> compiledPat3(RegexPattern::compile(patternString, 0, status));
-+ if (status != U_REGEX_PATTERN_TOO_BIG) {
-+ errln("File %s, line %d expected status=U_REGEX_PATTERN_TOO_BIG; got %s.",
-+ __FILE__, __LINE__, u_errorName(status));
-+ }
-+}
-
- #endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS */
-Index: /icu/trunk/source/test/intltest/regextst.h
-===================================================================
---- /icu/trunk/source/test/intltest/regextst.h (revision 36800)
-+++ /icu/trunk/source/test/intltest/regextst.h (revision 36801)
-@@ -51,4 +51,5 @@
- virtual void TestCaseInsensitiveStarters();
- virtual void TestBug11049();
-+ virtual void TestBug11371();
-
- // The following functions are internal to the regexp tests.
diff --git a/dev-libs/icu/icu-54.1-r1.ebuild b/dev-libs/icu/icu-54.1-r1.ebuild
deleted file mode 100644
index 3cf83ef..0000000
--- a/dev-libs/icu/icu-54.1-r1.ebuild
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit eutils flag-o-matic toolchain-funcs autotools multilib-minimal
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="http://www.icu-project.org/"
-SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"
-
-LICENSE="BSD"
-
-SLOT="0/54a"
-
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="debug doc examples static-libs"
-
-DEPEND="
- virtual/pkgconfig
- doc? (
- app-doc/doxygen[dot]
- )
-"
-
-S="${WORKDIR}/${PN}/source"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-src_prepare() {
- local variable
-
- epatch "${FILESDIR}/${PN}-remove-bashisms.patch"
- epatch "${FILESDIR}/${P}-CVE-2014-9654.patch"
- epatch_user
-
- # Disable renaming as it is stupind thing to do
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- $(use_enable debug)
- $(use_enable static-libs static)
- )
-
- multilib_is_native_abi && myeconfargs+=(
- $(use_enable examples samples)
- )
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # icu tries to use clang by default
- tc-export CC CXX
-
- ECONF_SOURCE=${S} \
- econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 VERBOSE="1" check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- dohtml -p api -r doc/html/
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
- dohtml ../readme.html
-}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2016-03-03 19:44 Andreas Hüttel
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Hüttel @ 2016-03-03 19:44 UTC (permalink / raw
To: gentoo-commits
commit: 7bb8a9efebd6b2292734380bf7c0b65520d2efcc
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 3 19:44:00 2016 +0000
Commit: Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Thu Mar 3 19:44:27 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7bb8a9ef
dev-libs/icu: Backport fix for bug 573294
Package-Manager: portage-2.2.27
dev-libs/icu/files/icu-flagparser.patch | 13 +++++++++++++
dev-libs/icu/icu-56.1-r1.ebuild | 1 +
2 files changed, 14 insertions(+)
diff --git a/dev-libs/icu/files/icu-flagparser.patch b/dev-libs/icu/files/icu-flagparser.patch
new file mode 100644
index 0000000..bd64276
--- /dev/null
+++ b/dev-libs/icu/files/icu-flagparser.patch
@@ -0,0 +1,13 @@
+Index: source/tools/toolutil/flagparser.c
+===================================================================
+--- a/source/tools/toolutil/flagparser.c (revision 38080)
++++ b/source/tools/toolutil/flagparser.c (revision 38081)
+@@ -97,7 +97,7 @@
+
+ T_FileStream_close(f);
+
+- if (U_FAILURE(*status)) {
++ if (U_FAILURE(*status) && *status != U_BUFFER_OVERFLOW_ERROR) {
+ return -1;
+ }
+
diff --git a/dev-libs/icu/icu-56.1-r1.ebuild b/dev-libs/icu/icu-56.1-r1.ebuild
index e8a0e2b..3968b3a 100644
--- a/dev-libs/icu/icu-56.1-r1.ebuild
+++ b/dev-libs/icu/icu-56.1-r1.ebuild
@@ -34,6 +34,7 @@ src_prepare() {
local variable
epatch "${FILESDIR}/${PN}-remove-bashisms.patch"
+ epatch "${FILESDIR}/${PN}-flagparser.patch"
epatch_user
# Disable renaming as it is stupind thing to do
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2016-03-25 20:17 Andreas Hüttel
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Hüttel @ 2016-03-25 20:17 UTC (permalink / raw
To: gentoo-commits
commit: d85cd1c43d4de7620f732e428a279cf3e2336fc2
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 25 20:16:39 2016 +0000
Commit: Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri Mar 25 20:16:59 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d85cd1c4
dev-libs/icu: Version bump
Package-Manager: portage-2.2.28
dev-libs/icu/Manifest | 1 +
dev-libs/icu/files/icu-57.1-remove-bashisms.patch | 230 +++++++++++++++++++++
.../files/icu-fix-tests-depending-on-date.patch | 15 --
dev-libs/icu/icu-57.1.ebuild | 140 +++++++++++++
4 files changed, 371 insertions(+), 15 deletions(-)
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index 6dcb7c1..177e24b 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,2 +1,3 @@
DIST icu4c-55_1-src.tgz 25600847 SHA256 e16b22cbefdd354bec114541f7849a12f8fc2015320ca5282ee4fd787571457b SHA512 21a3eb2c3678cd27b659eed073f8f1bd99c9751291d077820e9a370fd90b7d9b3bf414cc03dec4acb7fa61087e02d04f9f40e91a32c5180c718e2102fbd0cd35 WHIRLPOOL 8c5221c82ee2c8a02beafd0fdf91e0038e49912cc8b05fb7437dd4d0a0204b97ea62c45c2dd9dde0f658620b772d706e795821865c567d2e1eb91f8b83a12c4a
DIST icu4c-56_1-src.tgz 25721871 SHA256 3a64e9105c734dcf631c0b3ed60404531bce6c0f5a64bfe1a6402a4cc2314816 SHA512 297fd91ce6c478309ac3d18813f1b3ff39a992584e3bafb79e2e816a516e903af6b86c6318e1104cda0bb29ba7c0414b65c1e83c0ed0e848ce897a06d7678d9a WHIRLPOOL d7ed3a260fb6b8f8a65ae3872c93528528650d85ddef341abeeaf609f6db3f40de2f4856e0629bed4e31c412120263378642941f8c8029d400082ad2017cd28c
+DIST icu4c-57_1-src.tgz 22360664 SHA256 ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581 SHA512 a3c701e9c81622db545bcf93f315c7b13159750f43f009d0aec59ceae3a8e1ccb751826d4b8a7387aca47f38bff2a85816b1a123b07d2bf731558c7b66e47b8a WHIRLPOOL f9107e3019a0d9b4c40b83e6e7ea5277ab7d4317e349d6c5d6731f0b2355811b37a4c12aa8408a3bc0195ffeebdc952b7df709d2fb191ae1044fffadbafc897c
diff --git a/dev-libs/icu/files/icu-57.1-remove-bashisms.patch b/dev-libs/icu/files/icu-57.1-remove-bashisms.patch
new file mode 100644
index 0000000..09c2dd5
--- /dev/null
+++ b/dev-libs/icu/files/icu-57.1-remove-bashisms.patch
@@ -0,0 +1,230 @@
+Index: config/Makefile.inc.in
+===================================================================
+--- a/config/Makefile.inc.in (revision 36912)
++++ b/config/Makefile.inc.in (working copy)
+@@ -125,12 +125,6 @@
+ # with usually. Many applications will want to add $(ICULIBS_I18N) as well.
+ ICULIBS = $(ICULIBS_BASE) $(ICULIBS_I18N) $(ICULIBS_COMMON) $(ICULIBS_DATA)
+
+-# Proper echo newline handling is needed in icu-config
+-ECHO_N=@ICU_ECHO_N@
+-ECHO_C=@ICU_ECHO_C@
+-# Not currently being used but good to have for proper tab handling
+-ECHO_T=@ICU_ECHO_T@
+-
+ ##################################################################
+ ##################################################################
+ #
+Index: config/icu-config-bottom
+===================================================================
+--- a/config/icu-config-bottom (revision 36912)
++++ b/config/icu-config-bottom (working copy)
+@@ -217,73 +217,73 @@
+ ;;
+
+ --cflags)
+- echo $ECHO_N "${CFLAGS} ${ECHO_C}"
++ printf "%s" "${CFLAGS} "
+ ;;
+
+ --cc)
+- echo $ECHO_N "${CC} ${ECHO_C}"
++ printf "%s" "${CC} "
+ ;;
+
+ --cxx)
+- echo $ECHO_N "${CXX} ${ECHO_C}"
++ printf "%s" "${CXX} "
+ ;;
+
+ --cxxflags)
+- echo $ECHO_N "${CXXFLAGS} ${ECHO_C}"
++ printf "%s" "${CXXFLAGS} "
+ ;;
+
+ --cppflags)
+ # Don't echo the -I. - it's unneeded.
+- echo $ECHO_N "${CPPFLAGS} ${ECHO_C}" | sed -e 's/-I. //'
++ printf "%s" "${CPPFLAGS} " | sed -e 's/-I. //'
+ ;;
+
+ --cppflags-searchpath)
+- echo $ECHO_N "-I${prefix}/include ${ECHO_C}"
++ printf "%s" "-I${prefix}/include "
+ ;;
+
+ --cppflags-dynamic)
+- echo $ECHO_N "${SHAREDLIBCPPFLAGS} ${ECHO_C}"
++ printf "%s" "${SHAREDLIBCPPFLAGS} "
+ ;;
+
+ --cxxflags-dynamic)
+- echo $ECHO_N "${SHAREDLIBCXXFLAGS} ${ECHO_C}"
++ printf "%s" "${SHAREDLIBCXXFLAGS} "
+ ;;
+
+ --cflags-dynamic)
+- echo $ECHO_N "${SHAREDLIBCFLAGS} ${ECHO_C}"
++ printf "%s" "${SHAREDLIBCFLAGS} "
+ ;;
+
+ --ldflags-system)
+- echo $ECHO_N "${LIBS} ${ECHO_C}"
++ printf "%s" "${LIBS} "
+ ;;
+
+ --ldflags)
+- echo $ECHO_N "${LDFLAGS} ${ICULIBS} ${ECHO_C}"
++ printf "%s" "${LDFLAGS} ${ICULIBS} "
+ # $RPATH_LDFLAGS
+ ;;
+
+ --ldflags-libsonly)
+- echo $ECHO_N "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} ${ECHO_C}"
++ printf "%s" "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} "
+ ;;
+
+ --ldflags-icuio)
+- echo $ECHO_N " ${ICULIBS_ICUIO} ${ECHO_C}"
++ printf "%s" " ${ICULIBS_ICUIO} "
+ ;;
+
+ --ldflags-obsolete)
+- echo $ECHO_N "${ICULIBS_OBSOLETE} ${ECHO_C}"
++ printf "%s" "${ICULIBS_OBSOLETE} "
+ ;;
+
+ --ldflags-toolutil)
+- echo $ECHO_N " ${ICULIBS_TOOLUTIL} ${ECHO_C}"
++ printf "%s" " ${ICULIBS_TOOLUTIL} "
+ ;;
+
+ --ldflags-layout)
+- echo $ECHO_N "${ICULIBS_LAYOUT} ${ICULIBS_LAYOUTEX} ${ECHO_C}"
++ printf "%s" "${ICULIBS_LAYOUT} ${ICULIBS_LAYOUTEX} "
+ ;;
+
+ --ldflags-searchpath)
+- echo $ECHO_N "-L${libdir} ${ECHO_C}"
++ printf "%s" "-L${libdir} "
+ ;;
+
+ --detect-prefix)
+@@ -319,47 +319,47 @@
+ ;;
+
+ --shared-datadir)
+- echo $ECHO_N "${datadir} ${ECHO_C}"
++ printf "%s" "${datadir} "
+ ;;
+
+ --incfile)
+- echo $ECHO_N "${pkglibdir}/Makefile.inc ${ECHO_C}"
++ printf "%s" "${pkglibdir}/Makefile.inc "
+ ;;
+
+ --incpkgdatafile)
+- echo $ECHO_N "${pkglibdir}/pkgdata.inc ${ECHO_C}"
++ printf "%s" "${pkglibdir}/pkgdata.inc "
+ ;;
+
+ --icudata)
+- echo $ECHO_N "${ICUDATA_NAME} ${ECHO_C}"
++ printf "%s" "${ICUDATA_NAME} "
+ ;;
+
+ --icudata-mode)
+- echo $ECHO_N "${PKGDATA_MODE} ${ECHO_C}"
++ printf "%s" "${PKGDATA_MODE} "
+ ;;
+
+ --icudata-install-dir)
+- echo $ECHO_N "${ICUPKGDATA_DIR} ${ECHO_C}"
++ printf "%s" "${ICUPKGDATA_DIR} "
+ ;;
+
+ --icudatadir)
+- echo $ECHO_N "${ICUDATA_DIR} ${ECHO_C}"
++ printf "%s" "${ICUDATA_DIR} "
+ ;;
+
+ --shlib-c)
+- echo $ECHO_N "${SHLIB_c} ${ECHO_C}"
++ printf "%s" "${SHLIB_c} "
+ ;;
+
+ --shlib-cc)
+- echo $ECHO_N "${SHLIB_cc} ${ECHO_C}"
++ printf "%s" "${SHLIB_cc} "
+ ;;
+
+ --version)
+- echo $ECHO_N $VERSION
++ printf "%s" "$VERSION"
+ ;;
+
+ --unicode-version)
+- echo $ECHO_N $UNICODE_VERSION
++ printf "%s" "$UNICODE_VERSION"
+ ;;
+
+ --host)
+Index: configure.ac
+===================================================================
+--- a/configure.ac (revision 36912)
++++ b/configure.ac (working copy)
+@@ -19,24 +19,6 @@
+ PACKAGE="icu"
+ AC_SUBST(PACKAGE)
+
+-# Use custom echo test for newline option
+-# Current autoconf (2.65) gives incorrect echo newline option
+-# for icu-config
+-# This may be removed later - mow (June 17, 2010)
+-ICU_ECHO_C= ICU_ECHO_N= ICU_ECHO_T=
+-case `/bin/sh -c "echo -n x"` in
+--n*)
+- case `/bin/sh -c "echo 'x\c'"` in
+- *c*) ICU_ECHO_T=' ';; # ECHO_T is single tab character.
+- *) ICU_ECHO_C='\c';;
+- esac;;
+-*)
+- ICU_ECHO_N='-n';;
+-esac
+-AC_SUBST(ICU_ECHO_N)
+-AC_SUBST(ICU_ECHO_C)
+-AC_SUBST(ICU_ECHO_T)
+-
+ AC_MSG_CHECKING(for ICU version numbers)
+
+ # Get the ICU version from uversion.h or other headers
+Index: icudefs.mk.in
+===================================================================
+--- a/icudefs.mk.in (revision 36912)
++++ b/icudefs.mk.in (working copy)
+@@ -155,11 +155,6 @@
+ ENABLE_STATIC = @ENABLE_STATIC@
+ ENABLE_SHARED = @ENABLE_SHARED@
+
+-# Echo w/o newline
+-
+-#ECHO_N = @ICU_ECHO_N@
+-#ECHO_C = @ICU_ECHO_C@
+-
+ # Commands to compile
+ COMPILE.c= $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
+ COMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
+Index: test/hdrtst/Makefile.in
+===================================================================
+--- a/test/hdrtst/Makefile.in (revision 36912)
++++ b/test/hdrtst/Makefile.in (working copy)
+@@ -33,9 +33,6 @@
+ include $(shell icu-config --incfile)
+ DIRS=$(prefix)/include/unicode
+ LDIRS=$(prefix)/include/layout
+-ECHO_T=@ECHO_T@
+-ECHO_C=@ECHO_C@
+-ECHO_N=@ECHO_N@
+
+ all:
+ @echo Please read this Makefile for more information.
diff --git a/dev-libs/icu/files/icu-fix-tests-depending-on-date.patch b/dev-libs/icu/files/icu-fix-tests-depending-on-date.patch
deleted file mode 100644
index 61c286a..0000000
--- a/dev-libs/icu/files/icu-fix-tests-depending-on-date.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-See icu-fix-tests-depending-on-date.patch
-
-Index: icu/source/test/intltest/dtfmttst.cpp
-===================================================================
---- icu.orig/source/test/intltest/dtfmttst.cpp
-+++ icu/source/test/intltest/dtfmttst.cpp
-@@ -1132,7 +1132,7 @@ DateFormatTest::TestTwoDigitYear()
- return;
- }
- parse2DigitYear(fmt, "5/6/17", date(117, UCAL_JUNE, 5));
-- parse2DigitYear(fmt, "4/6/34", date(34, UCAL_JUNE, 4));
-+ parse2DigitYear(fmt, "4/6/34", date(134, UCAL_JUNE, 4));
- }
-
- // -------------------------------------
diff --git a/dev-libs/icu/icu-57.1.ebuild b/dev-libs/icu/icu-57.1.ebuild
new file mode 100644
index 0000000..ac1804e
--- /dev/null
+++ b/dev-libs/icu/icu-57.1.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit eutils flag-o-matic toolchain-funcs autotools multilib-minimal
+
+DESCRIPTION="International Components for Unicode"
+HOMEPAGE="http://www.icu-project.org/"
+SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"
+
+LICENSE="BSD"
+
+SLOT="0/57"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="debug doc examples static-libs"
+
+DEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-doc/doxygen[dot]
+ )
+"
+
+S="${WORKDIR}/${PN}/source"
+
+MULTILIB_CHOST_TOOLS=(
+ /usr/bin/icu-config
+)
+
+PATCHES=(
+ "${FILESDIR}/${PN}-57.1-remove-bashisms.patch"
+)
+
+src_prepare() {
+ # apply patches
+ default
+
+ local variable
+
+ # Disable renaming as it is stupid thing to do
+ sed -i \
+ -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
+ common/unicode/uconfig.h || die
+
+ # Fix linking of icudata
+ sed -i \
+ -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
+ config/mh-linux || die
+
+ # Append doxygen configuration to configure
+ sed -i \
+ -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
+ configure.ac || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # Use C++11
+ append-cxxflags -std=c++11
+
+ if tc-is-cross-compiler; then
+ mkdir "${WORKDIR}"/host || die
+ pushd "${WORKDIR}"/host >/dev/null || die
+
+ CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
+ CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
+ RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
+ "${S}"/configure --disable-renaming --disable-debug \
+ --disable-samples --enable-static || die
+ emake
+
+ popd >/dev/null || die
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --disable-renaming
+ --disable-samples
+ $(use_enable debug)
+ $(use_enable static-libs static)
+ )
+
+ multilib_is_native_abi && myeconfargs+=(
+ $(use_enable examples samples)
+ )
+ tc-is-cross-compiler && myeconfargs+=(
+ --with-cross-build="${WORKDIR}"/host
+ )
+
+ # icu tries to use clang by default
+ tc-export CC CXX
+
+ ECONF_SOURCE=${S} \
+ econf "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ doxygen -u Doxyfile || die
+ doxygen Doxyfile || die
+ fi
+}
+
+multilib_src_test() {
+ # INTLTEST_OPTS: intltest options
+ # -e: Exhaustive testing
+ # -l: Reporting of memory leaks
+ # -v: Increased verbosity
+ # IOTEST_OPTS: iotest options
+ # -e: Exhaustive testing
+ # -v: Increased verbosity
+ # CINTLTST_OPTS: cintltst options
+ # -e: Exhaustive testing
+ # -v: Increased verbosity
+ emake -j1 VERBOSE="1" check
+}
+
+multilib_src_install() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ docinto html
+ dodoc -r doc/html/*
+ fi
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ docinto html
+ dodoc ../readme.html
+}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2016-11-05 20:30 Andreas Hüttel
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Hüttel @ 2016-11-05 20:30 UTC (permalink / raw
To: gentoo-commits
commit: b4293900b8325feb1be4ad127dd4823ed022985d
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 5 19:05:06 2016 +0000
Commit: Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Nov 5 20:27:40 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b4293900
dev-libs/icu: Version bump
Package-Manager: portage-2.3.2
dev-libs/icu/Manifest | 1 +
dev-libs/icu/files/icu-58.1-remove-bashisms.patch | 224 ++++++++++++++++++++++
dev-libs/icu/icu-58.1.ebuild | 140 ++++++++++++++
3 files changed, 365 insertions(+)
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index 7df2adc..2342ef9 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,2 +1,3 @@
DIST icu4c-55_1-src.tgz 25600847 SHA256 e16b22cbefdd354bec114541f7849a12f8fc2015320ca5282ee4fd787571457b SHA512 21a3eb2c3678cd27b659eed073f8f1bd99c9751291d077820e9a370fd90b7d9b3bf414cc03dec4acb7fa61087e02d04f9f40e91a32c5180c718e2102fbd0cd35 WHIRLPOOL 8c5221c82ee2c8a02beafd0fdf91e0038e49912cc8b05fb7437dd4d0a0204b97ea62c45c2dd9dde0f658620b772d706e795821865c567d2e1eb91f8b83a12c4a
DIST icu4c-57_1-src.tgz 22360664 SHA256 ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581 SHA512 a3c701e9c81622db545bcf93f315c7b13159750f43f009d0aec59ceae3a8e1ccb751826d4b8a7387aca47f38bff2a85816b1a123b07d2bf731558c7b66e47b8a WHIRLPOOL f9107e3019a0d9b4c40b83e6e7ea5277ab7d4317e349d6c5d6731f0b2355811b37a4c12aa8408a3bc0195ffeebdc952b7df709d2fb191ae1044fffadbafc897c
+DIST icu4c-58_1-src.tgz 23366443 SHA256 0eb46ba3746a9c2092c8ad347a29b1a1b4941144772d13a88667a7b11ea30309 SHA512 59b2a76834192a35125fda326587e613ef4486152cf0278c6f22568d4ae02c4b2d897efcea2654ef2b11bd1c3154aecd38cb68a70f69430736f343689f94c155 WHIRLPOOL faf2624a83f0d6f874166b328522dc9c89088db2690433ab05e96371722b635b81fd5210c7e87fe8e5df6681e881cf10204832925b448552affe8c2f6c851e37
diff --git a/dev-libs/icu/files/icu-58.1-remove-bashisms.patch b/dev-libs/icu/files/icu-58.1-remove-bashisms.patch
new file mode 100644
index 00000000..ef60ce4
--- /dev/null
+++ b/dev-libs/icu/files/icu-58.1-remove-bashisms.patch
@@ -0,0 +1,224 @@
+diff -ruN a/config/Makefile.inc.in b/config/Makefile.inc.in
+--- a/config/Makefile.inc.in 2016-09-09 23:28:18.000000000 +0200
++++ b/config/Makefile.inc.in 2016-11-05 19:43:07.688466668 +0100
+@@ -124,12 +124,6 @@
+ # with usually. Many applications will want to add $(ICULIBS_I18N) as well.
+ ICULIBS = $(ICULIBS_BASE) $(ICULIBS_I18N) $(ICULIBS_COMMON) $(ICULIBS_DATA)
+
+-# Proper echo newline handling is needed in icu-config
+-ECHO_N=@ICU_ECHO_N@
+-ECHO_C=@ICU_ECHO_C@
+-# Not currently being used but good to have for proper tab handling
+-ECHO_T=@ICU_ECHO_T@
+-
+ ##################################################################
+ ##################################################################
+ #
+diff -ruN a/config/icu-config-bottom b/config/icu-config-bottom
+--- a/config/icu-config-bottom 2016-09-09 23:28:18.000000000 +0200
++++ b/config/icu-config-bottom 2016-11-05 19:49:00.854481361 +0100
+@@ -218,65 +218,65 @@
+ ;;
+
+ --cflags)
+- echo $ECHO_N "${CFLAGS} ${ECHO_C}"
++ printf "%s" "${CFLAGS} "
+ ;;
+
+ --cc)
+- echo $ECHO_N "${CC} ${ECHO_C}"
++ printf "%s" "${CC} "
+ ;;
+
+ --cxx)
+- echo $ECHO_N "${CXX} ${ECHO_C}"
++ printf "%s" "${CXX} "
+ ;;
+
+ --cxxflags)
+- echo $ECHO_N "${CXXFLAGS} ${ECHO_C}"
++ printf "%s" "${CXXFLAGS} "
+ ;;
+
+ --cppflags)
+ # Don't echo the -I. - it's unneeded.
+- echo $ECHO_N "${CPPFLAGS} ${ECHO_C}" | sed -e 's/-I. //'
++ printf "%s" "${CPPFLAGS} " | sed -e 's/-I. //'
+ ;;
+
+ --cppflags-searchpath)
+- echo $ECHO_N "-I${prefix}/include ${ECHO_C}"
++ printf "%s" "-I${prefix}/include "
+ ;;
+
+ --cppflags-dynamic)
+- echo $ECHO_N "${SHAREDLIBCPPFLAGS} ${ECHO_C}"
++ printf "%s" "${SHAREDLIBCPPFLAGS} "
+ ;;
+
+ --cxxflags-dynamic)
+- echo $ECHO_N "${SHAREDLIBCXXFLAGS} ${ECHO_C}"
++ printf "%s" "${SHAREDLIBCXXFLAGS} "
+ ;;
+
+ --cflags-dynamic)
+- echo $ECHO_N "${SHAREDLIBCFLAGS} ${ECHO_C}"
++ printf "%s" "${SHAREDLIBCFLAGS} "
+ ;;
+
+ --ldflags-system)
+- echo $ECHO_N "${LIBS} ${ECHO_C}"
++ printf "%s" "${LIBS} "
+ ;;
+
+ --ldflags)
+- echo $ECHO_N "${LDFLAGS} ${ICULIBS} ${ECHO_C}"
++ printf "%s" "${LDFLAGS} ${ICULIBS} "
+ # $RPATH_LDFLAGS
+ ;;
+
+ --ldflags-libsonly)
+- echo $ECHO_N "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} ${ECHO_C}"
++ printf "%s" "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} "
+ ;;
+
+ --ldflags-icuio)
+- echo $ECHO_N " ${ICULIBS_ICUIO} ${ECHO_C}"
++ printf "%s" " ${ICULIBS_ICUIO} "
+ ;;
+
+ --ldflags-obsolete)
+- echo $ECHO_N "${ICULIBS_OBSOLETE} ${ECHO_C}"
++ printf "%s" "${ICULIBS_OBSOLETE} "
+ ;;
+
+ --ldflags-toolutil)
+- echo $ECHO_N " ${ICULIBS_TOOLUTIL} ${ECHO_C}"
++ printf "%s" " ${ICULIBS_TOOLUTIL} "
+ ;;
+
+ --ldflags-layout)
+@@ -285,7 +285,7 @@
+ ;;
+
+ --ldflags-searchpath)
+- echo $ECHO_N "-L${libdir} ${ECHO_C}"
++ printf "%s" "-L${libdir} "
+ ;;
+
+ --detect-prefix)
+@@ -321,47 +321,47 @@
+ ;;
+
+ --shared-datadir)
+- echo $ECHO_N "${datadir} ${ECHO_C}"
++ printf "%s" "${datadir} "
+ ;;
+
+ --incfile)
+- echo $ECHO_N "${pkglibdir}/Makefile.inc ${ECHO_C}"
++ printf "%s" "${pkglibdir}/Makefile.inc "
+ ;;
+
+ --incpkgdatafile)
+- echo $ECHO_N "${pkglibdir}/pkgdata.inc ${ECHO_C}"
++ printf "%s" "${pkglibdir}/pkgdata.inc "
+ ;;
+
+ --icudata)
+- echo $ECHO_N "${ICUDATA_NAME} ${ECHO_C}"
++ printf "%s" "${ICUDATA_NAME} "
+ ;;
+
+ --icudata-mode)
+- echo $ECHO_N "${PKGDATA_MODE} ${ECHO_C}"
++ printf "%s" "${PKGDATA_MODE} "
+ ;;
+
+ --icudata-install-dir)
+- echo $ECHO_N "${ICUPKGDATA_DIR} ${ECHO_C}"
++ printf "%s" "${ICUPKGDATA_DIR} "
+ ;;
+
+ --icudatadir)
+- echo $ECHO_N "${ICUDATA_DIR} ${ECHO_C}"
++ printf "%s" "${ICUDATA_DIR} "
+ ;;
+
+ --shlib-c)
+- echo $ECHO_N "${SHLIB_c} ${ECHO_C}"
++ printf "%s" "${SHLIB_c} "
+ ;;
+
+ --shlib-cc)
+- echo $ECHO_N "${SHLIB_cc} ${ECHO_C}"
++ printf "%s" "${SHLIB_cc} "
+ ;;
+
+ --version)
+- echo $ECHO_N $VERSION
++ printf "%s" "$VERSION"
+ ;;
+
+ --unicode-version)
+- echo $ECHO_N $UNICODE_VERSION
++ printf "%s" "$UNICODE_VERSION"
+ ;;
+
+ --host)
+diff -ruN a/configure.ac b/configure.ac
+--- a/configure.ac 2016-10-04 21:30:20.000000000 +0200
++++ b/configure.ac 2016-11-05 19:43:07.688466668 +0100
+@@ -22,24 +22,6 @@
+ PACKAGE="icu"
+ AC_SUBST(PACKAGE)
+
+-# Use custom echo test for newline option
+-# Current autoconf (2.65) gives incorrect echo newline option
+-# for icu-config
+-# This may be removed later - mow (June 17, 2010)
+-ICU_ECHO_C= ICU_ECHO_N= ICU_ECHO_T=
+-case `/bin/sh -c "echo -n x"` in
+--n*)
+- case `/bin/sh -c "echo 'x\c'"` in
+- *c*) ICU_ECHO_T=' ';; # ECHO_T is single tab character.
+- *) ICU_ECHO_C='\c';;
+- esac;;
+-*)
+- ICU_ECHO_N='-n';;
+-esac
+-AC_SUBST(ICU_ECHO_N)
+-AC_SUBST(ICU_ECHO_C)
+-AC_SUBST(ICU_ECHO_T)
+-
+ AC_MSG_CHECKING(for ICU version numbers)
+
+ # Get the ICU version from uversion.h or other headers
+diff -ruN a/icudefs.mk.in b/icudefs.mk.in
+--- a/icudefs.mk.in 2016-09-09 23:28:18.000000000 +0200
++++ b/icudefs.mk.in 2016-11-05 19:43:07.688466668 +0100
+@@ -157,11 +157,6 @@
+ ENABLE_STATIC = @ENABLE_STATIC@
+ ENABLE_SHARED = @ENABLE_SHARED@
+
+-# Echo w/o newline
+-
+-#ECHO_N = @ICU_ECHO_N@
+-#ECHO_C = @ICU_ECHO_C@
+-
+ # Commands to compile
+ COMPILE.c= $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
+ COMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
+diff -ruN a/test/hdrtst/Makefile.in b/test/hdrtst/Makefile.in
+--- a/test/hdrtst/Makefile.in 2016-09-28 06:17:24.000000000 +0200
++++ b/test/hdrtst/Makefile.in 2016-11-05 19:43:07.688466668 +0100
+@@ -35,9 +35,6 @@
+ include $(shell icu-config --incfile)
+ DIRS=$(prefix)/include/unicode
+ LDIRS=$(prefix)/include/layout
+-ECHO_T=@ECHO_T@
+-ECHO_C=@ECHO_C@
+-ECHO_N=@ECHO_N@
+
+ all:
+ @echo Please read this Makefile for more information.
diff --git a/dev-libs/icu/icu-58.1.ebuild b/dev-libs/icu/icu-58.1.ebuild
new file mode 100644
index 00000000..e5fd0fd
--- /dev/null
+++ b/dev-libs/icu/icu-58.1.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit eutils flag-o-matic toolchain-funcs autotools multilib-minimal
+
+DESCRIPTION="International Components for Unicode"
+HOMEPAGE="http://www.icu-project.org/"
+SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"
+
+LICENSE="BSD"
+
+SLOT="0/${PV}"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="debug doc examples static-libs"
+
+DEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-doc/doxygen[dot]
+ )
+"
+
+S="${WORKDIR}/${PN}/source"
+
+MULTILIB_CHOST_TOOLS=(
+ /usr/bin/icu-config
+)
+
+PATCHES=(
+ "${FILESDIR}/${PN}-58.1-remove-bashisms.patch"
+)
+
+src_prepare() {
+ # apply patches
+ default
+
+ local variable
+
+ # Disable renaming as it is stupid thing to do
+ sed -i \
+ -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
+ common/unicode/uconfig.h || die
+
+ # Fix linking of icudata
+ sed -i \
+ -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
+ config/mh-linux || die
+
+ # Append doxygen configuration to configure
+ sed -i \
+ -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
+ configure.ac || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # Use C++14
+ append-cxxflags -std=c++14
+
+ if tc-is-cross-compiler; then
+ mkdir "${WORKDIR}"/host || die
+ pushd "${WORKDIR}"/host >/dev/null || die
+
+ CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
+ CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
+ RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
+ "${S}"/configure --disable-renaming --disable-debug \
+ --disable-samples --enable-static || die
+ emake
+
+ popd >/dev/null || die
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --disable-renaming
+ --disable-samples
+ $(use_enable debug)
+ $(use_enable static-libs static)
+ )
+
+ multilib_is_native_abi && myeconfargs+=(
+ $(use_enable examples samples)
+ )
+ tc-is-cross-compiler && myeconfargs+=(
+ --with-cross-build="${WORKDIR}"/host
+ )
+
+ # icu tries to use clang by default
+ tc-export CC CXX
+
+ ECONF_SOURCE=${S} \
+ econf "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ doxygen -u Doxyfile || die
+ doxygen Doxyfile || die
+ fi
+}
+
+multilib_src_test() {
+ # INTLTEST_OPTS: intltest options
+ # -e: Exhaustive testing
+ # -l: Reporting of memory leaks
+ # -v: Increased verbosity
+ # IOTEST_OPTS: iotest options
+ # -e: Exhaustive testing
+ # -v: Increased verbosity
+ # CINTLTST_OPTS: cintltst options
+ # -e: Exhaustive testing
+ # -v: Increased verbosity
+ emake -j1 VERBOSE="1" check
+}
+
+multilib_src_install() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ docinto html
+ dodoc -r doc/html/*
+ fi
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ docinto html
+ dodoc ../readme.html
+}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2017-01-15 19:56 Andreas Hüttel
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Hüttel @ 2017-01-15 19:56 UTC (permalink / raw
To: gentoo-commits
commit: f7f37c1d8c48f31bcdb24d949db3b2fe327050a2
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 15 19:56:25 2017 +0000
Commit: Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sun Jan 15 19:56:25 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f7f37c1d
dev-libs/icu: Remove old
Package-Manager: Portage-2.3.3, Repoman-2.3.1
dev-libs/icu/Manifest | 2 -
dev-libs/icu/files/icu-57.1-remove-bashisms.patch | 230 ----------------------
dev-libs/icu/files/icu-remove-bashisms.patch | 230 ----------------------
dev-libs/icu/icu-55.1.ebuild | 134 -------------
dev-libs/icu/icu-57.1.ebuild | 140 -------------
5 files changed, 736 deletions(-)
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index de5fa87..9b35855 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,4 +1,2 @@
-DIST icu4c-55_1-src.tgz 25600847 SHA256 e16b22cbefdd354bec114541f7849a12f8fc2015320ca5282ee4fd787571457b SHA512 21a3eb2c3678cd27b659eed073f8f1bd99c9751291d077820e9a370fd90b7d9b3bf414cc03dec4acb7fa61087e02d04f9f40e91a32c5180c718e2102fbd0cd35 WHIRLPOOL 8c5221c82ee2c8a02beafd0fdf91e0038e49912cc8b05fb7437dd4d0a0204b97ea62c45c2dd9dde0f658620b772d706e795821865c567d2e1eb91f8b83a12c4a
-DIST icu4c-57_1-src.tgz 22360664 SHA256 ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581 SHA512 a3c701e9c81622db545bcf93f315c7b13159750f43f009d0aec59ceae3a8e1ccb751826d4b8a7387aca47f38bff2a85816b1a123b07d2bf731558c7b66e47b8a WHIRLPOOL f9107e3019a0d9b4c40b83e6e7ea5277ab7d4317e349d6c5d6731f0b2355811b37a4c12aa8408a3bc0195ffeebdc952b7df709d2fb191ae1044fffadbafc897c
DIST icu4c-58_1-src.tgz 23366443 SHA256 0eb46ba3746a9c2092c8ad347a29b1a1b4941144772d13a88667a7b11ea30309 SHA512 59b2a76834192a35125fda326587e613ef4486152cf0278c6f22568d4ae02c4b2d897efcea2654ef2b11bd1c3154aecd38cb68a70f69430736f343689f94c155 WHIRLPOOL faf2624a83f0d6f874166b328522dc9c89088db2690433ab05e96371722b635b81fd5210c7e87fe8e5df6681e881cf10204832925b448552affe8c2f6c851e37
DIST icu4c-58_2-src.tgz 23369902 SHA256 2b0a4410153a9b20de0e20c7d8b66049a72aef244b53683d0d7521371683da0c SHA512 5c21af748f48b392e6c0412bd0aee92162ea931820dcbfab4ec6e0299868504b303d88f7586cc95de55c777ac0dca3a29d6c8ca0892c646ebc864c8a5b5a162a WHIRLPOOL 25829f8ee870b703fd604ae5b9b584390a142f5011e2a5db18332453e2f1640d81270086f243318eeb93f187b04ea23dab14901ab81c8d924c8d47b1f77aee5a
diff --git a/dev-libs/icu/files/icu-57.1-remove-bashisms.patch b/dev-libs/icu/files/icu-57.1-remove-bashisms.patch
deleted file mode 100644
index 09c2dd5..00000000
--- a/dev-libs/icu/files/icu-57.1-remove-bashisms.patch
+++ /dev/null
@@ -1,230 +0,0 @@
-Index: config/Makefile.inc.in
-===================================================================
---- a/config/Makefile.inc.in (revision 36912)
-+++ b/config/Makefile.inc.in (working copy)
-@@ -125,12 +125,6 @@
- # with usually. Many applications will want to add $(ICULIBS_I18N) as well.
- ICULIBS = $(ICULIBS_BASE) $(ICULIBS_I18N) $(ICULIBS_COMMON) $(ICULIBS_DATA)
-
--# Proper echo newline handling is needed in icu-config
--ECHO_N=@ICU_ECHO_N@
--ECHO_C=@ICU_ECHO_C@
--# Not currently being used but good to have for proper tab handling
--ECHO_T=@ICU_ECHO_T@
--
- ##################################################################
- ##################################################################
- #
-Index: config/icu-config-bottom
-===================================================================
---- a/config/icu-config-bottom (revision 36912)
-+++ b/config/icu-config-bottom (working copy)
-@@ -217,73 +217,73 @@
- ;;
-
- --cflags)
-- echo $ECHO_N "${CFLAGS} ${ECHO_C}"
-+ printf "%s" "${CFLAGS} "
- ;;
-
- --cc)
-- echo $ECHO_N "${CC} ${ECHO_C}"
-+ printf "%s" "${CC} "
- ;;
-
- --cxx)
-- echo $ECHO_N "${CXX} ${ECHO_C}"
-+ printf "%s" "${CXX} "
- ;;
-
- --cxxflags)
-- echo $ECHO_N "${CXXFLAGS} ${ECHO_C}"
-+ printf "%s" "${CXXFLAGS} "
- ;;
-
- --cppflags)
- # Don't echo the -I. - it's unneeded.
-- echo $ECHO_N "${CPPFLAGS} ${ECHO_C}" | sed -e 's/-I. //'
-+ printf "%s" "${CPPFLAGS} " | sed -e 's/-I. //'
- ;;
-
- --cppflags-searchpath)
-- echo $ECHO_N "-I${prefix}/include ${ECHO_C}"
-+ printf "%s" "-I${prefix}/include "
- ;;
-
- --cppflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCPPFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCPPFLAGS} "
- ;;
-
- --cxxflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCXXFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCXXFLAGS} "
- ;;
-
- --cflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCFLAGS} "
- ;;
-
- --ldflags-system)
-- echo $ECHO_N "${LIBS} ${ECHO_C}"
-+ printf "%s" "${LIBS} "
- ;;
-
- --ldflags)
-- echo $ECHO_N "${LDFLAGS} ${ICULIBS} ${ECHO_C}"
-+ printf "%s" "${LDFLAGS} ${ICULIBS} "
- # $RPATH_LDFLAGS
- ;;
-
- --ldflags-libsonly)
-- echo $ECHO_N "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} "
- ;;
-
- --ldflags-icuio)
-- echo $ECHO_N " ${ICULIBS_ICUIO} ${ECHO_C}"
-+ printf "%s" " ${ICULIBS_ICUIO} "
- ;;
-
- --ldflags-obsolete)
-- echo $ECHO_N "${ICULIBS_OBSOLETE} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_OBSOLETE} "
- ;;
-
- --ldflags-toolutil)
-- echo $ECHO_N " ${ICULIBS_TOOLUTIL} ${ECHO_C}"
-+ printf "%s" " ${ICULIBS_TOOLUTIL} "
- ;;
-
- --ldflags-layout)
-- echo $ECHO_N "${ICULIBS_LAYOUT} ${ICULIBS_LAYOUTEX} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_LAYOUT} ${ICULIBS_LAYOUTEX} "
- ;;
-
- --ldflags-searchpath)
-- echo $ECHO_N "-L${libdir} ${ECHO_C}"
-+ printf "%s" "-L${libdir} "
- ;;
-
- --detect-prefix)
-@@ -319,47 +319,47 @@
- ;;
-
- --shared-datadir)
-- echo $ECHO_N "${datadir} ${ECHO_C}"
-+ printf "%s" "${datadir} "
- ;;
-
- --incfile)
-- echo $ECHO_N "${pkglibdir}/Makefile.inc ${ECHO_C}"
-+ printf "%s" "${pkglibdir}/Makefile.inc "
- ;;
-
- --incpkgdatafile)
-- echo $ECHO_N "${pkglibdir}/pkgdata.inc ${ECHO_C}"
-+ printf "%s" "${pkglibdir}/pkgdata.inc "
- ;;
-
- --icudata)
-- echo $ECHO_N "${ICUDATA_NAME} ${ECHO_C}"
-+ printf "%s" "${ICUDATA_NAME} "
- ;;
-
- --icudata-mode)
-- echo $ECHO_N "${PKGDATA_MODE} ${ECHO_C}"
-+ printf "%s" "${PKGDATA_MODE} "
- ;;
-
- --icudata-install-dir)
-- echo $ECHO_N "${ICUPKGDATA_DIR} ${ECHO_C}"
-+ printf "%s" "${ICUPKGDATA_DIR} "
- ;;
-
- --icudatadir)
-- echo $ECHO_N "${ICUDATA_DIR} ${ECHO_C}"
-+ printf "%s" "${ICUDATA_DIR} "
- ;;
-
- --shlib-c)
-- echo $ECHO_N "${SHLIB_c} ${ECHO_C}"
-+ printf "%s" "${SHLIB_c} "
- ;;
-
- --shlib-cc)
-- echo $ECHO_N "${SHLIB_cc} ${ECHO_C}"
-+ printf "%s" "${SHLIB_cc} "
- ;;
-
- --version)
-- echo $ECHO_N $VERSION
-+ printf "%s" "$VERSION"
- ;;
-
- --unicode-version)
-- echo $ECHO_N $UNICODE_VERSION
-+ printf "%s" "$UNICODE_VERSION"
- ;;
-
- --host)
-Index: configure.ac
-===================================================================
---- a/configure.ac (revision 36912)
-+++ b/configure.ac (working copy)
-@@ -19,24 +19,6 @@
- PACKAGE="icu"
- AC_SUBST(PACKAGE)
-
--# Use custom echo test for newline option
--# Current autoconf (2.65) gives incorrect echo newline option
--# for icu-config
--# This may be removed later - mow (June 17, 2010)
--ICU_ECHO_C= ICU_ECHO_N= ICU_ECHO_T=
--case `/bin/sh -c "echo -n x"` in
---n*)
-- case `/bin/sh -c "echo 'x\c'"` in
-- *c*) ICU_ECHO_T=' ';; # ECHO_T is single tab character.
-- *) ICU_ECHO_C='\c';;
-- esac;;
--*)
-- ICU_ECHO_N='-n';;
--esac
--AC_SUBST(ICU_ECHO_N)
--AC_SUBST(ICU_ECHO_C)
--AC_SUBST(ICU_ECHO_T)
--
- AC_MSG_CHECKING(for ICU version numbers)
-
- # Get the ICU version from uversion.h or other headers
-Index: icudefs.mk.in
-===================================================================
---- a/icudefs.mk.in (revision 36912)
-+++ b/icudefs.mk.in (working copy)
-@@ -155,11 +155,6 @@
- ENABLE_STATIC = @ENABLE_STATIC@
- ENABLE_SHARED = @ENABLE_SHARED@
-
--# Echo w/o newline
--
--#ECHO_N = @ICU_ECHO_N@
--#ECHO_C = @ICU_ECHO_C@
--
- # Commands to compile
- COMPILE.c= $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
- COMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
-Index: test/hdrtst/Makefile.in
-===================================================================
---- a/test/hdrtst/Makefile.in (revision 36912)
-+++ b/test/hdrtst/Makefile.in (working copy)
-@@ -33,9 +33,6 @@
- include $(shell icu-config --incfile)
- DIRS=$(prefix)/include/unicode
- LDIRS=$(prefix)/include/layout
--ECHO_T=@ECHO_T@
--ECHO_C=@ECHO_C@
--ECHO_N=@ECHO_N@
-
- all:
- @echo Please read this Makefile for more information.
diff --git a/dev-libs/icu/files/icu-remove-bashisms.patch b/dev-libs/icu/files/icu-remove-bashisms.patch
deleted file mode 100644
index 980d84b..00000000
--- a/dev-libs/icu/files/icu-remove-bashisms.patch
+++ /dev/null
@@ -1,230 +0,0 @@
-Index: config/Makefile.inc.in
-===================================================================
---- config/Makefile.inc.in (revision 36912)
-+++ config/Makefile.inc.in (working copy)
-@@ -125,12 +125,6 @@
- # with usually. Many applications will want to add $(ICULIBS_I18N) as well.
- ICULIBS = $(ICULIBS_BASE) $(ICULIBS_I18N) $(ICULIBS_COMMON) $(ICULIBS_DATA)
-
--# Proper echo newline handling is needed in icu-config
--ECHO_N=@ICU_ECHO_N@
--ECHO_C=@ICU_ECHO_C@
--# Not currently being used but good to have for proper tab handling
--ECHO_T=@ICU_ECHO_T@
--
- ##################################################################
- ##################################################################
- #
-Index: config/icu-config-bottom
-===================================================================
---- config/icu-config-bottom (revision 36912)
-+++ config/icu-config-bottom (working copy)
-@@ -217,73 +217,73 @@
- ;;
-
- --cflags)
-- echo $ECHO_N "${CFLAGS} ${ECHO_C}"
-+ printf "%s" "${CFLAGS} "
- ;;
-
- --cc)
-- echo $ECHO_N "${CC} ${ECHO_C}"
-+ printf "%s" "${CC} "
- ;;
-
- --cxx)
-- echo $ECHO_N "${CXX} ${ECHO_C}"
-+ printf "%s" "${CXX} "
- ;;
-
- --cxxflags)
-- echo $ECHO_N "${CXXFLAGS} ${ECHO_C}"
-+ printf "%s" "${CXXFLAGS} "
- ;;
-
- --cppflags)
- # Don't echo the -I. - it's unneeded.
-- echo $ECHO_N "${CPPFLAGS} ${ECHO_C}" | sed -e 's/-I. //'
-+ printf "%s" "${CPPFLAGS} " | sed -e 's/-I. //'
- ;;
-
- --cppflags-searchpath)
-- echo $ECHO_N "-I${prefix}/include ${ECHO_C}"
-+ printf "%s" "-I${prefix}/include "
- ;;
-
- --cppflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCPPFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCPPFLAGS} "
- ;;
-
- --cxxflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCXXFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCXXFLAGS} "
- ;;
-
- --cflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCFLAGS} "
- ;;
-
- --ldflags-system)
-- echo $ECHO_N "${LIBS} ${ECHO_C}"
-+ printf "%s" "${LIBS} "
- ;;
-
- --ldflags)
-- echo $ECHO_N "${LDFLAGS} ${ICULIBS} ${ECHO_C}"
-+ printf "%s" "${LDFLAGS} ${ICULIBS} "
- # $RPATH_LDFLAGS
- ;;
-
- --ldflags-libsonly)
-- echo $ECHO_N "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} "
- ;;
-
- --ldflags-icuio)
-- echo $ECHO_N " ${ICULIBS_ICUIO} ${ECHO_C}"
-+ printf "%s" " ${ICULIBS_ICUIO} "
- ;;
-
- --ldflags-obsolete)
-- echo $ECHO_N "${ICULIBS_OBSOLETE} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_OBSOLETE} "
- ;;
-
- --ldflags-toolutil)
-- echo $ECHO_N " ${ICULIBS_TOOLUTIL} ${ECHO_C}"
-+ printf "%s" " ${ICULIBS_TOOLUTIL} "
- ;;
-
- --ldflags-layout)
-- echo $ECHO_N "${ICULIBS_LAYOUT} ${ICULIBS_LAYOUTEX} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_LAYOUT} ${ICULIBS_LAYOUTEX} "
- ;;
-
- --ldflags-searchpath)
-- echo $ECHO_N "-L${libdir} ${ECHO_C}"
-+ printf "%s" "-L${libdir} "
- ;;
-
- --detect-prefix)
-@@ -319,47 +319,47 @@
- ;;
-
- --shared-datadir)
-- echo $ECHO_N "${datadir} ${ECHO_C}"
-+ printf "%s" "${datadir} "
- ;;
-
- --incfile)
-- echo $ECHO_N "${pkglibdir}/Makefile.inc ${ECHO_C}"
-+ printf "%s" "${pkglibdir}/Makefile.inc "
- ;;
-
- --incpkgdatafile)
-- echo $ECHO_N "${pkglibdir}/pkgdata.inc ${ECHO_C}"
-+ printf "%s" "${pkglibdir}/pkgdata.inc "
- ;;
-
- --icudata)
-- echo $ECHO_N "${ICUDATA_NAME} ${ECHO_C}"
-+ printf "%s" "${ICUDATA_NAME} "
- ;;
-
- --icudata-mode)
-- echo $ECHO_N "${PKGDATA_MODE} ${ECHO_C}"
-+ printf "%s" "${PKGDATA_MODE} "
- ;;
-
- --icudata-install-dir)
-- echo $ECHO_N "${ICUPKGDATA_DIR} ${ECHO_C}"
-+ printf "%s" "${ICUPKGDATA_DIR} "
- ;;
-
- --icudatadir)
-- echo $ECHO_N "${ICUDATA_DIR} ${ECHO_C}"
-+ printf "%s" "${ICUDATA_DIR} "
- ;;
-
- --shlib-c)
-- echo $ECHO_N "${SHLIB_c} ${ECHO_C}"
-+ printf "%s" "${SHLIB_c} "
- ;;
-
- --shlib-cc)
-- echo $ECHO_N "${SHLIB_cc} ${ECHO_C}"
-+ printf "%s" "${SHLIB_cc} "
- ;;
-
- --version)
-- echo $ECHO_N $VERSION
-+ printf "%s" "$VERSION"
- ;;
-
- --unicode-version)
-- echo $ECHO_N $UNICODE_VERSION
-+ printf "%s" "$UNICODE_VERSION"
- ;;
-
- --host)
-Index: configure.ac
-===================================================================
---- configure.ac (revision 36912)
-+++ configure.ac (working copy)
-@@ -19,24 +19,6 @@
- PACKAGE="icu"
- AC_SUBST(PACKAGE)
-
--# Use custom echo test for newline option
--# Current autoconf (2.65) gives incorrect echo newline option
--# for icu-config
--# This may be removed later - mow (June 17, 2010)
--ICU_ECHO_C= ICU_ECHO_N= ICU_ECHO_T=
--case `/bin/sh -c "echo -n x"` in
---n*)
-- case `/bin/sh -c "echo 'x\c'"` in
-- *c*) ICU_ECHO_T=' ';; # ECHO_T is single tab character.
-- *) ICU_ECHO_C='\c';;
-- esac;;
--*)
-- ICU_ECHO_N='-n';;
--esac
--AC_SUBST(ICU_ECHO_N)
--AC_SUBST(ICU_ECHO_C)
--AC_SUBST(ICU_ECHO_T)
--
- AC_MSG_CHECKING(for ICU version numbers)
-
- # Get the ICU version from uversion.h or other headers
-Index: icudefs.mk.in
-===================================================================
---- icudefs.mk.in (revision 36912)
-+++ icudefs.mk.in (working copy)
-@@ -155,11 +155,6 @@
- ENABLE_STATIC = @ENABLE_STATIC@
- ENABLE_SHARED = @ENABLE_SHARED@
-
--# Echo w/o newline
--
--#ECHO_N = @ICU_ECHO_N@
--#ECHO_C = @ICU_ECHO_C@
--
- # Commands to compile
- COMPILE.c= $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
- COMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
-Index: test/hdrtst/Makefile.in
-===================================================================
---- test/hdrtst/Makefile.in (revision 36912)
-+++ test/hdrtst/Makefile.in (working copy)
-@@ -33,9 +33,6 @@
- include $(shell icu-config --incfile)
- DIRS=$(prefix)/include/unicode
- LDIRS=$(prefix)/include/layout
--ECHO_T=@ECHO_T@
--ECHO_C=@ECHO_C@
--ECHO_N=@ECHO_N@
-
- all:
- @echo Please read this Makefile for more information.
diff --git a/dev-libs/icu/icu-55.1.ebuild b/dev-libs/icu/icu-55.1.ebuild
deleted file mode 100644
index 896fda0..00000000
--- a/dev-libs/icu/icu-55.1.ebuild
+++ /dev/null
@@ -1,134 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit eutils flag-o-matic toolchain-funcs autotools multilib-minimal
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="http://www.icu-project.org/"
-SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"
-
-LICENSE="BSD"
-
-SLOT="0/55"
-
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="debug doc examples static-libs"
-
-DEPEND="
- virtual/pkgconfig
- doc? (
- app-doc/doxygen[dot]
- )
-"
-
-S="${WORKDIR}/${PN}/source"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-src_prepare() {
- local variable
-
- epatch "${FILESDIR}/${PN}-remove-bashisms.patch"
- epatch_user
-
- # Disable renaming as it is stupind thing to do
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- $(use_enable debug)
- $(use_enable static-libs static)
- )
-
- multilib_is_native_abi && myeconfargs+=(
- $(use_enable examples samples)
- )
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # icu tries to use clang by default
- tc-export CC CXX
-
- ECONF_SOURCE=${S} \
- econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 VERBOSE="1" check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- dohtml -p api -r doc/html/
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
- dohtml ../readme.html
-}
diff --git a/dev-libs/icu/icu-57.1.ebuild b/dev-libs/icu/icu-57.1.ebuild
deleted file mode 100644
index 3c3389d..00000000
--- a/dev-libs/icu/icu-57.1.ebuild
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-inherit eutils flag-o-matic toolchain-funcs autotools multilib-minimal
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="http://www.icu-project.org/"
-SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"
-
-LICENSE="BSD"
-
-SLOT="0/57"
-
-KEYWORDS="alpha amd64 arm ~arm64 hppa ~ia64 ~m68k ~mips ~ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="debug doc examples static-libs"
-
-DEPEND="
- virtual/pkgconfig
- doc? (
- app-doc/doxygen[dot]
- )
-"
-
-S="${WORKDIR}/${PN}/source"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-57.1-remove-bashisms.patch"
-)
-
-src_prepare() {
- # apply patches
- default
-
- local variable
-
- # Disable renaming as it is stupid thing to do
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- # Use C++11
- append-cxxflags -std=c++11
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- $(use_enable debug)
- $(use_enable static-libs static)
- )
-
- multilib_is_native_abi && myeconfargs+=(
- $(use_enable examples samples)
- )
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # icu tries to use clang by default
- tc-export CC CXX
-
- ECONF_SOURCE=${S} \
- econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 VERBOSE="1" check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- docinto html
- dodoc -r doc/html/*
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
- docinto html
- dodoc ../readme.html
-}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2017-12-03 15:17 Fabian Groffen
0 siblings, 0 replies; 19+ messages in thread
From: Fabian Groffen @ 2017-12-03 15:17 UTC (permalink / raw
To: gentoo-commits
commit: 77165b807efc2a976f20c98dd6e07c24aa349656
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 3 15:16:40 2017 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sun Dec 3 15:17:11 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=77165b80
dev-libs/icu: add Prefix support
Package-Manager: Portage-2.3.13, Repoman-2.3.3
dev-libs/icu/Manifest | 4 +--
dev-libs/icu/files/icu-58.2-darwin.patch | 55 ++++++++++++++++++++++++++++++++
dev-libs/icu/icu-58.2-r1.ebuild | 15 ++++++++-
dev-libs/icu/icu-60.1.ebuild | 9 +++++-
4 files changed, 79 insertions(+), 4 deletions(-)
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index 25e55a75ffb..2fb7f8b34c1 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,4 +1,4 @@
-DIST icu4c-58_1-src.tgz 23366443 SHA256 0eb46ba3746a9c2092c8ad347a29b1a1b4941144772d13a88667a7b11ea30309 SHA512 59b2a76834192a35125fda326587e613ef4486152cf0278c6f22568d4ae02c4b2d897efcea2654ef2b11bd1c3154aecd38cb68a70f69430736f343689f94c155 WHIRLPOOL faf2624a83f0d6f874166b328522dc9c89088db2690433ab05e96371722b635b81fd5210c7e87fe8e5df6681e881cf10204832925b448552affe8c2f6c851e37
-DIST icu4c-58_2-src.tgz 23369902 SHA256 2b0a4410153a9b20de0e20c7d8b66049a72aef244b53683d0d7521371683da0c SHA512 5c21af748f48b392e6c0412bd0aee92162ea931820dcbfab4ec6e0299868504b303d88f7586cc95de55c777ac0dca3a29d6c8ca0892c646ebc864c8a5b5a162a WHIRLPOOL 25829f8ee870b703fd604ae5b9b584390a142f5011e2a5db18332453e2f1640d81270086f243318eeb93f187b04ea23dab14901ab81c8d924c8d47b1f77aee5a
+DIST icu4c-58_1-src.tgz 23366443 BLAKE2B 16f1c778d925893769c6e0f0901fe02e57289535a25edd8ee8c96bdf4551499ead2c75d0f7e733fb89d1670c5065f1e8013ebe14cbdc34881a67452e622cd990 SHA512 59b2a76834192a35125fda326587e613ef4486152cf0278c6f22568d4ae02c4b2d897efcea2654ef2b11bd1c3154aecd38cb68a70f69430736f343689f94c155
+DIST icu4c-58_2-src.tgz 23369902 BLAKE2B cdd2e02c3aba050f5b7f8b38c5a3731e3e5f1cc1403ef86a50908b95560ea3cf8a2d47119fa60cf34f22a8b65eaa2392fd5bcbd3bc48b3da541fe3d9bd7392c0 SHA512 5c21af748f48b392e6c0412bd0aee92162ea931820dcbfab4ec6e0299868504b303d88f7586cc95de55c777ac0dca3a29d6c8ca0892c646ebc864c8a5b5a162a
DIST icu4c-59_1-src.tgz 22706578 SHA256 7132fdaf9379429d004005217f10e00b7d2319d0fea22bdfddef8991c45b75fe SHA512 9348aa68d72a74cd1f26588c30c80eee1b48800a26930d7eb0749390fd65f7930ee8843058b6a6dd5f265e79054fef661e807ded16a1ad691cbc5ebc5ab944c4 WHIRLPOOL f213951e98b7e1b59a3caf193f671fd9dff9a77c49aa3c4c118d6e3414688830ffb029d5c01495b369d4e666ab38669340a4c24a26f93742a99145972e20ede0
DIST icu4c-60_1-src.tgz 23296064 BLAKE2B 4f90c1f4f00b686d2632429fbaa6a6ec3d977e414f8d00cf82a525a1504c9d8c9b1a19458b495e5847abbcfff933038752f96d6bd165d206582f8ec1b77fff40 SHA512 a6798f70add1b3bac2197a49e09a0bb636279af7019ce572f63a30ab713e09657ee9d9b20aac7ea806fbb84667ca2eca981411e5053b47c3c705aa496a669233
diff --git a/dev-libs/icu/files/icu-58.2-darwin.patch b/dev-libs/icu/files/icu-58.2-darwin.patch
new file mode 100644
index 00000000000..e5a9000a346
--- /dev/null
+++ b/dev-libs/icu/files/icu-58.2-darwin.patch
@@ -0,0 +1,55 @@
+same as 4.7, but retargetted to apply with eapply
+
+--- a/config/mh-darwin
++++ b/config/mh-darwin
+@@ -4,6 +4,13 @@
+ ## Copyright (c) 1999-2011 International Business Machines Corporation and
+ ## others. All Rights Reserved.
+
++
++SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
++FINAL_SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO_TARGET_VERSION).$(SO)
++MIDDLE_SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO_TARGET_VERSION_MAJOR).$(SO)
++
++IS_DARWIN = yes
++
+ ## Flags for position independent code
+ SHAREDLIBCFLAGS = -dynamic
+ SHAREDLIBCXXFLAGS = -dynamic
+@@ -28,7 +35,7 @@
+ ifeq ($(ENABLE_RPATH),YES)
+ LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET))
+ else
+-LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
++LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET))
+ endif
+
+ ## Compiler switch to embed a runtime search path
+--- a/stubdata/Makefile.in
++++ b/stubdata/Makefile.in
+@@ -32,7 +32,11 @@
+
+
+ ifneq ($(ENABLE_SHARED),)
++ifeq ($(IS_DARWIN),)
+ SO_TARGET = $(STUBDATA_LIBDIR)$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX)$(STUB_SUFFIX).$(SO)
++else
++SO_TARGET = $(LIBDIR)/$(STUBDATA_LIBDIR)$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX)$(STUB_SUFFIX).$(SO)
++endif
+ ALL_SO_TARGETS = $(FINAL_SO_TARGET) $(MIDDLE_SO_TARGET) $(SO_TARGET) $(BATCH_STUB_TARGET) $(SHARED_OBJECT)
+ endif
+
+--- a/tools/ctestfw/Makefile.in
++++ b/tools/ctestfw/Makefile.in
+@@ -31,7 +31,11 @@
+ endif
+
+ ifneq ($(ENABLE_SHARED),)
++ifeq ($(IS_DARWIN),)
+ SO_TARGET = $(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
++else
++SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
++endif
+ ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
+ endif
+
diff --git a/dev-libs/icu/icu-58.2-r1.ebuild b/dev-libs/icu/icu-58.2-r1.ebuild
index 1eaa578e41b..cb2f808c5fc 100644
--- a/dev-libs/icu/icu-58.2-r1.ebuild
+++ b/dev-libs/icu/icu-58.2-r1.ebuild
@@ -13,7 +13,7 @@ LICENSE="BSD"
SLOT="0/${PV}"
-KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
IUSE="debug doc examples static-libs"
DEPEND="
@@ -34,6 +34,7 @@ PATCHES=(
"${FILESDIR}/${PN}-58.1-iterator.patch"
"${FILESDIR}/${PN}-58.2-CVE-2017-7867.patch"
"${FILESDIR}/${PN}-58.2-glibc226.patch"
+ "${FILESDIR}/${PN}-58.2-darwin.patch"
)
pkg_pretend() {
@@ -66,6 +67,12 @@ src_prepare() {
-e 's:icudefs.mk:icudefs.mk Doxyfile:' \
configure.ac || die
+ # Fix compilation on Solaris due to enabling of conflicting standards
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e '/define _XOPEN_SOURCE_EXTENDED/s/_XOPEN/no_XOPEN/' \
+ common/uposixdefs.h || die
+ fi
+
eautoreconf
}
@@ -116,6 +123,12 @@ multilib_src_configure() {
# icu tries to use clang by default
tc-export CC CXX
+ # make sure we configure with the same shell as we run icu-config
+ # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
+ export CONFIG_SHELL=${EPREFIX}/bin/sh
+ # probably have no /bin/sh in prefix-chain
+ [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL=${BASH}
+
ECONF_SOURCE=${S} \
econf "${myeconfargs[@]}"
}
diff --git a/dev-libs/icu/icu-60.1.ebuild b/dev-libs/icu/icu-60.1.ebuild
index c8f9ddca172..773d5b35d4b 100644
--- a/dev-libs/icu/icu-60.1.ebuild
+++ b/dev-libs/icu/icu-60.1.ebuild
@@ -13,7 +13,7 @@ LICENSE="BSD"
SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
IUSE="debug doc examples static-libs"
DEPEND="
@@ -31,6 +31,7 @@ MULTILIB_CHOST_TOOLS=(
PATCHES=(
"${FILESDIR}/${PN}-58.1-remove-bashisms.patch"
+ "${FILESDIR}/${PN}-58.2-darwin.patch"
)
pkg_pretend() {
@@ -113,6 +114,12 @@ multilib_src_configure() {
# icu tries to use clang by default
tc-export CC CXX
+ # make sure we configure with the same shell as we run icu-config
+ # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
+ export CONFIG_SHELL=${EPREFIX}/bin/sh
+ # probably have no /bin/sh in prefix-chain
+ [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL=${BASH}
+
ECONF_SOURCE=${S} \
econf "${myeconfargs[@]}"
}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2019-06-27 10:48 Andreas Sturmlechner
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Sturmlechner @ 2019-06-27 10:48 UTC (permalink / raw
To: gentoo-commits
commit: 651f107d52dfc2b2032fe7c01e8c60f515a2ec52
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 27 09:11:00 2019 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu Jun 27 10:47:26 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=651f107d
dev-libs/icu: Drop 63.1-r1
Package-Manager: Portage-2.3.67, Repoman-2.3.16
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/icu/Manifest | 1 -
dev-libs/icu/files/icu-63.1-CVE-2018-18928.patch | 62 ----------
dev-libs/icu/icu-63.1-r1.ebuild | 143 -----------------------
3 files changed, 206 deletions(-)
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index 5bd14af28bc..efaf4e9e515 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,3 +1,2 @@
DIST icu4c-58_2-src.tgz 23369902 BLAKE2B cdd2e02c3aba050f5b7f8b38c5a3731e3e5f1cc1403ef86a50908b95560ea3cf8a2d47119fa60cf34f22a8b65eaa2392fd5bcbd3bc48b3da541fe3d9bd7392c0 SHA512 5c21af748f48b392e6c0412bd0aee92162ea931820dcbfab4ec6e0299868504b303d88f7586cc95de55c777ac0dca3a29d6c8ca0892c646ebc864c8a5b5a162a
-DIST icu4c-63_1-src.tgz 23746939 BLAKE2B 5a665554506ff705c83c7a03a1b5598b1a48afbe1c6caaccd5a2d7d5aae16b3e18d7bc65ed552fc4df86248a2f13962438f19bca6c2a579843204c7dc52e6278 SHA512 9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c
DIST icu4c-64_2-src.tgz 24013250 BLAKE2B 4a286e7a952f5faa74d942f6b6a73147a46aa10fe6d54d024e2d18d1e01056444d56118ded04b4fe084d6a0f9058d7d9e76973960ac8fe5bd9ee105d9e214318 SHA512 5ecb4c230ba45918747a1cf9aef86f555aa07d5b29b1d07ab674e8013f46dfb907a0e9d6945db41155f9dc3012fd94e1152ffc19f61a68b6dfcbabdcb8ae9d78
diff --git a/dev-libs/icu/files/icu-63.1-CVE-2018-18928.patch b/dev-libs/icu/files/icu-63.1-CVE-2018-18928.patch
deleted file mode 100644
index bbbef9e793d..00000000000
--- a/dev-libs/icu/files/icu-63.1-CVE-2018-18928.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 53d8c8f3d181d87a6aa925b449b51c4a2c922a51 Mon Sep 17 00:00:00 2001
-From: Shane Carr <shane@unicode.org>
-Date: Mon, 29 Oct 2018 23:52:44 -0700
-Subject: [PATCH] ICU-20246 Fixing another integer overflow in number parsing.
-
----
- i18n/fmtable.cpp | 2 +-
- i18n/number_decimalquantity.cpp | 5 ++++-
- test/intltest/numfmtst.cpp | 8 ++++++++
- .../icu/impl/number/DecimalQuantity_AbstractBCD.java | 5 ++++-
- .../impl/number/DecimalQuantity_DualStorageBCD.java | 10 +++++++++-
- .../com/ibm/icu/dev/test/format/NumberFormatTest.java | 5 +++++
- 6 files changed, 31 insertions(+), 4 deletions(-)
-
-diff --git a/i18n/fmtable.cpp b/i18n/fmtable.cpp
-index 45c7024fc29..8601d95f4a6 100644
---- a/i18n/fmtable.cpp
-+++ b/i18n/fmtable.cpp
-@@ -734,7 +734,7 @@ CharString *Formattable::internalGetCharString(UErrorCode &status) {
- // not print scientific notation for magnitudes greater than -5 and smaller than some amount (+5?).
- if (fDecimalQuantity->isZero()) {
- fDecimalStr->append("0", -1, status);
-- } else if (std::abs(fDecimalQuantity->getMagnitude()) < 5) {
-+ } else if (fDecimalQuantity->getMagnitude() != INT32_MIN && std::abs(fDecimalQuantity->getMagnitude()) < 5) {
- fDecimalStr->appendInvariantChars(fDecimalQuantity->toPlainString(), status);
- } else {
- fDecimalStr->appendInvariantChars(fDecimalQuantity->toScientificString(), status);
-diff --git a/i18n/number_decimalquantity.cpp b/i18n/number_decimalquantity.cpp
-index 47b930a564b..d5dd7ae694c 100644
---- a/i18n/number_decimalquantity.cpp
-+++ b/i18n/number_decimalquantity.cpp
-@@ -898,7 +898,10 @@ UnicodeString DecimalQuantity::toScientificString() const {
- }
- result.append(u'E');
- int32_t _scale = upperPos + scale;
-- if (_scale < 0) {
-+ if (_scale == INT32_MIN) {
-+ result.append({u"-2147483648", -1});
-+ return result;
-+ } else if (_scale < 0) {
- _scale *= -1;
- result.append(u'-');
- } else {
-diff --git a/test/intltest/numfmtst.cpp b/test/intltest/numfmtst.cpp
-index 34355939113..8d52dc122bf 100644
---- a/test/intltest/numfmtst.cpp
-+++ b/test/intltest/numfmtst.cpp
-@@ -9226,6 +9226,14 @@ void NumberFormatTest::Test20037_ScientificIntegerOverflow() {
- assertEquals(u"Should not overflow and should parse only the first exponent",
- u"1E-2147483647",
- {sp.data(), sp.length(), US_INV});
-+
-+ // Test edge case overflow of exponent
-+ result = Formattable();
-+ nf->parse(u".0003e-2147483644", result, status);
-+ sp = result.getDecimalNumber(status);
-+ assertEquals(u"Should not overflow",
-+ u"3E-2147483648",
-+ {sp.data(), sp.length(), US_INV});
- }
-
- void NumberFormatTest::Test13840_ParseLongStringCrash() {
diff --git a/dev-libs/icu/icu-63.1-r1.ebuild b/dev-libs/icu/icu-63.1-r1.ebuild
deleted file mode 100644
index 2023747b6e8..00000000000
--- a/dev-libs/icu/icu-63.1-r1.ebuild
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic toolchain-funcs autotools multilib-minimal
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="http://www.icu-project.org/"
-SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"
-
-LICENSE="BSD"
-
-SLOT="0/${PV}"
-
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="debug doc examples static-libs"
-
-DEPEND="
- doc? ( app-doc/doxygen[dot] )
-"
-BDEPEND="
- virtual/pkgconfig
-"
-
-S="${WORKDIR}/${PN}/source"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-58.1-remove-bashisms.patch"
- "${FILESDIR}/${PN}-58.2-darwin.patch"
- "${FILESDIR}/${P}-CVE-2018-18928.patch"
-)
-
-src_prepare() {
- default
-
- local variable
-
- # Disable renaming as it is stupid thing to do
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- append-cxxflags -std=c++14
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- --disable-layoutex
- $(use_enable debug)
- $(use_enable static-libs static)
- $(multilib_native_use_enable examples samples)
- )
-
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # icu tries to use clang by default
- tc-export CC CXX
-
- # make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL="${EPREFIX}/bin/sh"
- # probably have no /bin/sh in prefix-chain
- [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 VERBOSE="1" check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- docinto html
- dodoc -r doc/html/*
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
- docinto html
- dodoc ../readme.html
-}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2020-01-17 2:50 Andreas Sturmlechner
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Sturmlechner @ 2020-01-17 2:50 UTC (permalink / raw
To: gentoo-commits
commit: a7228509a3911a2988bf0e5b9415fec49488c86b
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 16 23:44:53 2020 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Fri Jan 17 02:50:17 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a7228509
dev-libs/icu: Drop 64.2
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/icu/Manifest | 1 -
dev-libs/icu/files/icu-58.1-remove-bashisms.patch | 224 ------
dev-libs/icu/files/icu-64.2-extern_c.patch | 789 ----------------------
dev-libs/icu/icu-64.2.ebuild | 143 ----
4 files changed, 1157 deletions(-)
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index 852d3209dce..5b6c81f24b9 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,2 +1 @@
-DIST icu4c-64_2-src.tgz 24013250 BLAKE2B 4a286e7a952f5faa74d942f6b6a73147a46aa10fe6d54d024e2d18d1e01056444d56118ded04b4fe084d6a0f9058d7d9e76973960ac8fe5bd9ee105d9e214318 SHA512 5ecb4c230ba45918747a1cf9aef86f555aa07d5b29b1d07ab674e8013f46dfb907a0e9d6945db41155f9dc3012fd94e1152ffc19f61a68b6dfcbabdcb8ae9d78
DIST icu4c-65_1-src.tgz 24267934 BLAKE2B 3c62781201c02a2b1027c9b6db4586f8ccdfb339c0765301a381242d5218f3503a1cdbdc1dc9a1a23ffa657096adc4bf7f0b7fe702461f14beba293a7e82e02c SHA512 8f1ef33e1f4abc9a8ee870331c59f01b473d6da1251a19ce403f822f3e3871096f0791855d39c8f20c612fc49cda2c62c06864aa32ddab2dbd186d2b21ce9139
diff --git a/dev-libs/icu/files/icu-58.1-remove-bashisms.patch b/dev-libs/icu/files/icu-58.1-remove-bashisms.patch
deleted file mode 100644
index ef60ce4569b..00000000000
--- a/dev-libs/icu/files/icu-58.1-remove-bashisms.patch
+++ /dev/null
@@ -1,224 +0,0 @@
-diff -ruN a/config/Makefile.inc.in b/config/Makefile.inc.in
---- a/config/Makefile.inc.in 2016-09-09 23:28:18.000000000 +0200
-+++ b/config/Makefile.inc.in 2016-11-05 19:43:07.688466668 +0100
-@@ -124,12 +124,6 @@
- # with usually. Many applications will want to add $(ICULIBS_I18N) as well.
- ICULIBS = $(ICULIBS_BASE) $(ICULIBS_I18N) $(ICULIBS_COMMON) $(ICULIBS_DATA)
-
--# Proper echo newline handling is needed in icu-config
--ECHO_N=@ICU_ECHO_N@
--ECHO_C=@ICU_ECHO_C@
--# Not currently being used but good to have for proper tab handling
--ECHO_T=@ICU_ECHO_T@
--
- ##################################################################
- ##################################################################
- #
-diff -ruN a/config/icu-config-bottom b/config/icu-config-bottom
---- a/config/icu-config-bottom 2016-09-09 23:28:18.000000000 +0200
-+++ b/config/icu-config-bottom 2016-11-05 19:49:00.854481361 +0100
-@@ -218,65 +218,65 @@
- ;;
-
- --cflags)
-- echo $ECHO_N "${CFLAGS} ${ECHO_C}"
-+ printf "%s" "${CFLAGS} "
- ;;
-
- --cc)
-- echo $ECHO_N "${CC} ${ECHO_C}"
-+ printf "%s" "${CC} "
- ;;
-
- --cxx)
-- echo $ECHO_N "${CXX} ${ECHO_C}"
-+ printf "%s" "${CXX} "
- ;;
-
- --cxxflags)
-- echo $ECHO_N "${CXXFLAGS} ${ECHO_C}"
-+ printf "%s" "${CXXFLAGS} "
- ;;
-
- --cppflags)
- # Don't echo the -I. - it's unneeded.
-- echo $ECHO_N "${CPPFLAGS} ${ECHO_C}" | sed -e 's/-I. //'
-+ printf "%s" "${CPPFLAGS} " | sed -e 's/-I. //'
- ;;
-
- --cppflags-searchpath)
-- echo $ECHO_N "-I${prefix}/include ${ECHO_C}"
-+ printf "%s" "-I${prefix}/include "
- ;;
-
- --cppflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCPPFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCPPFLAGS} "
- ;;
-
- --cxxflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCXXFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCXXFLAGS} "
- ;;
-
- --cflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCFLAGS} "
- ;;
-
- --ldflags-system)
-- echo $ECHO_N "${LIBS} ${ECHO_C}"
-+ printf "%s" "${LIBS} "
- ;;
-
- --ldflags)
-- echo $ECHO_N "${LDFLAGS} ${ICULIBS} ${ECHO_C}"
-+ printf "%s" "${LDFLAGS} ${ICULIBS} "
- # $RPATH_LDFLAGS
- ;;
-
- --ldflags-libsonly)
-- echo $ECHO_N "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} "
- ;;
-
- --ldflags-icuio)
-- echo $ECHO_N " ${ICULIBS_ICUIO} ${ECHO_C}"
-+ printf "%s" " ${ICULIBS_ICUIO} "
- ;;
-
- --ldflags-obsolete)
-- echo $ECHO_N "${ICULIBS_OBSOLETE} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_OBSOLETE} "
- ;;
-
- --ldflags-toolutil)
-- echo $ECHO_N " ${ICULIBS_TOOLUTIL} ${ECHO_C}"
-+ printf "%s" " ${ICULIBS_TOOLUTIL} "
- ;;
-
- --ldflags-layout)
-@@ -285,7 +285,7 @@
- ;;
-
- --ldflags-searchpath)
-- echo $ECHO_N "-L${libdir} ${ECHO_C}"
-+ printf "%s" "-L${libdir} "
- ;;
-
- --detect-prefix)
-@@ -321,47 +321,47 @@
- ;;
-
- --shared-datadir)
-- echo $ECHO_N "${datadir} ${ECHO_C}"
-+ printf "%s" "${datadir} "
- ;;
-
- --incfile)
-- echo $ECHO_N "${pkglibdir}/Makefile.inc ${ECHO_C}"
-+ printf "%s" "${pkglibdir}/Makefile.inc "
- ;;
-
- --incpkgdatafile)
-- echo $ECHO_N "${pkglibdir}/pkgdata.inc ${ECHO_C}"
-+ printf "%s" "${pkglibdir}/pkgdata.inc "
- ;;
-
- --icudata)
-- echo $ECHO_N "${ICUDATA_NAME} ${ECHO_C}"
-+ printf "%s" "${ICUDATA_NAME} "
- ;;
-
- --icudata-mode)
-- echo $ECHO_N "${PKGDATA_MODE} ${ECHO_C}"
-+ printf "%s" "${PKGDATA_MODE} "
- ;;
-
- --icudata-install-dir)
-- echo $ECHO_N "${ICUPKGDATA_DIR} ${ECHO_C}"
-+ printf "%s" "${ICUPKGDATA_DIR} "
- ;;
-
- --icudatadir)
-- echo $ECHO_N "${ICUDATA_DIR} ${ECHO_C}"
-+ printf "%s" "${ICUDATA_DIR} "
- ;;
-
- --shlib-c)
-- echo $ECHO_N "${SHLIB_c} ${ECHO_C}"
-+ printf "%s" "${SHLIB_c} "
- ;;
-
- --shlib-cc)
-- echo $ECHO_N "${SHLIB_cc} ${ECHO_C}"
-+ printf "%s" "${SHLIB_cc} "
- ;;
-
- --version)
-- echo $ECHO_N $VERSION
-+ printf "%s" "$VERSION"
- ;;
-
- --unicode-version)
-- echo $ECHO_N $UNICODE_VERSION
-+ printf "%s" "$UNICODE_VERSION"
- ;;
-
- --host)
-diff -ruN a/configure.ac b/configure.ac
---- a/configure.ac 2016-10-04 21:30:20.000000000 +0200
-+++ b/configure.ac 2016-11-05 19:43:07.688466668 +0100
-@@ -22,24 +22,6 @@
- PACKAGE="icu"
- AC_SUBST(PACKAGE)
-
--# Use custom echo test for newline option
--# Current autoconf (2.65) gives incorrect echo newline option
--# for icu-config
--# This may be removed later - mow (June 17, 2010)
--ICU_ECHO_C= ICU_ECHO_N= ICU_ECHO_T=
--case `/bin/sh -c "echo -n x"` in
---n*)
-- case `/bin/sh -c "echo 'x\c'"` in
-- *c*) ICU_ECHO_T=' ';; # ECHO_T is single tab character.
-- *) ICU_ECHO_C='\c';;
-- esac;;
--*)
-- ICU_ECHO_N='-n';;
--esac
--AC_SUBST(ICU_ECHO_N)
--AC_SUBST(ICU_ECHO_C)
--AC_SUBST(ICU_ECHO_T)
--
- AC_MSG_CHECKING(for ICU version numbers)
-
- # Get the ICU version from uversion.h or other headers
-diff -ruN a/icudefs.mk.in b/icudefs.mk.in
---- a/icudefs.mk.in 2016-09-09 23:28:18.000000000 +0200
-+++ b/icudefs.mk.in 2016-11-05 19:43:07.688466668 +0100
-@@ -157,11 +157,6 @@
- ENABLE_STATIC = @ENABLE_STATIC@
- ENABLE_SHARED = @ENABLE_SHARED@
-
--# Echo w/o newline
--
--#ECHO_N = @ICU_ECHO_N@
--#ECHO_C = @ICU_ECHO_C@
--
- # Commands to compile
- COMPILE.c= $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
- COMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
-diff -ruN a/test/hdrtst/Makefile.in b/test/hdrtst/Makefile.in
---- a/test/hdrtst/Makefile.in 2016-09-28 06:17:24.000000000 +0200
-+++ b/test/hdrtst/Makefile.in 2016-11-05 19:43:07.688466668 +0100
-@@ -35,9 +35,6 @@
- include $(shell icu-config --incfile)
- DIRS=$(prefix)/include/unicode
- LDIRS=$(prefix)/include/layout
--ECHO_T=@ECHO_T@
--ECHO_C=@ECHO_C@
--ECHO_N=@ECHO_N@
-
- all:
- @echo Please read this Makefile for more information.
diff --git a/dev-libs/icu/files/icu-64.2-extern_c.patch b/dev-libs/icu/files/icu-64.2-extern_c.patch
deleted file mode 100644
index 9a757e12037..00000000000
--- a/dev-libs/icu/files/icu-64.2-extern_c.patch
+++ /dev/null
@@ -1,789 +0,0 @@
-From 26bdef634585eb24946dba035611266e9431873b Mon Sep 17 00:00:00 2001
-From: Alon Bar-Lev <alon.barlev@gmail.com>
-Date: Sat, 30 Mar 2019 09:59:46 +0300
-Subject: [PATCH] ICU-20530 Fix header issues based on test/hdrtst
-
-Remove explicit extern "C++" scope.
-
-Remove C++ macros in C mode.
-
-Fix issues detected by make -C test/hdrtst.
-
-Run test/hdrtest during CI to detect future breakage.
-
-Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
-Closes: https://github.com/unicode-org/icu/pull/613
-Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
-diff --git a/icu4c/source/common/unicode/ucptrie.h b/icu4c/source/common/unicode/ucptrie.h
-index 2718c984e4..ce7340b890 100644
---- a/icu4c/source/common/unicode/ucptrie.h
-+++ b/icu4c/source/common/unicode/ucptrie.h
-@@ -216,25 +216,6 @@ ucptrie_openFromBinary(UCPTrieType type, UCPTrieValueWidth valueWidth,
- U_CAPI void U_EXPORT2
- ucptrie_close(UCPTrie *trie);
-
--#if U_SHOW_CPLUSPLUS_API
--
--U_NAMESPACE_BEGIN
--
--/**
-- * \class LocalUCPTriePointer
-- * "Smart pointer" class, closes a UCPTrie via ucptrie_close().
-- * For most methods see the LocalPointerBase base class.
-- *
-- * @see LocalPointerBase
-- * @see LocalPointer
-- * @draft ICU 63
-- */
--U_DEFINE_LOCAL_OPEN_POINTER(LocalUCPTriePointer, UCPTrie, ucptrie_close);
--
--U_NAMESPACE_END
--
--#endif
--
- /**
- * Returns the trie type.
- *
-@@ -642,5 +623,25 @@ ucptrie_internalU8PrevIndex(const UCPTrie *trie, UChar32 c,
- U_CDECL_END
-
- #endif // U_IN_DOXYGEN
-+
-+#if U_SHOW_CPLUSPLUS_API
-+
-+U_NAMESPACE_BEGIN
-+
-+/**
-+ * \class LocalUCPTriePointer
-+ * "Smart pointer" class, closes a UCPTrie via ucptrie_close().
-+ * For most methods see the LocalPointerBase base class.
-+ *
-+ * @see LocalPointerBase
-+ * @see LocalPointer
-+ * @draft ICU 63
-+ */
-+U_DEFINE_LOCAL_OPEN_POINTER(LocalUCPTriePointer, UCPTrie, ucptrie_close);
-+
-+U_NAMESPACE_END
-+
-+#endif // U_SHOW_CPLUSPLUS_API
-+
- #endif // U_HIDE_DRAFT_API
- #endif
-diff --git a/icu4c/source/common/unicode/udata.h b/icu4c/source/common/unicode/udata.h
-index a0286e1e42..325ffcf17d 100644
---- a/icu4c/source/common/unicode/udata.h
-+++ b/icu4c/source/common/unicode/udata.h
-@@ -264,25 +264,6 @@ udata_openChoice(const char *path, const char *type, const char *name,
- U_STABLE void U_EXPORT2
- udata_close(UDataMemory *pData);
-
--#if U_SHOW_CPLUSPLUS_API
--
--U_NAMESPACE_BEGIN
--
--/**
-- * \class LocalUDataMemoryPointer
-- * "Smart pointer" class, closes a UDataMemory via udata_close().
-- * For most methods see the LocalPointerBase base class.
-- *
-- * @see LocalPointerBase
-- * @see LocalPointer
-- * @stable ICU 4.4
-- */
--U_DEFINE_LOCAL_OPEN_POINTER(LocalUDataMemoryPointer, UDataMemory, udata_close);
--
--U_NAMESPACE_END
--
--#endif
--
- /**
- * Get the pointer to the actual data inside the data memory.
- * The data is read-only.
-@@ -434,4 +415,23 @@ udata_setFileAccess(UDataFileAccess access, UErrorCode *status);
-
- U_CDECL_END
-
-+#if U_SHOW_CPLUSPLUS_API
-+
-+U_NAMESPACE_BEGIN
-+
-+/**
-+ * \class LocalUDataMemoryPointer
-+ * "Smart pointer" class, closes a UDataMemory via udata_close().
-+ * For most methods see the LocalPointerBase base class.
-+ *
-+ * @see LocalPointerBase
-+ * @see LocalPointer
-+ * @stable ICU 4.4
-+ */
-+U_DEFINE_LOCAL_OPEN_POINTER(LocalUDataMemoryPointer, UDataMemory, udata_close);
-+
-+U_NAMESPACE_END
-+
-+#endif // U_SHOW_CPLUSPLUS_API
-+
- #endif
-diff --git a/icu4c/source/common/unicode/uversion.h b/icu4c/source/common/unicode/uversion.h
-index 4aaa8b4d60..5700f62cbf 100644
---- a/icu4c/source/common/unicode/uversion.h
-+++ b/icu4c/source/common/unicode/uversion.h
-@@ -62,26 +62,22 @@ typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH];
- /* C++ namespace if supported. Versioned unless versioning is disabled. */
- /*===========================================================================*/
-
-+/* Define C++ namespace symbols. */
-+#ifdef __cplusplus
-+
- /**
- * \def U_NAMESPACE_BEGIN
-- * This is used to begin a declaration of a public ICU C++ API.
-- * When not compiling for C++, it does nothing.
-- * When compiling for C++, it begins an extern "C++" linkage block (to protect
-- * against cases in which an external client includes ICU header files inside
-- * an extern "C" linkage block).
-+ * This is used to begin a declaration of a public ICU C++ API within
-+ * versioned-ICU-namespace block.
- *
-- * It also begins a versioned-ICU-namespace block.
- * @stable ICU 2.4
- */
-
- /**
- * \def U_NAMESPACE_END
- * This is used to end a declaration of a public ICU C++ API.
-- * When not compiling for C++, it does nothing.
-- * When compiling for C++, it ends the extern "C++" block begun by
-- * U_NAMESPACE_BEGIN.
-+ * It ends the versioned-ICU-namespace block begun by U_NAMESPACE_BEGIN.
- *
-- * It also ends the versioned-ICU-namespace block begun by U_NAMESPACE_BEGIN.
- * @stable ICU 2.4
- */
-
-@@ -89,9 +85,6 @@ typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH];
- * \def U_NAMESPACE_USE
- * This is used to specify that the rest of the code uses the
- * public ICU C++ API namespace.
-- * This is invoked by default; we recommend that you turn it off:
-- * See the "Recommended Build Options" section of the ICU4C readme
-- * (http://source.icu-project.org/repos/icu/icu/trunk/readme.html#RecBuild)
- * @stable ICU 2.4
- */
-
-@@ -105,8 +98,6 @@ typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH];
- * @stable ICU 2.4
- */
-
--/* Define C++ namespace symbols. */
--#ifdef __cplusplus
- # if U_DISABLE_RENAMING
- # define U_ICU_NAMESPACE icu
- namespace U_ICU_NAMESPACE { }
-@@ -116,8 +107,8 @@ typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH];
- namespace icu = U_ICU_NAMESPACE;
- # endif
-
--# define U_NAMESPACE_BEGIN extern "C++" { namespace U_ICU_NAMESPACE {
--# define U_NAMESPACE_END } }
-+# define U_NAMESPACE_BEGIN namespace U_ICU_NAMESPACE {
-+# define U_NAMESPACE_END }
- # define U_NAMESPACE_USE using namespace U_ICU_NAMESPACE;
- # define U_NAMESPACE_QUALIFIER U_ICU_NAMESPACE::
-
-@@ -133,12 +124,7 @@ typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH];
- # if U_USING_ICU_NAMESPACE
- U_NAMESPACE_USE
- # endif
--#else
--# define U_NAMESPACE_BEGIN
--# define U_NAMESPACE_END
--# define U_NAMESPACE_USE
--# define U_NAMESPACE_QUALIFIER
--#endif
-+#endif /* __cplusplus */
-
- /*===========================================================================*/
- /* General version helper functions. Definitions in putil.c */
-diff --git a/icu4c/source/i18n/unicode/reldatefmt.h b/icu4c/source/i18n/unicode/reldatefmt.h
-index 16ae91ad03..1e164a581a 100644
---- a/icu4c/source/i18n/unicode/reldatefmt.h
-+++ b/icu4c/source/i18n/unicode/reldatefmt.h
-@@ -246,6 +246,7 @@ class SharedPluralRules;
- class SharedBreakIterator;
- class NumberFormat;
- class UnicodeString;
-+class FormattedRelativeDateTime;
- class FormattedRelativeDateTimeData;
-
- #ifndef U_HIDE_DRAFT_API
-diff --git a/icu4c/source/i18n/unicode/uspoof.h b/icu4c/source/i18n/unicode/uspoof.h
-index d15ba4b242..ceb8484b6b 100644
---- a/icu4c/source/i18n/unicode/uspoof.h
-+++ b/icu4c/source/i18n/unicode/uspoof.h
-@@ -353,6 +353,8 @@
- * @stable ICU 4.6
- */
-
-+U_CDECL_BEGIN
-+
- struct USpoofChecker;
- /**
- * @stable ICU 4.2
-@@ -674,25 +676,6 @@ uspoof_openFromSource(const char *confusables, int32_t confusablesLen,
- U_STABLE void U_EXPORT2
- uspoof_close(USpoofChecker *sc);
-
--#if U_SHOW_CPLUSPLUS_API
--
--U_NAMESPACE_BEGIN
--
--/**
-- * \class LocalUSpoofCheckerPointer
-- * "Smart pointer" class, closes a USpoofChecker via uspoof_close().
-- * For most methods see the LocalPointerBase base class.
-- *
-- * @see LocalPointerBase
-- * @see LocalPointer
-- * @stable ICU 4.4
-- */
--U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckerPointer, USpoofChecker, uspoof_close);
--
--U_NAMESPACE_END
--
--#endif
--
- /**
- * Clone a Spoof Checker. The clone will be set to perform the same checks
- * as the original source.
-@@ -901,54 +884,6 @@ U_STABLE const USet * U_EXPORT2
- uspoof_getAllowedChars(const USpoofChecker *sc, UErrorCode *status);
-
-
--#if U_SHOW_CPLUSPLUS_API
--/**
-- * Limit the acceptable characters to those specified by a Unicode Set.
-- * Any previously specified character limit is
-- * is replaced by the new settings. This includes limits on
-- * characters that were set with the uspoof_setAllowedLocales() function.
-- *
-- * The USPOOF_CHAR_LIMIT test is automatically enabled for this
-- * USoofChecker by this function.
-- *
-- * @param sc The USpoofChecker
-- * @param chars A Unicode Set containing the list of
-- * characters that are permitted. Ownership of the set
-- * remains with the caller. The incoming set is cloned by
-- * this function, so there are no restrictions on modifying
-- * or deleting the UnicodeSet after calling this function.
-- * @param status The error code, set if this function encounters a problem.
-- * @stable ICU 4.2
-- */
--U_STABLE void U_EXPORT2
--uspoof_setAllowedUnicodeSet(USpoofChecker *sc, const icu::UnicodeSet *chars, UErrorCode *status);
--
--
--/**
-- * Get a UnicodeSet for the characters permitted in an identifier.
-- * This corresponds to the limits imposed by the Set Allowed Characters /
-- * UnicodeSet functions. Limitations imposed by other checks will not be
-- * reflected in the set returned by this function.
-- *
-- * The returned set will be frozen, meaning that it cannot be modified
-- * by the caller.
-- *
-- * Ownership of the returned set remains with the Spoof Detector. The
-- * returned set will become invalid if the spoof detector is closed,
-- * or if a new set of allowed characters is specified.
-- *
-- *
-- * @param sc The USpoofChecker
-- * @param status The error code, set if this function encounters a problem.
-- * @return A UnicodeSet containing the characters that are permitted by
-- * the USPOOF_CHAR_LIMIT test.
-- * @stable ICU 4.2
-- */
--U_STABLE const icu::UnicodeSet * U_EXPORT2
--uspoof_getAllowedUnicodeSet(const USpoofChecker *sc, UErrorCode *status);
--#endif
--
--
- /**
- * Check the specified string for possible security issues.
- * The text to be checked will typically be an identifier of some sort.
-@@ -1027,43 +962,6 @@ uspoof_checkUTF8(const USpoofChecker *sc,
- UErrorCode *status);
-
-
--#if U_SHOW_CPLUSPLUS_API
--/**
-- * Check the specified string for possible security issues.
-- * The text to be checked will typically be an identifier of some sort.
-- * The set of checks to be performed is specified with uspoof_setChecks().
-- *
-- * \note
-- * Consider using the newer API, {@link uspoof_check2UnicodeString}, instead.
-- * The newer API exposes additional information from the check procedure
-- * and is otherwise identical to this method.
-- *
-- * @param sc The USpoofChecker
-- * @param id A identifier to be checked for possible security issues.
-- * @param position Deprecated in ICU 51. Always returns zero.
-- * Originally, an out parameter for the index of the first
-- * string position that failed a check.
-- * This parameter may be NULL.
-- * @param status The error code, set if an error occurred while attempting to
-- * perform the check.
-- * Spoofing or security issues detected with the input string are
-- * not reported here, but through the function's return value.
-- * @return An integer value with bits set for any potential security
-- * or spoofing issues detected. The bits are defined by
-- * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS)
-- * will be zero if the input string passes all of the
-- * enabled checks.
-- * @see uspoof_check2UnicodeString
-- * @stable ICU 4.2
-- */
--U_STABLE int32_t U_EXPORT2
--uspoof_checkUnicodeString(const USpoofChecker *sc,
-- const icu::UnicodeString &id,
-- int32_t *position,
-- UErrorCode *status);
--#endif
--
--
- /**
- * Check the specified string for possible security issues.
- * The text to be checked will typically be an identifier of some sort.
-@@ -1135,39 +1033,6 @@ uspoof_check2UTF8(const USpoofChecker *sc,
- USpoofCheckResult* checkResult,
- UErrorCode *status);
-
--#if U_SHOW_CPLUSPLUS_API
--/**
-- * Check the specified string for possible security issues.
-- * The text to be checked will typically be an identifier of some sort.
-- * The set of checks to be performed is specified with uspoof_setChecks().
-- *
-- * @param sc The USpoofChecker
-- * @param id A identifier to be checked for possible security issues.
-- * @param checkResult An instance of USpoofCheckResult to be filled with
-- * details about the identifier. Can be NULL.
-- * @param status The error code, set if an error occurred while attempting to
-- * perform the check.
-- * Spoofing or security issues detected with the input string are
-- * not reported here, but through the function's return value.
-- * @return An integer value with bits set for any potential security
-- * or spoofing issues detected. The bits are defined by
-- * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS)
-- * will be zero if the input string passes all of the
-- * enabled checks. Any information in this bitmask will be
-- * consistent with the information saved in the optional
-- * checkResult parameter.
-- * @see uspoof_openCheckResult
-- * @see uspoof_check2
-- * @see uspoof_check2UTF8
-- * @stable ICU 58
-- */
--U_STABLE int32_t U_EXPORT2
--uspoof_check2UnicodeString(const USpoofChecker *sc,
-- const icu::UnicodeString &id,
-- USpoofCheckResult* checkResult,
-- UErrorCode *status);
--#endif
--
- /**
- * Create a USpoofCheckResult, used by the {@link uspoof_check2} class of functions to return
- * information about the identifier. Information includes:
-@@ -1199,32 +1064,6 @@ uspoof_openCheckResult(UErrorCode *status);
- U_STABLE void U_EXPORT2
- uspoof_closeCheckResult(USpoofCheckResult *checkResult);
-
--#if U_SHOW_CPLUSPLUS_API
--
--U_NAMESPACE_BEGIN
--
--/**
-- * \class LocalUSpoofCheckResultPointer
-- * "Smart pointer" class, closes a USpoofCheckResult via `uspoof_closeCheckResult()`.
-- * For most methods see the LocalPointerBase base class.
-- *
-- * @see LocalPointerBase
-- * @see LocalPointer
-- * @stable ICU 58
-- */
--
--/**
-- * \cond
-- * Note: Doxygen is giving a bogus warning on this U_DEFINE_LOCAL_OPEN_POINTER.
-- * For now, suppress with a Doxygen cond
-- */
--U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer, USpoofCheckResult, uspoof_closeCheckResult);
--/** \endcond */
--
--U_NAMESPACE_END
--
--#endif
--
- /**
- * Indicates which of the spoof check(s) have failed. The value is a bitwise OR of the constants for the tests
- * in question: USPOOF_RESTRICTION_LEVEL, USPOOF_CHAR_LIMIT, and so on.
-@@ -1355,36 +1194,6 @@ uspoof_areConfusableUTF8(const USpoofChecker *sc,
-
-
-
--#if U_SHOW_CPLUSPLUS_API
--/**
-- * A version of {@link uspoof_areConfusable} accepting UnicodeStrings.
-- *
-- * @param sc The USpoofChecker
-- * @param s1 The first of the two identifiers to be compared for
-- * confusability. The strings are in UTF-8 format.
-- * @param s2 The second of the two identifiers to be compared for
-- * confusability. The strings are in UTF-8 format.
-- * @param status The error code, set if an error occurred while attempting to
-- * perform the check.
-- * Confusability of the identifiers is not reported here,
-- * but through this function's return value.
-- * @return An integer value with bit(s) set corresponding to
-- * the type of confusability found, as defined by
-- * enum USpoofChecks. Zero is returned if the identifiers
-- * are not confusable.
-- *
-- * @stable ICU 4.2
-- *
-- * @see uspoof_areConfusable
-- */
--U_STABLE int32_t U_EXPORT2
--uspoof_areConfusableUnicodeString(const USpoofChecker *sc,
-- const icu::UnicodeString &s1,
-- const icu::UnicodeString &s2,
-- UErrorCode *status);
--#endif
--
--
- /**
- * Get the "skeleton" for an identifier.
- * Skeletons are a transformation of the input identifier;
-@@ -1463,38 +1272,6 @@ uspoof_getSkeletonUTF8(const USpoofChecker *sc,
- char *dest, int32_t destCapacity,
- UErrorCode *status);
-
--#if U_SHOW_CPLUSPLUS_API
--/**
-- * Get the "skeleton" for an identifier.
-- * Skeletons are a transformation of the input identifier;
-- * Two identifiers are confusable if their skeletons are identical.
-- * See Unicode UAX #39 for additional information.
-- *
-- * Using skeletons directly makes it possible to quickly check
-- * whether an identifier is confusable with any of some large
-- * set of existing identifiers, by creating an efficiently
-- * searchable collection of the skeletons.
-- *
-- * @param sc The USpoofChecker.
-- * @param type Deprecated in ICU 58. You may pass any number.
-- * Originally, controlled which of the Unicode confusable data
-- * tables to use.
-- * @param id The input identifier whose skeleton will be computed.
-- * @param dest The output identifier, to receive the skeleton string.
-- * @param status The error code, set if an error occurred while attempting to
-- * perform the check.
-- * @return A reference to the destination (skeleton) string.
-- *
-- * @stable ICU 4.2
-- */
--U_I18N_API icu::UnicodeString & U_EXPORT2
--uspoof_getSkeletonUnicodeString(const USpoofChecker *sc,
-- uint32_t type,
-- const icu::UnicodeString &id,
-- icu::UnicodeString &dest,
-- UErrorCode *status);
--#endif /* U_SHOW_CPLUSPLUS_API */
--
- /**
- * Get the set of Candidate Characters for Inclusion in Identifiers, as defined
- * in http://unicode.org/Public/security/latest/xidmodifications.txt
-@@ -1525,8 +1302,243 @@ uspoof_getInclusionSet(UErrorCode *status);
- U_STABLE const USet * U_EXPORT2
- uspoof_getRecommendedSet(UErrorCode *status);
-
-+/**
-+ * Serialize the data for a spoof detector into a chunk of memory.
-+ * The flattened spoof detection tables can later be used to efficiently
-+ * instantiate a new Spoof Detector.
-+ *
-+ * The serialized spoof checker includes only the data compiled from the
-+ * Unicode data tables by uspoof_openFromSource(); it does not include
-+ * include any other state or configuration that may have been set.
-+ *
-+ * @param sc the Spoof Detector whose data is to be serialized.
-+ * @param data a pointer to 32-bit-aligned memory to be filled with the data,
-+ * can be NULL if capacity==0
-+ * @param capacity the number of bytes available at data,
-+ * or 0 for preflighting
-+ * @param status an in/out ICU UErrorCode; possible errors include:
-+ * - U_BUFFER_OVERFLOW_ERROR if the data storage block is too small for serialization
-+ * - U_ILLEGAL_ARGUMENT_ERROR the data or capacity parameters are bad
-+ * @return the number of bytes written or needed for the spoof data
-+ *
-+ * @see utrie2_openFromSerialized()
-+ * @stable ICU 4.2
-+ */
-+U_STABLE int32_t U_EXPORT2
-+uspoof_serialize(USpoofChecker *sc,
-+ void *data, int32_t capacity,
-+ UErrorCode *status);
-+
-+U_CDECL_END
-+
- #if U_SHOW_CPLUSPLUS_API
-
-+U_NAMESPACE_BEGIN
-+
-+/**
-+ * \class LocalUSpoofCheckerPointer
-+ * "Smart pointer" class, closes a USpoofChecker via uspoof_close().
-+ * For most methods see the LocalPointerBase base class.
-+ *
-+ * @see LocalPointerBase
-+ * @see LocalPointer
-+ * @stable ICU 4.4
-+ */
-+/**
-+ * \cond
-+ * Note: Doxygen is giving a bogus warning on this U_DEFINE_LOCAL_OPEN_POINTER.
-+ * For now, suppress with a Doxygen cond
-+ */
-+U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckerPointer, USpoofChecker, uspoof_close);
-+/** \endcond */
-+
-+/**
-+ * \class LocalUSpoofCheckResultPointer
-+ * "Smart pointer" class, closes a USpoofCheckResult via `uspoof_closeCheckResult()`.
-+ * For most methods see the LocalPointerBase base class.
-+ *
-+ * @see LocalPointerBase
-+ * @see LocalPointer
-+ * @stable ICU 58
-+ */
-+
-+/**
-+ * \cond
-+ * Note: Doxygen is giving a bogus warning on this U_DEFINE_LOCAL_OPEN_POINTER.
-+ * For now, suppress with a Doxygen cond
-+ */
-+U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer, USpoofCheckResult, uspoof_closeCheckResult);
-+/** \endcond */
-+
-+U_NAMESPACE_END
-+
-+/**
-+ * Limit the acceptable characters to those specified by a Unicode Set.
-+ * Any previously specified character limit is
-+ * is replaced by the new settings. This includes limits on
-+ * characters that were set with the uspoof_setAllowedLocales() function.
-+ *
-+ * The USPOOF_CHAR_LIMIT test is automatically enabled for this
-+ * USoofChecker by this function.
-+ *
-+ * @param sc The USpoofChecker
-+ * @param chars A Unicode Set containing the list of
-+ * characters that are permitted. Ownership of the set
-+ * remains with the caller. The incoming set is cloned by
-+ * this function, so there are no restrictions on modifying
-+ * or deleting the UnicodeSet after calling this function.
-+ * @param status The error code, set if this function encounters a problem.
-+ * @stable ICU 4.2
-+ */
-+U_STABLE void U_EXPORT2
-+uspoof_setAllowedUnicodeSet(USpoofChecker *sc, const icu::UnicodeSet *chars, UErrorCode *status);
-+
-+
-+/**
-+ * Get a UnicodeSet for the characters permitted in an identifier.
-+ * This corresponds to the limits imposed by the Set Allowed Characters /
-+ * UnicodeSet functions. Limitations imposed by other checks will not be
-+ * reflected in the set returned by this function.
-+ *
-+ * The returned set will be frozen, meaning that it cannot be modified
-+ * by the caller.
-+ *
-+ * Ownership of the returned set remains with the Spoof Detector. The
-+ * returned set will become invalid if the spoof detector is closed,
-+ * or if a new set of allowed characters is specified.
-+ *
-+ *
-+ * @param sc The USpoofChecker
-+ * @param status The error code, set if this function encounters a problem.
-+ * @return A UnicodeSet containing the characters that are permitted by
-+ * the USPOOF_CHAR_LIMIT test.
-+ * @stable ICU 4.2
-+ */
-+U_STABLE const icu::UnicodeSet * U_EXPORT2
-+uspoof_getAllowedUnicodeSet(const USpoofChecker *sc, UErrorCode *status);
-+
-+/**
-+ * Check the specified string for possible security issues.
-+ * The text to be checked will typically be an identifier of some sort.
-+ * The set of checks to be performed is specified with uspoof_setChecks().
-+ *
-+ * \note
-+ * Consider using the newer API, {@link uspoof_check2UnicodeString}, instead.
-+ * The newer API exposes additional information from the check procedure
-+ * and is otherwise identical to this method.
-+ *
-+ * @param sc The USpoofChecker
-+ * @param id A identifier to be checked for possible security issues.
-+ * @param position Deprecated in ICU 51. Always returns zero.
-+ * Originally, an out parameter for the index of the first
-+ * string position that failed a check.
-+ * This parameter may be NULL.
-+ * @param status The error code, set if an error occurred while attempting to
-+ * perform the check.
-+ * Spoofing or security issues detected with the input string are
-+ * not reported here, but through the function's return value.
-+ * @return An integer value with bits set for any potential security
-+ * or spoofing issues detected. The bits are defined by
-+ * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS)
-+ * will be zero if the input string passes all of the
-+ * enabled checks.
-+ * @see uspoof_check2UnicodeString
-+ * @stable ICU 4.2
-+ */
-+U_STABLE int32_t U_EXPORT2
-+uspoof_checkUnicodeString(const USpoofChecker *sc,
-+ const icu::UnicodeString &id,
-+ int32_t *position,
-+ UErrorCode *status);
-+
-+/**
-+ * Check the specified string for possible security issues.
-+ * The text to be checked will typically be an identifier of some sort.
-+ * The set of checks to be performed is specified with uspoof_setChecks().
-+ *
-+ * @param sc The USpoofChecker
-+ * @param id A identifier to be checked for possible security issues.
-+ * @param checkResult An instance of USpoofCheckResult to be filled with
-+ * details about the identifier. Can be NULL.
-+ * @param status The error code, set if an error occurred while attempting to
-+ * perform the check.
-+ * Spoofing or security issues detected with the input string are
-+ * not reported here, but through the function's return value.
-+ * @return An integer value with bits set for any potential security
-+ * or spoofing issues detected. The bits are defined by
-+ * enum USpoofChecks. (returned_value & USPOOF_ALL_CHECKS)
-+ * will be zero if the input string passes all of the
-+ * enabled checks. Any information in this bitmask will be
-+ * consistent with the information saved in the optional
-+ * checkResult parameter.
-+ * @see uspoof_openCheckResult
-+ * @see uspoof_check2
-+ * @see uspoof_check2UTF8
-+ * @stable ICU 58
-+ */
-+U_STABLE int32_t U_EXPORT2
-+uspoof_check2UnicodeString(const USpoofChecker *sc,
-+ const icu::UnicodeString &id,
-+ USpoofCheckResult* checkResult,
-+ UErrorCode *status);
-+
-+/**
-+ * A version of {@link uspoof_areConfusable} accepting UnicodeStrings.
-+ *
-+ * @param sc The USpoofChecker
-+ * @param s1 The first of the two identifiers to be compared for
-+ * confusability. The strings are in UTF-8 format.
-+ * @param s2 The second of the two identifiers to be compared for
-+ * confusability. The strings are in UTF-8 format.
-+ * @param status The error code, set if an error occurred while attempting to
-+ * perform the check.
-+ * Confusability of the identifiers is not reported here,
-+ * but through this function's return value.
-+ * @return An integer value with bit(s) set corresponding to
-+ * the type of confusability found, as defined by
-+ * enum USpoofChecks. Zero is returned if the identifiers
-+ * are not confusable.
-+ *
-+ * @stable ICU 4.2
-+ *
-+ * @see uspoof_areConfusable
-+ */
-+U_STABLE int32_t U_EXPORT2
-+uspoof_areConfusableUnicodeString(const USpoofChecker *sc,
-+ const icu::UnicodeString &s1,
-+ const icu::UnicodeString &s2,
-+ UErrorCode *status);
-+
-+/**
-+ * Get the "skeleton" for an identifier.
-+ * Skeletons are a transformation of the input identifier;
-+ * Two identifiers are confusable if their skeletons are identical.
-+ * See Unicode UAX #39 for additional information.
-+ *
-+ * Using skeletons directly makes it possible to quickly check
-+ * whether an identifier is confusable with any of some large
-+ * set of existing identifiers, by creating an efficiently
-+ * searchable collection of the skeletons.
-+ *
-+ * @param sc The USpoofChecker.
-+ * @param type Deprecated in ICU 58. You may pass any number.
-+ * Originally, controlled which of the Unicode confusable data
-+ * tables to use.
-+ * @param id The input identifier whose skeleton will be computed.
-+ * @param dest The output identifier, to receive the skeleton string.
-+ * @param status The error code, set if an error occurred while attempting to
-+ * perform the check.
-+ * @return A reference to the destination (skeleton) string.
-+ *
-+ * @stable ICU 4.2
-+ */
-+U_I18N_API icu::UnicodeString & U_EXPORT2
-+uspoof_getSkeletonUnicodeString(const USpoofChecker *sc,
-+ uint32_t type,
-+ const icu::UnicodeString &id,
-+ icu::UnicodeString &dest,
-+ UErrorCode *status);
-+
- /**
- * Get the set of Candidate Characters for Inclusion in Identifiers, as defined
- * in http://unicode.org/Public/security/latest/xidmodifications.txt
-@@ -1559,34 +1571,6 @@ uspoof_getRecommendedUnicodeSet(UErrorCode *status);
-
- #endif /* U_SHOW_CPLUSPLUS_API */
-
--/**
-- * Serialize the data for a spoof detector into a chunk of memory.
-- * The flattened spoof detection tables can later be used to efficiently
-- * instantiate a new Spoof Detector.
-- *
-- * The serialized spoof checker includes only the data compiled from the
-- * Unicode data tables by uspoof_openFromSource(); it does not include
-- * include any other state or configuration that may have been set.
-- *
-- * @param sc the Spoof Detector whose data is to be serialized.
-- * @param data a pointer to 32-bit-aligned memory to be filled with the data,
-- * can be NULL if capacity==0
-- * @param capacity the number of bytes available at data,
-- * or 0 for preflighting
-- * @param status an in/out ICU UErrorCode; possible errors include:
-- * - U_BUFFER_OVERFLOW_ERROR if the data storage block is too small for serialization
-- * - U_ILLEGAL_ARGUMENT_ERROR the data or capacity parameters are bad
-- * @return the number of bytes written or needed for the spoof data
-- *
-- * @see utrie2_openFromSerialized()
-- * @stable ICU 4.2
-- */
--U_STABLE int32_t U_EXPORT2
--uspoof_serialize(USpoofChecker *sc,
-- void *data, int32_t capacity,
-- UErrorCode *status);
--
--
--#endif
-+#endif /* UCONFIG_NO_NORMALIZATION */
-
- #endif /* USPOOF_H */
---
-2.21.0
-
diff --git a/dev-libs/icu/icu-64.2.ebuild b/dev-libs/icu/icu-64.2.ebuild
deleted file mode 100644
index 8bf3f21fb54..00000000000
--- a/dev-libs/icu/icu-64.2.ebuild
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="http://www.icu-project.org/"
-SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"
-
-LICENSE="BSD"
-
-SLOT="0/${PV}"
-
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="debug doc examples static-libs"
-
-BDEPEND="${PYTHON_DEPS}
- virtual/pkgconfig
- doc? ( app-doc/doxygen[dot] )
-"
-
-S="${WORKDIR}/${PN}/source"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-58.1-remove-bashisms.patch"
- "${FILESDIR}/${PN}-64.2-darwin.patch"
- "${FILESDIR}/${PN}-64.1-data_archive_generation.patch"
-)
-
-src_prepare() {
- default
- eapply -p3 "${FILESDIR}/${PN}-64.2-extern_c.patch"
-
- local variable
-
- # Disable renaming as it is stupid thing to do
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- append-cxxflags -std=c++14
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- --disable-layoutex
- $(use_enable debug)
- $(use_enable static-libs static)
- $(multilib_native_use_enable examples samples)
- )
-
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # icu tries to use clang by default
- tc-export CC CXX
-
- # make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL="${EPREFIX}/bin/sh"
- # probably have no /bin/sh in prefix-chain
- [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 VERBOSE="1" check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- docinto html
- dodoc -r doc/html/*
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
- docinto html
- dodoc ../readme.html
-}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2020-02-26 11:49 Andreas Sturmlechner
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Sturmlechner @ 2020-02-26 11:49 UTC (permalink / raw
To: gentoo-commits
commit: 156d2bd5e79f0d331afc1ff82b565350fe5ea93c
Author: Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
AuthorDate: Wed Feb 26 11:15:01 2020 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Feb 26 11:49:08 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=156d2bd5
dev-libs/icu: add patch to fix integer overflow
Bug: https://bugs.gentoo.org/710758
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
Closes: https://github.com/gentoo/gentoo/pull/14779
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/icu/files/icu-65.1-integer-overflow.patch | 118 +++++++++++++++++
dev-libs/icu/icu-65.1-r1.ebuild | 143 +++++++++++++++++++++
2 files changed, 261 insertions(+)
diff --git a/dev-libs/icu/files/icu-65.1-integer-overflow.patch b/dev-libs/icu/files/icu-65.1-integer-overflow.patch
new file mode 100644
index 00000000000..8e76a9f289d
--- /dev/null
+++ b/dev-libs/icu/files/icu-65.1-integer-overflow.patch
@@ -0,0 +1,118 @@
+From b7d08bc04a4296982fcef8b6b8a354a9e4e7afca Mon Sep 17 00:00:00 2001
+From: Frank Tang <ftang@chromium.org>
+Date: Sat, 1 Feb 2020 02:39:04 +0000
+Subject: [PATCH] ICU-20958 Prevent SEGV_MAPERR in append
+
+See #971
+---
+ common/unistr.cpp | 6 ++-
+ test/intltest/ustrtest.cpp | 62 +++++++++++++++++++++++++
+ test/intltest/ustrtest.h | 1 +
+ 3 files changed, 68 insertions(+), 1 deletion(-)
+
+diff --git a/common/unistr.cpp b/common/unistr.cpp
+index 901bb3358ba..077b4d6ef20 100644
+--- a/common/unistr.cpp
++++ b/common/unistr.cpp
+@@ -1563,7 +1563,11 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng
+ }
+
+ int32_t oldLength = length();
+- int32_t newLength = oldLength + srcLength;
++ int32_t newLength;
++ if (uprv_add32_overflow(oldLength, srcLength, &newLength)) {
++ setToBogus();
++ return *this;
++ }
+
+ // Check for append onto ourself
+ const UChar* oldArray = getArrayStart();
+diff --git a/test/intltest/ustrtest.cpp b/test/intltest/ustrtest.cpp
+index b6515ea813c..ad38bdf53a3 100644
+--- a/test/intltest/ustrtest.cpp
++++ b/test/intltest/ustrtest.cpp
+@@ -67,6 +67,7 @@ void UnicodeStringTest::runIndexedTest( int32_t index, UBool exec, const char* &
+ TESTCASE_AUTO(TestWCharPointers);
+ TESTCASE_AUTO(TestNullPointers);
+ TESTCASE_AUTO(TestUnicodeStringInsertAppendToSelf);
++ TESTCASE_AUTO(TestLargeAppend);
+ TESTCASE_AUTO_END;
+ }
+
+@@ -2310,3 +2311,64 @@ void UnicodeStringTest::TestUnicodeStringInsertAppendToSelf() {
+ str.insert(2, sub);
+ assertEquals("", u"abbcdcde", str);
+ }
++
++void UnicodeStringTest::TestLargeAppend() {
++ if(quick) return;
++
++ IcuTestErrorCode status(*this, "TestLargeAppend");
++ // Make a large UnicodeString
++ int32_t len = 0xAFFFFFF;
++ UnicodeString str;
++ char16_t *buf = str.getBuffer(len);
++ // A fast way to set buffer to valid Unicode.
++ // 4E4E is a valid unicode character
++ uprv_memset(buf, 0x4e, len * 2);
++ str.releaseBuffer(len);
++ UnicodeString dest;
++ // Append it 16 times
++ // 0xAFFFFFF times 16 is 0xA4FFFFF1,
++ // which is greater than INT32_MAX, which is 0x7FFFFFFF.
++ int64_t total = 0;
++ for (int32_t i = 0; i < 16; i++) {
++ dest.append(str);
++ total += len;
++ if (total <= INT32_MAX) {
++ assertFalse("dest is not bogus", dest.isBogus());
++ } else {
++ assertTrue("dest should be bogus", dest.isBogus());
++ }
++ }
++ dest.remove();
++ total = 0;
++ for (int32_t i = 0; i < 16; i++) {
++ dest.append(str);
++ total += len;
++ if (total + len <= INT32_MAX) {
++ assertFalse("dest is not bogus", dest.isBogus());
++ } else if (total <= INT32_MAX) {
++ // Check that a string of exactly the maximum size works
++ UnicodeString str2;
++ int32_t remain = INT32_MAX - total;
++ char16_t *buf2 = str2.getBuffer(remain);
++ if (buf2 == nullptr) {
++ // if somehow memory allocation fail, return the test
++ return;
++ }
++ uprv_memset(buf2, 0x4e, remain * 2);
++ str2.releaseBuffer(remain);
++ dest.append(str2);
++ total += remain;
++ assertEquals("When a string of exactly the maximum size works", (int64_t)INT32_MAX, total);
++ assertEquals("When a string of exactly the maximum size works", INT32_MAX, dest.length());
++ assertFalse("dest is not bogus", dest.isBogus());
++
++ // Check that a string size+1 goes bogus
++ str2.truncate(1);
++ dest.append(str2);
++ total++;
++ assertTrue("dest should be bogus", dest.isBogus());
++ } else {
++ assertTrue("dest should be bogus", dest.isBogus());
++ }
++ }
++}
+diff --git a/test/intltest/ustrtest.h b/test/intltest/ustrtest.h
+index 218befdcc68..4a356a92c7a 100644
+--- a/test/intltest/ustrtest.h
++++ b/test/intltest/ustrtest.h
+@@ -97,6 +97,7 @@ class UnicodeStringTest: public IntlTest {
+ void TestWCharPointers();
+ void TestNullPointers();
+ void TestUnicodeStringInsertAppendToSelf();
++ void TestLargeAppend();
+ };
+
+ #endif
diff --git a/dev-libs/icu/icu-65.1-r1.ebuild b/dev-libs/icu/icu-65.1-r1.ebuild
new file mode 100644
index 00000000000..d8ae0db9cdb
--- /dev/null
+++ b/dev-libs/icu/icu-65.1-r1.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs
+
+DESCRIPTION="International Components for Unicode"
+HOMEPAGE="http://www.icu-project.org/"
+SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${PV//./-}/icu4c-${PV//./_}-src.tgz"
+
+LICENSE="BSD"
+
+SLOT="0/${PV}"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+IUSE="debug doc examples static-libs"
+
+BDEPEND="${PYTHON_DEPS}
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen[dot] )
+"
+
+S="${WORKDIR}/${PN}/source"
+
+MULTILIB_CHOST_TOOLS=(
+ /usr/bin/icu-config
+)
+
+PATCHES=(
+ "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
+ "${FILESDIR}/${PN}-64.2-darwin.patch"
+ "${FILESDIR}/${PN}-64.1-data_archive_generation.patch"
+ "${FILESDIR}/${PN}-65.1-integer-overflow.patch" # bug 710758
+)
+
+src_prepare() {
+ default
+
+ local variable
+
+ # Disable renaming as it is stupid thing to do
+ sed -i \
+ -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
+ common/unicode/uconfig.h || die
+
+ # Fix linking of icudata
+ sed -i \
+ -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
+ config/mh-linux || die
+
+ # Append doxygen configuration to configure
+ sed -i \
+ -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
+ configure.ac || die
+
+ eautoreconf
+}
+
+src_configure() {
+ append-cxxflags -std=c++14
+
+ if tc-is-cross-compiler; then
+ mkdir "${WORKDIR}"/host || die
+ pushd "${WORKDIR}"/host >/dev/null || die
+
+ CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
+ CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
+ RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
+ "${S}"/configure --disable-renaming --disable-debug \
+ --disable-samples --enable-static || die
+ emake
+
+ popd >/dev/null || die
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --disable-renaming
+ --disable-samples
+ --disable-layoutex
+ $(use_enable debug)
+ $(use_enable static-libs static)
+ $(multilib_native_use_enable examples samples)
+ )
+
+ tc-is-cross-compiler && myeconfargs+=(
+ --with-cross-build="${WORKDIR}"/host
+ )
+
+ # icu tries to use clang by default
+ tc-export CC CXX
+
+ # make sure we configure with the same shell as we run icu-config
+ # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
+ export CONFIG_SHELL="${EPREFIX}/bin/sh"
+ # probably have no /bin/sh in prefix-chain
+ [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ doxygen -u Doxyfile || die
+ doxygen Doxyfile || die
+ fi
+}
+
+multilib_src_test() {
+ # INTLTEST_OPTS: intltest options
+ # -e: Exhaustive testing
+ # -l: Reporting of memory leaks
+ # -v: Increased verbosity
+ # IOTEST_OPTS: iotest options
+ # -e: Exhaustive testing
+ # -v: Increased verbosity
+ # CINTLTST_OPTS: cintltst options
+ # -e: Exhaustive testing
+ # -v: Increased verbosity
+ emake -j1 VERBOSE="1" check
+}
+
+multilib_src_install() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ docinto html
+ dodoc -r doc/html/*
+ fi
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ docinto html
+ dodoc ../readme.html
+}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2020-06-06 17:48 Andreas Sturmlechner
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Sturmlechner @ 2020-06-06 17:48 UTC (permalink / raw
To: gentoo-commits
commit: 768c299432b08c62219b645905ada45b6d83d128
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 6 17:43:47 2020 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Jun 6 17:48:03 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=768c2994
dev-libs/icu: Drop 65.1-r1 ad 66.1
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/icu/Manifest | 2 -
.../files/icu-64.1-data_archive_generation.patch | 14 --
dev-libs/icu/files/icu-65.1-integer-overflow.patch | 118 -----------------
dev-libs/icu/icu-65.1-r1.ebuild | 143 ---------------------
dev-libs/icu/icu-66.1.ebuild | 143 ---------------------
5 files changed, 420 deletions(-)
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index b0ef99e45df..0a1add51ea7 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,3 +1 @@
-DIST icu4c-65_1-src.tgz 24267934 BLAKE2B 3c62781201c02a2b1027c9b6db4586f8ccdfb339c0765301a381242d5218f3503a1cdbdc1dc9a1a23ffa657096adc4bf7f0b7fe702461f14beba293a7e82e02c SHA512 8f1ef33e1f4abc9a8ee870331c59f01b473d6da1251a19ce403f822f3e3871096f0791855d39c8f20c612fc49cda2c62c06864aa32ddab2dbd186d2b21ce9139
-DIST icu4c-66_1-src.tgz 24361305 BLAKE2B db26e9380305601f8429366e2813ce3ccae11f34adde513d72a1ae09281a2078ce5eb7410bc788c717167018b4c2042fc83217fac22f34e26b94ee4621a6b4ec SHA512 78d87bce65a7bdf7e9a19bda13e353c60846816ff34025f829d1ff15f9ac49aa6061eb192173742be0eca105684ce0e39e95656147afe848520bf60274c8d246
DIST icu4c-67_1-src.tgz 24518055 BLAKE2B f8a263b5c3e5e8ffea88a3bb766cb265aac026b5f9b2f45a1f06076f99f9f0dc3a4512487652d774ccfc8dc65f8f4c40a974e0aa2aa4381ee0c9885f6b871779 SHA512 4779f1ce1ca7976f6fad6768853ea8c540da54d11509e3b6cfd864a04b5f2db1c3d4b546387f91ad02fb90804525bc37d2543173f0d705d6ca11dc6f2b7640a8
diff --git a/dev-libs/icu/files/icu-64.1-data_archive_generation.patch b/dev-libs/icu/files/icu-64.1-data_archive_generation.patch
deleted file mode 100644
index 3bb7673f254..00000000000
--- a/dev-libs/icu/files/icu-64.1-data_archive_generation.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-https://bugs.gentoo.org/682170
-
---- a/data/Makefile.in
-+++ b/data/Makefile.in
-@@ -148,7 +148,8 @@
- # and convert it to the current type.
- ifneq ($(ICUDATA_ARCHIVE),)
- ICUDATA_SOURCE_ARCHIVE = $(OUTDIR)/$(ICUDATA_PLATFORM_NAME).dat
--$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE) $(OUTDIR)
-+$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE)
-+ $(MKINSTALLDIRS) $(OUTDIR)
- $(INVOKE) $(TOOLBINDIR)/icupkg -t$(ICUDATA_CHAR) $(ICUDATA_ARCHIVE) $(ICUDATA_SOURCE_ARCHIVE)
- endif
- else
diff --git a/dev-libs/icu/files/icu-65.1-integer-overflow.patch b/dev-libs/icu/files/icu-65.1-integer-overflow.patch
deleted file mode 100644
index 8e76a9f289d..00000000000
--- a/dev-libs/icu/files/icu-65.1-integer-overflow.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From b7d08bc04a4296982fcef8b6b8a354a9e4e7afca Mon Sep 17 00:00:00 2001
-From: Frank Tang <ftang@chromium.org>
-Date: Sat, 1 Feb 2020 02:39:04 +0000
-Subject: [PATCH] ICU-20958 Prevent SEGV_MAPERR in append
-
-See #971
----
- common/unistr.cpp | 6 ++-
- test/intltest/ustrtest.cpp | 62 +++++++++++++++++++++++++
- test/intltest/ustrtest.h | 1 +
- 3 files changed, 68 insertions(+), 1 deletion(-)
-
-diff --git a/common/unistr.cpp b/common/unistr.cpp
-index 901bb3358ba..077b4d6ef20 100644
---- a/common/unistr.cpp
-+++ b/common/unistr.cpp
-@@ -1563,7 +1563,11 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng
- }
-
- int32_t oldLength = length();
-- int32_t newLength = oldLength + srcLength;
-+ int32_t newLength;
-+ if (uprv_add32_overflow(oldLength, srcLength, &newLength)) {
-+ setToBogus();
-+ return *this;
-+ }
-
- // Check for append onto ourself
- const UChar* oldArray = getArrayStart();
-diff --git a/test/intltest/ustrtest.cpp b/test/intltest/ustrtest.cpp
-index b6515ea813c..ad38bdf53a3 100644
---- a/test/intltest/ustrtest.cpp
-+++ b/test/intltest/ustrtest.cpp
-@@ -67,6 +67,7 @@ void UnicodeStringTest::runIndexedTest( int32_t index, UBool exec, const char* &
- TESTCASE_AUTO(TestWCharPointers);
- TESTCASE_AUTO(TestNullPointers);
- TESTCASE_AUTO(TestUnicodeStringInsertAppendToSelf);
-+ TESTCASE_AUTO(TestLargeAppend);
- TESTCASE_AUTO_END;
- }
-
-@@ -2310,3 +2311,64 @@ void UnicodeStringTest::TestUnicodeStringInsertAppendToSelf() {
- str.insert(2, sub);
- assertEquals("", u"abbcdcde", str);
- }
-+
-+void UnicodeStringTest::TestLargeAppend() {
-+ if(quick) return;
-+
-+ IcuTestErrorCode status(*this, "TestLargeAppend");
-+ // Make a large UnicodeString
-+ int32_t len = 0xAFFFFFF;
-+ UnicodeString str;
-+ char16_t *buf = str.getBuffer(len);
-+ // A fast way to set buffer to valid Unicode.
-+ // 4E4E is a valid unicode character
-+ uprv_memset(buf, 0x4e, len * 2);
-+ str.releaseBuffer(len);
-+ UnicodeString dest;
-+ // Append it 16 times
-+ // 0xAFFFFFF times 16 is 0xA4FFFFF1,
-+ // which is greater than INT32_MAX, which is 0x7FFFFFFF.
-+ int64_t total = 0;
-+ for (int32_t i = 0; i < 16; i++) {
-+ dest.append(str);
-+ total += len;
-+ if (total <= INT32_MAX) {
-+ assertFalse("dest is not bogus", dest.isBogus());
-+ } else {
-+ assertTrue("dest should be bogus", dest.isBogus());
-+ }
-+ }
-+ dest.remove();
-+ total = 0;
-+ for (int32_t i = 0; i < 16; i++) {
-+ dest.append(str);
-+ total += len;
-+ if (total + len <= INT32_MAX) {
-+ assertFalse("dest is not bogus", dest.isBogus());
-+ } else if (total <= INT32_MAX) {
-+ // Check that a string of exactly the maximum size works
-+ UnicodeString str2;
-+ int32_t remain = INT32_MAX - total;
-+ char16_t *buf2 = str2.getBuffer(remain);
-+ if (buf2 == nullptr) {
-+ // if somehow memory allocation fail, return the test
-+ return;
-+ }
-+ uprv_memset(buf2, 0x4e, remain * 2);
-+ str2.releaseBuffer(remain);
-+ dest.append(str2);
-+ total += remain;
-+ assertEquals("When a string of exactly the maximum size works", (int64_t)INT32_MAX, total);
-+ assertEquals("When a string of exactly the maximum size works", INT32_MAX, dest.length());
-+ assertFalse("dest is not bogus", dest.isBogus());
-+
-+ // Check that a string size+1 goes bogus
-+ str2.truncate(1);
-+ dest.append(str2);
-+ total++;
-+ assertTrue("dest should be bogus", dest.isBogus());
-+ } else {
-+ assertTrue("dest should be bogus", dest.isBogus());
-+ }
-+ }
-+}
-diff --git a/test/intltest/ustrtest.h b/test/intltest/ustrtest.h
-index 218befdcc68..4a356a92c7a 100644
---- a/test/intltest/ustrtest.h
-+++ b/test/intltest/ustrtest.h
-@@ -97,6 +97,7 @@ class UnicodeStringTest: public IntlTest {
- void TestWCharPointers();
- void TestNullPointers();
- void TestUnicodeStringInsertAppendToSelf();
-+ void TestLargeAppend();
- };
-
- #endif
diff --git a/dev-libs/icu/icu-65.1-r1.ebuild b/dev-libs/icu/icu-65.1-r1.ebuild
deleted file mode 100644
index c9da3aba449..00000000000
--- a/dev-libs/icu/icu-65.1-r1.ebuild
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="http://site.icu-project.org/"
-SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${PV//./-}/icu4c-${PV//./_}-src.tgz"
-
-LICENSE="BSD"
-
-SLOT="0/${PV}"
-
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="debug doc examples static-libs"
-
-BDEPEND="${PYTHON_DEPS}
- virtual/pkgconfig
- doc? ( app-doc/doxygen[dot] )
-"
-
-S="${WORKDIR}/${PN}/source"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
- "${FILESDIR}/${PN}-64.2-darwin.patch"
- "${FILESDIR}/${PN}-64.1-data_archive_generation.patch"
- "${FILESDIR}/${PN}-65.1-integer-overflow.patch" # bug 710758
-)
-
-src_prepare() {
- default
-
- local variable
-
- # Disable renaming as it is stupid thing to do
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- append-cxxflags -std=c++14
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- --disable-layoutex
- $(use_enable debug)
- $(use_enable static-libs static)
- $(multilib_native_use_enable examples samples)
- )
-
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # icu tries to use clang by default
- tc-export CC CXX
-
- # make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL="${EPREFIX}/bin/sh"
- # probably have no /bin/sh in prefix-chain
- [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 VERBOSE="1" check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- docinto html
- dodoc -r doc/html/*
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
- docinto html
- dodoc ../readme.html
-}
diff --git a/dev-libs/icu/icu-66.1.ebuild b/dev-libs/icu/icu-66.1.ebuild
deleted file mode 100644
index eb697d7529b..00000000000
--- a/dev-libs/icu/icu-66.1.ebuild
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="http://site.icu-project.org/"
-SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${PV//./-}/icu4c-${PV//./_}-src.tgz"
-
-LICENSE="BSD"
-
-SLOT="0/${PV}"
-
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="debug doc examples static-libs"
-
-BDEPEND="${PYTHON_DEPS}
- virtual/pkgconfig
- doc? ( app-doc/doxygen[dot] )
-"
-
-S="${WORKDIR}/${PN}/source"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
- "${FILESDIR}/${PN}-64.2-darwin.patch"
- "${FILESDIR}/${PN}-64.1-data_archive_generation.patch"
- "${FILESDIR}/${PN}-65.1-integer-overflow.patch" # bug 710758
-)
-
-src_prepare() {
- default
-
- local variable
-
- # Disable renaming as it is stupid thing to do
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- append-cxxflags -std=c++14
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- --disable-layoutex
- $(use_enable debug)
- $(use_enable static-libs static)
- $(multilib_native_use_enable examples samples)
- )
-
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # icu tries to use clang by default
- tc-export CC CXX
-
- # make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL="${EPREFIX}/bin/sh"
- # probably have no /bin/sh in prefix-chain
- [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 VERBOSE="1" check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- docinto html
- dodoc -r doc/html/*
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
- docinto html
- dodoc ../readme.html
-}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2020-11-28 18:54 Andreas K. Hüttel
0 siblings, 0 replies; 19+ messages in thread
From: Andreas K. Hüttel @ 2020-11-28 18:54 UTC (permalink / raw
To: gentoo-commits
commit: 9442d61a4c4d8483f53868776586446aba7a7d78
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 28 18:51:05 2020 +0000
Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Nov 28 18:53:56 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9442d61a
dev-libs/icu: Allow non-utf8 locales again
Bug: https://bugs.gentoo.org/679674
Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>
dev-libs/icu/files/icu-68.1-nonunicode.patch | 12 ++++++++++++
dev-libs/icu/icu-68.1.ebuild | 1 +
2 files changed, 13 insertions(+)
diff --git a/dev-libs/icu/files/icu-68.1-nonunicode.patch b/dev-libs/icu/files/icu-68.1-nonunicode.patch
new file mode 100644
index 00000000000..e02c1413d99
--- /dev/null
+++ b/dev-libs/icu/files/icu-68.1-nonunicode.patch
@@ -0,0 +1,12 @@
+diff -ruN a/common/unicode/platform.h b/common/unicode/platform.h
+--- a/common/unicode/platform.h 2020-10-28 23:21:12.000000000 +0200
++++ b/common/unicode/platform.h 2020-11-28 20:48:53.223629867 +0200
+@@ -649,7 +649,7 @@
+ /* Use the predefined value. */
+ #elif U_PLATFORM_IS_LINUX_BASED || U_PLATFORM_IS_DARWIN_BASED || \
+ U_PLATFORM == U_PF_EMSCRIPTEN
+-# define U_CHARSET_IS_UTF8 1
++# define U_CHARSET_IS_UTF8 0
+ #else
+ # define U_CHARSET_IS_UTF8 0
+ #endif
diff --git a/dev-libs/icu/icu-68.1.ebuild b/dev-libs/icu/icu-68.1.ebuild
index 50248a6dbbd..e13a81c1b33 100644
--- a/dev-libs/icu/icu-68.1.ebuild
+++ b/dev-libs/icu/icu-68.1.ebuild
@@ -31,6 +31,7 @@ MULTILIB_CHOST_TOOLS=(
PATCHES=(
"${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
"${FILESDIR}/${PN}-64.2-darwin.patch"
+ "${FILESDIR}/${PN}-68.1-nonunicode.patch"
)
src_prepare() {
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2021-09-24 18:15 Sam James
0 siblings, 0 replies; 19+ messages in thread
From: Sam James @ 2021-09-24 18:15 UTC (permalink / raw
To: gentoo-commits
commit: 7a771de8495a19e73ee8c2bd3cd7f08fbe341e7d
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 24 18:13:44 2021 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Sep 24 18:13:44 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a771de8
dev-libs/icu: add upstream patch for test failure
This may cause runtime breakage (not just a failure
in a test, but exposed by it on hppa and actually riscv) and
it's a straightforward patch, so let's `git mv` in stable.
Bug: https://bugs.gentoo.org/788112
Closes: https://bugs.gentoo.org/807893
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/icu/files/icu-69.1-fix-ub-units.patch | 23 ++++++++++++++++++++++
.../icu/{icu-69.1.ebuild => icu-69.1-r1.ebuild} | 3 +++
2 files changed, 26 insertions(+)
diff --git a/dev-libs/icu/files/icu-69.1-fix-ub-units.patch b/dev-libs/icu/files/icu-69.1-fix-ub-units.patch
new file mode 100644
index 00000000000..6847d585155
--- /dev/null
+++ b/dev-libs/icu/files/icu-69.1-fix-ub-units.patch
@@ -0,0 +1,23 @@
+https://github.com/unicode-org/icu/pull/1715
+https://bugs.gentoo.org/788112
+
+From 29f1188d191a7a75ac7ffa4bfa390f625da39c53 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@suse.de>
+Date: Tue, 11 May 2021 19:04:24 +0200
+Subject: [PATCH] ICU-21613 Fix undefined behaviour in
+ ComplexUnitsConverter::applyRounder
+
+--- a/i18n/units_complexconverter.cpp
++++ b/i18n/units_complexconverter.cpp
+@@ -237,6 +237,11 @@ void ComplexUnitsConverter::applyRounder(MaybeStackArray<int64_t, 5> &intValues,
+ }
+ quantity = decimalQuantity.toDouble();
+
++ if (uprv_isNaN(quantity) || uprv_isInfinite(quantity)) {
++ // Do nothing for non-finite values, since conversion to int64_t is undefined
++ return;
++ }
++
+ int32_t lastIndex = unitsConverters_.length() - 1;
+ if (lastIndex == 0) {
+ // Only one element, no need to bubble up the carry
diff --git a/dev-libs/icu/icu-69.1.ebuild b/dev-libs/icu/icu-69.1-r1.ebuild
similarity index 96%
rename from dev-libs/icu/icu-69.1.ebuild
rename to dev-libs/icu/icu-69.1-r1.ebuild
index 1d2630ee16e..b540e57c81b 100644
--- a/dev-libs/icu/icu-69.1.ebuild
+++ b/dev-libs/icu/icu-69.1-r1.ebuild
@@ -32,6 +32,9 @@ PATCHES=(
"${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
"${FILESDIR}/${PN}-64.2-darwin.patch"
"${FILESDIR}/${PN}-68.1-nonunicode.patch"
+ # Should be in the next rleease, but check
+ # https://bugs.gentoo.org/788112
+ "${FILESDIR}/${PN}-69.1-fix-ub-units.patch"
)
src_prepare() {
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2022-01-14 20:46 Sam James
0 siblings, 0 replies; 19+ messages in thread
From: Sam James @ 2022-01-14 20:46 UTC (permalink / raw
To: gentoo-commits
commit: 46f716736cde3356966f1f3eb97ae1bb4035a9d9
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 14 20:41:37 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jan 14 20:45:32 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=46f71673
dev-libs/icu: backport test failure fix for ARM; add missing BDEPEND
- Backport test failure fix (not within test itself so let's revbump
as could affect runtime behaviour). Noticed after Exherbo committed
it, so gave the test suite a go on arm, and indeed it failed & this
sorts it out.
(Only usage is within the test suite but it seems to be an exported
function, so let's not take the risk.)
- Add missing autoconf-archive BDEPEND (thanks juippis).
Closes: https://bugs.gentoo.org/827034
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/icu/files/icu-70.1-fix-ucptrietest.patch | 38 ++++++++++++++++++++++
.../icu/{icu-70.1.ebuild => icu-70.1-r1.ebuild} | 6 ++--
2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/dev-libs/icu/files/icu-70.1-fix-ucptrietest.patch b/dev-libs/icu/files/icu-70.1-fix-ucptrietest.patch
new file mode 100644
index 000000000000..05d390a1284a
--- /dev/null
+++ b/dev-libs/icu/files/icu-70.1-fix-ucptrietest.patch
@@ -0,0 +1,38 @@
+Fixes test failure on arm.
+
+https://github.com/unicode-org/icu/pull/1925
+https://unicode-org.atlassian.net/browse/ICU-21793
+
+From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Lal?= <kapouer@melix.org>
+Date: Wed, 3 Nov 2021 02:31:18 +0100
+Subject: [PATCH] ICU-21793 Fix ucptrietest golden diff
+
+--- a/tools/toolutil/toolutil.cpp
++++ b/tools/toolutil/toolutil.cpp
+@@ -228,18 +228,19 @@ uprv_compareGoldenFiles(
+ std::ifstream ifs(goldenFilePath, std::ifstream::in);
+ int32_t pos = 0;
+ char c;
+- while ((c = ifs.get()) != std::char_traits<char>::eof() && pos < bufferLen) {
++ while (ifs.get(c) && pos < bufferLen) {
+ if (c != buffer[pos]) {
+ // Files differ at this position
+- return pos;
++ break;
+ }
+ pos++;
+ }
+- if (pos < bufferLen || c != std::char_traits<char>::eof()) {
+- // Files are different lengths
+- return pos;
++ if (pos == bufferLen && ifs.eof()) {
++ // Files are same lengths
++ pos = -1;
+ }
+- return -1;
++ ifs.close();
++ return pos;
+ }
+
+ /*U_CAPI UDate U_EXPORT2
+
diff --git a/dev-libs/icu/icu-70.1.ebuild b/dev-libs/icu/icu-70.1-r1.ebuild
similarity index 95%
rename from dev-libs/icu/icu-70.1.ebuild
rename to dev-libs/icu/icu-70.1-r1.ebuild
index 83163eaec2b6..c2095a985a40 100644
--- a/dev-libs/icu/icu-70.1.ebuild
+++ b/dev-libs/icu/icu-70.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -17,6 +17,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~
IUSE="debug doc examples static-libs"
BDEPEND="${PYTHON_DEPS}
+ sys-devel/autoconf-archive
virtual/pkgconfig
doc? ( app-doc/doxygen[dot] )
"
@@ -29,9 +30,10 @@ PATCHES=(
"${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
"${FILESDIR}/${PN}-64.2-darwin.patch"
"${FILESDIR}/${PN}-68.1-nonunicode.patch"
- # Should be in the next rleease, but check
+ # Should both be in the next release, but check
# https://bugs.gentoo.org/788112
"${FILESDIR}/${PN}-69.1-fix-ub-units.patch"
+ "${FILESDIR}/${PN}-70.1-fix-ucptrietest.patch"
)
src_prepare() {
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2023-04-18 2:12 Sam James
0 siblings, 0 replies; 19+ messages in thread
From: Sam James @ 2023-04-18 2:12 UTC (permalink / raw
To: gentoo-commits
commit: 5a5db7fc59b5ff77e2cf44f51784ed4e87aeab5b
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 18 02:11:06 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Apr 18 02:12:00 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a5db7fc
dev-libs/icu: fix builds w/ UCHAR_TYPE set
Closes: https://bugs.gentoo.org/904381
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/icu/files/icu-73.1-fix-UChar-api.patch | 49 +++++++
dev-libs/icu/icu-73.1-r1.ebuild | 163 ++++++++++++++++++++++++
2 files changed, 212 insertions(+)
diff --git a/dev-libs/icu/files/icu-73.1-fix-UChar-api.patch b/dev-libs/icu/files/icu-73.1-fix-UChar-api.patch
new file mode 100644
index 000000000000..7f3f6a8e472f
--- /dev/null
+++ b/dev-libs/icu/files/icu-73.1-fix-UChar-api.patch
@@ -0,0 +1,49 @@
+https://bugs.gentoo.org/904381
+https://unicode-org.atlassian.net/browse/ICU-22356
+https://github.com/unicode-org/icu/pull/2431
+
+From d58ab7c27c2f5ecb83a3fc3de5803dc42f807746 Mon Sep 17 00:00:00 2001
+From: Xi Ruoyao <xry111@xry111.site>
+Date: Mon, 17 Apr 2023 15:33:18 +0800
+Subject: [PATCH] ICU-22356 Revert ICU-21833 change for ures.h
+
+These usages of UChar are in inline functions for calling C API functions, so they should not be changed to char16_t or the code will fail to compile with `-DUCHAR_TYPE=`.
+--- a/common/unicode/ures.h
++++ b/common/unicode/ures.h
+@@ -812,7 +812,7 @@ inline UnicodeString
+ ures_getUnicodeString(const UResourceBundle *resB, UErrorCode* status) {
+ UnicodeString result;
+ int32_t len = 0;
+- const char16_t *r = ures_getString(resB, &len, status);
++ const UChar *r = ures_getString(resB, &len, status);
+ if(U_SUCCESS(*status)) {
+ result.setTo(true, r, len);
+ } else {
+@@ -837,7 +837,7 @@ inline UnicodeString
+ ures_getNextUnicodeString(UResourceBundle *resB, const char ** key, UErrorCode* status) {
+ UnicodeString result;
+ int32_t len = 0;
+- const char16_t* r = ures_getNextString(resB, &len, key, status);
++ const UChar* r = ures_getNextString(resB, &len, key, status);
+ if(U_SUCCESS(*status)) {
+ result.setTo(true, r, len);
+ } else {
+@@ -859,7 +859,7 @@ inline UnicodeString
+ ures_getUnicodeStringByIndex(const UResourceBundle *resB, int32_t indexS, UErrorCode* status) {
+ UnicodeString result;
+ int32_t len = 0;
+- const char16_t* r = ures_getStringByIndex(resB, indexS, &len, status);
++ const UChar* r = ures_getStringByIndex(resB, indexS, &len, status);
+ if(U_SUCCESS(*status)) {
+ result.setTo(true, r, len);
+ } else {
+@@ -882,7 +882,7 @@ inline UnicodeString
+ ures_getUnicodeStringByKey(const UResourceBundle *resB, const char* key, UErrorCode* status) {
+ UnicodeString result;
+ int32_t len = 0;
+- const char16_t* r = ures_getStringByKey(resB, key, &len, status);
++ const UChar* r = ures_getStringByKey(resB, key, &len, status);
+ if(U_SUCCESS(*status)) {
+ result.setTo(true, r, len);
+ } else {
+
diff --git a/dev-libs/icu/icu-73.1-r1.ebuild b/dev-libs/icu/icu-73.1-r1.ebuild
new file mode 100644
index 000000000000..ad36b18454e5
--- /dev/null
+++ b/dev-libs/icu/icu-73.1-r1.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with dev-libs/icu-layoutex
+
+PYTHON_COMPAT=( python3_{9..11} )
+VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/icu.asc
+inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_rc/-rc}
+MY_PV=${MY_PV//./_}
+
+DESCRIPTION="International Components for Unicode"
+HOMEPAGE="https://icu.unicode.org/"
+SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
+SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
+S="${WORKDIR}"/${PN}/source
+
+# Keyword with boost-1.82
+if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+fi
+LICENSE="BSD"
+SLOT="0/${PV}"
+IUSE="debug doc examples static-libs test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ sys-devel/autoconf-archive
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen[dot] )
+ verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
+"
+
+MULTILIB_CHOST_TOOLS=(
+ /usr/bin/icu-config
+)
+
+PATCHES=(
+ "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
+ "${FILESDIR}/${PN}-64.2-darwin.patch"
+ "${FILESDIR}/${PN}-68.1-nonunicode.patch"
+ "${FILESDIR}/${PN}-73.1-fix-UChar-api.patch"
+)
+
+src_prepare() {
+ default
+
+ # Disable renaming as it assumes stable ABI and that consumers
+ # won't use unofficial APIs. We need this despite the configure argument.
+ sed -i \
+ -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
+ common/unicode/uconfig.h || die
+
+ # Fix linking of icudata
+ sed -i \
+ -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
+ config/mh-linux || die
+
+ # Append doxygen configuration to configure
+ sed -i \
+ -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
+ configure.ac || die
+
+ eautoreconf
+}
+
+src_configure() {
+ MAKEOPTS+=" VERBOSE=1"
+
+ # ICU tries to append -std=c++11 without this, so as of 71.1,
+ # despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
+ # we still need this.
+ append-cxxflags -std=c++14
+
+ if tc-is-cross-compiler; then
+ mkdir "${WORKDIR}"/host || die
+ pushd "${WORKDIR}"/host >/dev/null || die
+
+ CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
+ CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
+ RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
+ "${S}"/configure --disable-renaming --disable-debug \
+ --disable-samples --enable-static || die
+ emake
+
+ popd >/dev/null || die
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --disable-renaming
+ --disable-samples
+ --disable-layoutex
+ $(use_enable debug)
+ $(use_enable static-libs static)
+ $(use_enable test tests)
+ $(multilib_native_use_enable examples samples)
+ )
+
+ tc-is-cross-compiler && myeconfargs+=(
+ --with-cross-build="${WORKDIR}"/host
+ )
+
+ # Work around cross-endian testing failures with LTO #757681
+ if tc-is-cross-compiler && is-flagq '-flto*' ; then
+ myeconfargs+=( --disable-strict )
+ fi
+
+ # ICU tries to use clang by default
+ tc-export CC CXX
+
+ # Make sure we configure with the same shell as we run icu-config
+ # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
+ export CONFIG_SHELL="${EPREFIX}/bin/sh"
+ # Probably have no /bin/sh in prefix-chain
+ [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ doxygen -u Doxyfile || die
+ doxygen Doxyfile || die
+ fi
+}
+
+multilib_src_test() {
+ # INTLTEST_OPTS: intltest options
+ # -e: Exhaustive testing
+ # -l: Reporting of memory leaks
+ # -v: Increased verbosity
+ # IOTEST_OPTS: iotest options
+ # -e: Exhaustive testing
+ # -v: Increased verbosity
+ # CINTLTST_OPTS: cintltst options
+ # -e: Exhaustive testing
+ # -v: Increased verbosity
+ emake -j1 check
+}
+
+multilib_src_install() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ docinto html
+ dodoc -r doc/html/*
+ fi
+}
+
+multilib_src_install_all() {
+ local HTML_DOCS=( ../readme.html )
+ einstalldocs
+}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2023-05-10 22:01 Sam James
0 siblings, 0 replies; 19+ messages in thread
From: Sam James @ 2023-05-10 22:01 UTC (permalink / raw
To: gentoo-commits
commit: 004077eb58c061c1b39ada2654cc409e91fac2de
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed May 10 21:40:39 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed May 10 21:41:15 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=004077eb
dev-libs/icu: switch to upstream variant of UChar patch
Closes: https://bugs.gentoo.org/904381
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../icu/files/icu-73.1-fix-UChar-api-deux.patch | 82 +++++++++++
dev-libs/icu/icu-73.1-r2.ebuild | 163 +++++++++++++++++++++
2 files changed, 245 insertions(+)
diff --git a/dev-libs/icu/files/icu-73.1-fix-UChar-api-deux.patch b/dev-libs/icu/files/icu-73.1-fix-UChar-api-deux.patch
new file mode 100644
index 000000000000..ea943873a82b
--- /dev/null
+++ b/dev-libs/icu/files/icu-73.1-fix-UChar-api-deux.patch
@@ -0,0 +1,82 @@
+https://bugs.gentoo.org/904381
+https://unicode-org.atlassian.net/browse/ICU-22356
+https://github.com/unicode-org/icu/pull/2431 (what we originally applied)
+https://github.com/unicode-org/icu/pull/2432 (this commit)
+https://github.com/unicode-org/icu/commit/4fd9d6ce9a951e66e727b296138f22cd05479de1
+
+From 4fd9d6ce9a951e66e727b296138f22cd05479de1 Mon Sep 17 00:00:00 2001
+From: Fredrik Roubert <roubert@google.com>
+Date: Tue, 18 Apr 2023 23:39:28 +0200
+Subject: [PATCH] ICU-22356 Use ConstChar16Ptr to safely cast from UChar* to
+ char16_t*.
+
+This is necessary for this header file to be usable by clients that
+define UCHAR_TYPE as a type not compatible with char16_t, eg. uint16_t.
+--- a/common/unicode/ures.h
++++ b/common/unicode/ures.h
+@@ -25,6 +25,7 @@
+ #ifndef URES_H
+ #define URES_H
+
++#include "unicode/char16ptr.h"
+ #include "unicode/utypes.h"
+ #include "unicode/uloc.h"
+
+@@ -812,7 +813,7 @@ inline UnicodeString
+ ures_getUnicodeString(const UResourceBundle *resB, UErrorCode* status) {
+ UnicodeString result;
+ int32_t len = 0;
+- const char16_t *r = ures_getString(resB, &len, status);
++ const char16_t *r = ConstChar16Ptr(ures_getString(resB, &len, status));
+ if(U_SUCCESS(*status)) {
+ result.setTo(true, r, len);
+ } else {
+@@ -837,7 +838,7 @@ inline UnicodeString
+ ures_getNextUnicodeString(UResourceBundle *resB, const char ** key, UErrorCode* status) {
+ UnicodeString result;
+ int32_t len = 0;
+- const char16_t* r = ures_getNextString(resB, &len, key, status);
++ const char16_t* r = ConstChar16Ptr(ures_getNextString(resB, &len, key, status));
+ if(U_SUCCESS(*status)) {
+ result.setTo(true, r, len);
+ } else {
+@@ -859,7 +860,7 @@ inline UnicodeString
+ ures_getUnicodeStringByIndex(const UResourceBundle *resB, int32_t indexS, UErrorCode* status) {
+ UnicodeString result;
+ int32_t len = 0;
+- const char16_t* r = ures_getStringByIndex(resB, indexS, &len, status);
++ const char16_t* r = ConstChar16Ptr(ures_getStringByIndex(resB, indexS, &len, status));
+ if(U_SUCCESS(*status)) {
+ result.setTo(true, r, len);
+ } else {
+@@ -882,7 +883,7 @@ inline UnicodeString
+ ures_getUnicodeStringByKey(const UResourceBundle *resB, const char* key, UErrorCode* status) {
+ UnicodeString result;
+ int32_t len = 0;
+- const char16_t* r = ures_getStringByKey(resB, key, &len, status);
++ const char16_t* r = ConstChar16Ptr(ures_getStringByKey(resB, key, &len, status));
+ if(U_SUCCESS(*status)) {
+ result.setTo(true, r, len);
+ } else {
+--- a/test/intltest/Makefile.in
++++ b/test/intltest/Makefile.in
+@@ -70,7 +70,7 @@ numbertest_parse.o numbertest_doubleconversion.o numbertest_skeletons.o \
+ static_unisets_test.o numfmtdatadriventest.o numbertest_range.o erarulestest.o \
+ formattedvaluetest.o formatted_string_builder_test.o numbertest_permutation.o \
+ units_data_test.o units_router_test.o units_test.o displayoptions_test.o \
+-numbertest_simple.o
++numbertest_simple.o uchar_type_build_test.o
+
+ DEPS = $(OBJECTS:.o=.d)
+
+--- /dev/null
++++ b/test/intltest/uchar_type_build_test.cpp
+@@ -0,0 +1,7 @@
++// © 2023 and later: Unicode, Inc. and others.
++// License & terms of use: http://www.unicode.org/copyright.html#License
++
++// ICU-22356 Test that client code can be built with UCHAR_TYPE redefined.
++#undef UCHAR_TYPE
++#define UCHAR_TYPE uint16_t
++#include "unicode/ures.h"
+
diff --git a/dev-libs/icu/icu-73.1-r2.ebuild b/dev-libs/icu/icu-73.1-r2.ebuild
new file mode 100644
index 000000000000..2bf7dd7ca175
--- /dev/null
+++ b/dev-libs/icu/icu-73.1-r2.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with dev-libs/icu-layoutex
+
+PYTHON_COMPAT=( python3_{10..11} )
+VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/icu.asc
+inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_rc/-rc}
+MY_PV=${MY_PV//./_}
+
+DESCRIPTION="International Components for Unicode"
+HOMEPAGE="https://icu.unicode.org/"
+SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
+SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
+S="${WORKDIR}"/${PN}/source
+
+# Keyword with boost-1.82
+if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+fi
+LICENSE="BSD"
+SLOT="0/${PV}"
+IUSE="debug doc examples static-libs test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ sys-devel/autoconf-archive
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen[dot] )
+ verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
+"
+
+MULTILIB_CHOST_TOOLS=(
+ /usr/bin/icu-config
+)
+
+PATCHES=(
+ "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
+ "${FILESDIR}/${PN}-64.2-darwin.patch"
+ "${FILESDIR}/${PN}-68.1-nonunicode.patch"
+ "${FILESDIR}/${PN}-73.1-fix-UChar-api-deux.patch"
+)
+
+src_prepare() {
+ default
+
+ # Disable renaming as it assumes stable ABI and that consumers
+ # won't use unofficial APIs. We need this despite the configure argument.
+ sed -i \
+ -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
+ common/unicode/uconfig.h || die
+
+ # Fix linking of icudata
+ sed -i \
+ -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
+ config/mh-linux || die
+
+ # Append doxygen configuration to configure
+ sed -i \
+ -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
+ configure.ac || die
+
+ eautoreconf
+}
+
+src_configure() {
+ MAKEOPTS+=" VERBOSE=1"
+
+ # ICU tries to append -std=c++11 without this, so as of 71.1,
+ # despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
+ # we still need this.
+ append-cxxflags -std=c++14
+
+ if tc-is-cross-compiler; then
+ mkdir "${WORKDIR}"/host || die
+ pushd "${WORKDIR}"/host >/dev/null || die
+
+ CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
+ CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
+ RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
+ "${S}"/configure --disable-renaming --disable-debug \
+ --disable-samples --enable-static || die
+ emake
+
+ popd >/dev/null || die
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --disable-renaming
+ --disable-samples
+ --disable-layoutex
+ $(use_enable debug)
+ $(use_enable static-libs static)
+ $(use_enable test tests)
+ $(multilib_native_use_enable examples samples)
+ )
+
+ tc-is-cross-compiler && myeconfargs+=(
+ --with-cross-build="${WORKDIR}"/host
+ )
+
+ # Work around cross-endian testing failures with LTO #757681
+ if tc-is-cross-compiler && is-flagq '-flto*' ; then
+ myeconfargs+=( --disable-strict )
+ fi
+
+ # ICU tries to use clang by default
+ tc-export CC CXX
+
+ # Make sure we configure with the same shell as we run icu-config
+ # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
+ export CONFIG_SHELL="${EPREFIX}/bin/sh"
+ # Probably have no /bin/sh in prefix-chain
+ [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ doxygen -u Doxyfile || die
+ doxygen Doxyfile || die
+ fi
+}
+
+multilib_src_test() {
+ # INTLTEST_OPTS: intltest options
+ # -e: Exhaustive testing
+ # -l: Reporting of memory leaks
+ # -v: Increased verbosity
+ # IOTEST_OPTS: iotest options
+ # -e: Exhaustive testing
+ # -v: Increased verbosity
+ # CINTLTST_OPTS: cintltst options
+ # -e: Exhaustive testing
+ # -v: Increased verbosity
+ emake -j1 check
+}
+
+multilib_src_install() {
+ default
+
+ if multilib_is_native_abi && use doc; then
+ docinto html
+ dodoc -r doc/html/*
+ fi
+}
+
+multilib_src_install_all() {
+ local HTML_DOCS=( ../readme.html )
+ einstalldocs
+}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2023-06-09 11:01 Sam James
0 siblings, 0 replies; 19+ messages in thread
From: Sam James @ 2023-06-09 11:01 UTC (permalink / raw
To: gentoo-commits
commit: 24df8320a11586a3f854deb337455ebbfd421e75
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 9 09:55:17 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jun 9 11:01:31 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24df8320
dev-libs/icu: drop 73.1, 73.1-r1
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/icu/files/icu-73.1-fix-UChar-api.patch | 49 -------
dev-libs/icu/icu-73.1-r1.ebuild | 163 ------------------------
dev-libs/icu/icu-73.1.ebuild | 162 -----------------------
3 files changed, 374 deletions(-)
diff --git a/dev-libs/icu/files/icu-73.1-fix-UChar-api.patch b/dev-libs/icu/files/icu-73.1-fix-UChar-api.patch
deleted file mode 100644
index 7f3f6a8e472f..000000000000
--- a/dev-libs/icu/files/icu-73.1-fix-UChar-api.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-https://bugs.gentoo.org/904381
-https://unicode-org.atlassian.net/browse/ICU-22356
-https://github.com/unicode-org/icu/pull/2431
-
-From d58ab7c27c2f5ecb83a3fc3de5803dc42f807746 Mon Sep 17 00:00:00 2001
-From: Xi Ruoyao <xry111@xry111.site>
-Date: Mon, 17 Apr 2023 15:33:18 +0800
-Subject: [PATCH] ICU-22356 Revert ICU-21833 change for ures.h
-
-These usages of UChar are in inline functions for calling C API functions, so they should not be changed to char16_t or the code will fail to compile with `-DUCHAR_TYPE=`.
---- a/common/unicode/ures.h
-+++ b/common/unicode/ures.h
-@@ -812,7 +812,7 @@ inline UnicodeString
- ures_getUnicodeString(const UResourceBundle *resB, UErrorCode* status) {
- UnicodeString result;
- int32_t len = 0;
-- const char16_t *r = ures_getString(resB, &len, status);
-+ const UChar *r = ures_getString(resB, &len, status);
- if(U_SUCCESS(*status)) {
- result.setTo(true, r, len);
- } else {
-@@ -837,7 +837,7 @@ inline UnicodeString
- ures_getNextUnicodeString(UResourceBundle *resB, const char ** key, UErrorCode* status) {
- UnicodeString result;
- int32_t len = 0;
-- const char16_t* r = ures_getNextString(resB, &len, key, status);
-+ const UChar* r = ures_getNextString(resB, &len, key, status);
- if(U_SUCCESS(*status)) {
- result.setTo(true, r, len);
- } else {
-@@ -859,7 +859,7 @@ inline UnicodeString
- ures_getUnicodeStringByIndex(const UResourceBundle *resB, int32_t indexS, UErrorCode* status) {
- UnicodeString result;
- int32_t len = 0;
-- const char16_t* r = ures_getStringByIndex(resB, indexS, &len, status);
-+ const UChar* r = ures_getStringByIndex(resB, indexS, &len, status);
- if(U_SUCCESS(*status)) {
- result.setTo(true, r, len);
- } else {
-@@ -882,7 +882,7 @@ inline UnicodeString
- ures_getUnicodeStringByKey(const UResourceBundle *resB, const char* key, UErrorCode* status) {
- UnicodeString result;
- int32_t len = 0;
-- const char16_t* r = ures_getStringByKey(resB, key, &len, status);
-+ const UChar* r = ures_getStringByKey(resB, key, &len, status);
- if(U_SUCCESS(*status)) {
- result.setTo(true, r, len);
- } else {
-
diff --git a/dev-libs/icu/icu-73.1-r1.ebuild b/dev-libs/icu/icu-73.1-r1.ebuild
deleted file mode 100644
index c8c62931c741..000000000000
--- a/dev-libs/icu/icu-73.1-r1.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Please bump with dev-libs/icu-layoutex
-
-PYTHON_COMPAT=( python3_{9..11} )
-VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/icu.asc
-inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs verify-sig
-
-MY_PV=${PV/_rc/-rc}
-MY_PV=${MY_PV//./_}
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="https://icu.unicode.org/"
-SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
-SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
-S="${WORKDIR}"/${PN}/source
-
-# Keyword with boost-1.82
-if [[ ${PV} != *_rc* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-fi
-LICENSE="BSD"
-SLOT="0/${PV}"
-IUSE="debug doc examples static-libs test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- ${PYTHON_DEPS}
- sys-devel/autoconf-archive
- virtual/pkgconfig
- doc? ( app-doc/doxygen[dot] )
- verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
-"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
- "${FILESDIR}/${PN}-64.2-darwin.patch"
- "${FILESDIR}/${PN}-68.1-nonunicode.patch"
- "${FILESDIR}/${PN}-73.1-fix-UChar-api.patch"
-)
-
-src_prepare() {
- default
-
- # Disable renaming as it assumes stable ABI and that consumers
- # won't use unofficial APIs. We need this despite the configure argument.
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- MAKEOPTS+=" VERBOSE=1"
-
- # ICU tries to append -std=c++11 without this, so as of 71.1,
- # despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
- # we still need this.
- append-cxxflags -std=c++14
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- --disable-layoutex
- $(use_enable debug)
- $(use_enable static-libs static)
- $(use_enable test tests)
- $(multilib_native_use_enable examples samples)
- )
-
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # Work around cross-endian testing failures with LTO #757681
- if tc-is-cross-compiler && is-flagq '-flto*' ; then
- myeconfargs+=( --disable-strict )
- fi
-
- # ICU tries to use clang by default
- tc-export CC CXX
-
- # Make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL="${EPREFIX}/bin/sh"
- # Probably have no /bin/sh in prefix-chain
- [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- docinto html
- dodoc -r doc/html/*
- fi
-}
-
-multilib_src_install_all() {
- local HTML_DOCS=( ../readme.html )
- einstalldocs
-}
diff --git a/dev-libs/icu/icu-73.1.ebuild b/dev-libs/icu/icu-73.1.ebuild
deleted file mode 100644
index a6d931245492..000000000000
--- a/dev-libs/icu/icu-73.1.ebuild
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Please bump with dev-libs/icu-layoutex
-
-PYTHON_COMPAT=( python3_{9..11} )
-VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/icu.asc
-inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs verify-sig
-
-MY_PV=${PV/_rc/-rc}
-MY_PV=${MY_PV//./_}
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="https://icu.unicode.org/"
-SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
-SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
-S="${WORKDIR}"/${PN}/source
-
-# Keyword with boost-1.82
-if [[ ${PV} != *_rc* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-fi
-LICENSE="BSD"
-SLOT="0/${PV}"
-IUSE="debug doc examples static-libs test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- ${PYTHON_DEPS}
- sys-devel/autoconf-archive
- virtual/pkgconfig
- doc? ( app-doc/doxygen[dot] )
- verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
-"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
- "${FILESDIR}/${PN}-64.2-darwin.patch"
- "${FILESDIR}/${PN}-68.1-nonunicode.patch"
-)
-
-src_prepare() {
- default
-
- # Disable renaming as it assumes stable ABI and that consumers
- # won't use unofficial APIs. We need this despite the configure argument.
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- MAKEOPTS+=" VERBOSE=1"
-
- # ICU tries to append -std=c++11 without this, so as of 71.1,
- # despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
- # we still need this.
- append-cxxflags -std=c++14
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- --disable-layoutex
- $(use_enable debug)
- $(use_enable static-libs static)
- $(use_enable test tests)
- $(multilib_native_use_enable examples samples)
- )
-
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # Work around cross-endian testing failures with LTO #757681
- if tc-is-cross-compiler && is-flagq '-flto*' ; then
- myeconfargs+=( --disable-strict )
- fi
-
- # ICU tries to use clang by default
- tc-export CC CXX
-
- # Make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL="${EPREFIX}/bin/sh"
- # Probably have no /bin/sh in prefix-chain
- [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- docinto html
- dodoc -r doc/html/*
- fi
-}
-
-multilib_src_install_all() {
- local HTML_DOCS=( ../readme.html )
- einstalldocs
-}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2023-09-04 13:29 Andreas Sturmlechner
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Sturmlechner @ 2023-09-04 13:29 UTC (permalink / raw
To: gentoo-commits
commit: 717a5d9246a1b33796e21dbf42c0520c54deb837
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 3 17:51:32 2023 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Sep 4 13:28:41 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=717a5d92
dev-libs/icu: drop 73.1-r2
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/icu/Manifest | 2 -
.../icu/files/icu-73.1-fix-UChar-api-deux.patch | 82 -----------
dev-libs/icu/icu-73.1-r2.ebuild | 163 ---------------------
3 files changed, 247 deletions(-)
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index 1bd85246f8dd..d312969b2e95 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,4 +1,2 @@
-DIST icu4c-73_1-src.tgz 26512935 BLAKE2B 45de117efc4a49301c04a997963393967a70b8583abf1a9626331e275c5bc329cf2685de5c80b32f764c8ff2530b5594316d7119ce66503e5adba7842ca24424 SHA512 e788e372716eecebc39b56bbc88f3a458e21c3ef20631c2a3d7ef05794a678fe8dad482a03a40fdb9717109a613978c7146682e98ee16fade5668d641d5c48f8
-DIST icu4c-73_1-src.tgz.asc 833 BLAKE2B 2c0a02a109280c7994f3c9404473119105ccbe051633dd8dc89c14ff65612d7a18deccff2a525752808f26f34d7c192f9346a8c3a0d34af9aa2110744d9f863d SHA512 b7042b0e39e1ebfcef8573d3000088b32a740106c7cfd4c18ebd52e7fd22e64e07b174d766373b1722520369e937fc56d439a0b290a3efeee287b2740388c3d3
DIST icu4c-73_2-src.tgz 26519906 BLAKE2B 3f7dec9d527939d6d594c92844a400733e43af018bbc2f600edcb18299211a2f2285332188976d15e1ef672191416abac0b95a9d1a2ea6ababdaddf12708ccef SHA512 76dd782db6205833f289d7eb68b60860dddfa3f614f0ba03fe7ec13117077f82109f0dc1becabcdf4c8a9c628b94478ab0a46134bdb06f4302be55f74027ce62
DIST icu4c-73_2-src.tgz.asc 659 BLAKE2B 83e082ba15ba7aeb366b6d97da15d076c200f9051e55bf00ba13265a3d87aade5a5b18c98a0c903d5015821c63e4b340ffbcc7940a654d169ad1948d6594ce63 SHA512 7598b8cc498ada8ca904b13f7aba27abd3f8f3013a0677d7ffab42d5413df9d2f0526107559301abc4049123b2e6d4d4f4cc589cbd943959d97b595dd57ea63c
diff --git a/dev-libs/icu/files/icu-73.1-fix-UChar-api-deux.patch b/dev-libs/icu/files/icu-73.1-fix-UChar-api-deux.patch
deleted file mode 100644
index ea943873a82b..000000000000
--- a/dev-libs/icu/files/icu-73.1-fix-UChar-api-deux.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-https://bugs.gentoo.org/904381
-https://unicode-org.atlassian.net/browse/ICU-22356
-https://github.com/unicode-org/icu/pull/2431 (what we originally applied)
-https://github.com/unicode-org/icu/pull/2432 (this commit)
-https://github.com/unicode-org/icu/commit/4fd9d6ce9a951e66e727b296138f22cd05479de1
-
-From 4fd9d6ce9a951e66e727b296138f22cd05479de1 Mon Sep 17 00:00:00 2001
-From: Fredrik Roubert <roubert@google.com>
-Date: Tue, 18 Apr 2023 23:39:28 +0200
-Subject: [PATCH] ICU-22356 Use ConstChar16Ptr to safely cast from UChar* to
- char16_t*.
-
-This is necessary for this header file to be usable by clients that
-define UCHAR_TYPE as a type not compatible with char16_t, eg. uint16_t.
---- a/common/unicode/ures.h
-+++ b/common/unicode/ures.h
-@@ -25,6 +25,7 @@
- #ifndef URES_H
- #define URES_H
-
-+#include "unicode/char16ptr.h"
- #include "unicode/utypes.h"
- #include "unicode/uloc.h"
-
-@@ -812,7 +813,7 @@ inline UnicodeString
- ures_getUnicodeString(const UResourceBundle *resB, UErrorCode* status) {
- UnicodeString result;
- int32_t len = 0;
-- const char16_t *r = ures_getString(resB, &len, status);
-+ const char16_t *r = ConstChar16Ptr(ures_getString(resB, &len, status));
- if(U_SUCCESS(*status)) {
- result.setTo(true, r, len);
- } else {
-@@ -837,7 +838,7 @@ inline UnicodeString
- ures_getNextUnicodeString(UResourceBundle *resB, const char ** key, UErrorCode* status) {
- UnicodeString result;
- int32_t len = 0;
-- const char16_t* r = ures_getNextString(resB, &len, key, status);
-+ const char16_t* r = ConstChar16Ptr(ures_getNextString(resB, &len, key, status));
- if(U_SUCCESS(*status)) {
- result.setTo(true, r, len);
- } else {
-@@ -859,7 +860,7 @@ inline UnicodeString
- ures_getUnicodeStringByIndex(const UResourceBundle *resB, int32_t indexS, UErrorCode* status) {
- UnicodeString result;
- int32_t len = 0;
-- const char16_t* r = ures_getStringByIndex(resB, indexS, &len, status);
-+ const char16_t* r = ConstChar16Ptr(ures_getStringByIndex(resB, indexS, &len, status));
- if(U_SUCCESS(*status)) {
- result.setTo(true, r, len);
- } else {
-@@ -882,7 +883,7 @@ inline UnicodeString
- ures_getUnicodeStringByKey(const UResourceBundle *resB, const char* key, UErrorCode* status) {
- UnicodeString result;
- int32_t len = 0;
-- const char16_t* r = ures_getStringByKey(resB, key, &len, status);
-+ const char16_t* r = ConstChar16Ptr(ures_getStringByKey(resB, key, &len, status));
- if(U_SUCCESS(*status)) {
- result.setTo(true, r, len);
- } else {
---- a/test/intltest/Makefile.in
-+++ b/test/intltest/Makefile.in
-@@ -70,7 +70,7 @@ numbertest_parse.o numbertest_doubleconversion.o numbertest_skeletons.o \
- static_unisets_test.o numfmtdatadriventest.o numbertest_range.o erarulestest.o \
- formattedvaluetest.o formatted_string_builder_test.o numbertest_permutation.o \
- units_data_test.o units_router_test.o units_test.o displayoptions_test.o \
--numbertest_simple.o
-+numbertest_simple.o uchar_type_build_test.o
-
- DEPS = $(OBJECTS:.o=.d)
-
---- /dev/null
-+++ b/test/intltest/uchar_type_build_test.cpp
-@@ -0,0 +1,7 @@
-+// © 2023 and later: Unicode, Inc. and others.
-+// License & terms of use: http://www.unicode.org/copyright.html#License
-+
-+// ICU-22356 Test that client code can be built with UCHAR_TYPE redefined.
-+#undef UCHAR_TYPE
-+#define UCHAR_TYPE uint16_t
-+#include "unicode/ures.h"
-
diff --git a/dev-libs/icu/icu-73.1-r2.ebuild b/dev-libs/icu/icu-73.1-r2.ebuild
deleted file mode 100644
index d29e3a24d933..000000000000
--- a/dev-libs/icu/icu-73.1-r2.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Please bump with dev-libs/icu-layoutex
-
-PYTHON_COMPAT=( python3_{10..11} )
-VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/icu.asc
-inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs verify-sig
-
-MY_PV=${PV/_rc/-rc}
-MY_PV=${MY_PV//./_}
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="https://icu.unicode.org/"
-SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
-SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
-S="${WORKDIR}"/${PN}/source
-
-# Keyword with boost-1.82
-if [[ ${PV} != *_rc* ]] ; then
- KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-fi
-LICENSE="BSD"
-SLOT="0/${PV}"
-IUSE="debug doc examples static-libs test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- ${PYTHON_DEPS}
- sys-devel/autoconf-archive
- virtual/pkgconfig
- doc? ( app-doc/doxygen[dot] )
- verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
-"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
- "${FILESDIR}/${PN}-64.2-darwin.patch"
- "${FILESDIR}/${PN}-68.1-nonunicode.patch"
- "${FILESDIR}/${PN}-73.1-fix-UChar-api-deux.patch"
-)
-
-src_prepare() {
- default
-
- # Disable renaming as it assumes stable ABI and that consumers
- # won't use unofficial APIs. We need this despite the configure argument.
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- MAKEOPTS+=" VERBOSE=1"
-
- # ICU tries to append -std=c++11 without this, so as of 71.1,
- # despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
- # we still need this.
- append-cxxflags -std=c++14
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- --disable-layoutex
- $(use_enable debug)
- $(use_enable static-libs static)
- $(use_enable test tests)
- $(multilib_native_use_enable examples samples)
- )
-
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # Work around cross-endian testing failures with LTO #757681
- if tc-is-cross-compiler && is-flagq '-flto*' ; then
- myeconfargs+=( --disable-strict )
- fi
-
- # ICU tries to use clang by default
- tc-export CC CXX
-
- # Make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL="${EPREFIX}/bin/sh"
- # Probably have no /bin/sh in prefix-chain
- [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- docinto html
- dodoc -r doc/html/*
- fi
-}
-
-multilib_src_install_all() {
- local HTML_DOCS=( ../readme.html )
- einstalldocs
-}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2024-02-20 20:49 Andreas Sturmlechner
0 siblings, 0 replies; 19+ messages in thread
From: Andreas Sturmlechner @ 2024-02-20 20:49 UTC (permalink / raw
To: gentoo-commits
commit: eed8d095c2ca12fd1afc5b9dbd69417da74098ea
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 20 19:28:22 2024 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Feb 20 20:48:16 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eed8d095
dev-libs/icu: drop 73.2, 74.1
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/icu/Manifest | 4 -
...TestHebrewCalendarInTemporalLeapYear-test.patch | 31 ----
dev-libs/icu/icu-73.2.ebuild | 177 ---------------------
dev-libs/icu/icu-74.1.ebuild | 176 --------------------
4 files changed, 388 deletions(-)
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index 45032ec823a8..821057a1856d 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,6 +1,2 @@
-DIST icu4c-73_2-src.tgz 26519906 BLAKE2B 3f7dec9d527939d6d594c92844a400733e43af018bbc2f600edcb18299211a2f2285332188976d15e1ef672191416abac0b95a9d1a2ea6ababdaddf12708ccef SHA512 76dd782db6205833f289d7eb68b60860dddfa3f614f0ba03fe7ec13117077f82109f0dc1becabcdf4c8a9c628b94478ab0a46134bdb06f4302be55f74027ce62
-DIST icu4c-73_2-src.tgz.asc 659 BLAKE2B 83e082ba15ba7aeb366b6d97da15d076c200f9051e55bf00ba13265a3d87aade5a5b18c98a0c903d5015821c63e4b340ffbcc7940a654d169ad1948d6594ce63 SHA512 7598b8cc498ada8ca904b13f7aba27abd3f8f3013a0677d7ffab42d5413df9d2f0526107559301abc4049123b2e6d4d4f4cc589cbd943959d97b595dd57ea63c
-DIST icu4c-74_1-src.tgz 26625850 BLAKE2B cf8277cd513bd99c85104669e617683e4a91280c4c15a396021289fe0093d64682466550a44a0115bcc9e7abf30e3108dbadfb46e85e832e4cfd689618968507 SHA512 32c28270aa5d94c58d2b1ef46d4ab73149b5eaa2e0621d4a4c11597b71d146812f5e66db95f044e8aaa11b94e99edd4a48ab1aa8efbe3d72a73870cd56b564c2
-DIST icu4c-74_1-src.tgz.asc 659 BLAKE2B d95224933dc665f3c4e6f9cb81ab65d4755fc768161bf8abf97ba0d8ad350bc0ccfccdcb5c21d97b132e036bad960f6021283325c1ec836d2aecc5101af3c298 SHA512 45064eb2cf83dd7e3edc423c43914cc7fbcee38ad79e93c80da1e9e59e0554329a174cd6ef5a8055fe92220621eae9761f7de3b0cb311e5874efa41555e58396
DIST icu4c-74_2-src.tgz 26529443 BLAKE2B 08790dd3634037177eaec428651afe0da1f71dbad3423bde7ea5a6d49eab5dc011f72b175760fc55f6d8d7d820f7f3dfc369a80a1f7cb2f9f933644beb3d3711 SHA512 e6c7876c0f3d756f3a6969cad9a8909e535eeaac352f3a721338b9cbd56864bf7414469d29ec843462997815d2ca9d0dab06d38c37cdd4d8feb28ad04d8781b0
DIST icu4c-74_2-src.tgz.asc 659 BLAKE2B 0723204ce19d7bd4b1989e00b5ab084cc5b154c214129632a7f7ce31c151c8a4b9e0033d49872db728a3787809dbad2320f1d848561c84f94797c7e006749b94 SHA512 b249a61aba711b34599c3c0fbc113a52a83e59cb7bbda914ca74f534c1f474e6821d663dc7f078608b24393703654a43c2b793ca3d3f3be761393b6a73862ecc
diff --git a/dev-libs/icu/files/icu-73.2-fix-TestHebrewCalendarInTemporalLeapYear-test.patch b/dev-libs/icu/files/icu-73.2-fix-TestHebrewCalendarInTemporalLeapYear-test.patch
deleted file mode 100644
index df4dd0793837..000000000000
--- a/dev-libs/icu/files/icu-73.2-fix-TestHebrewCalendarInTemporalLeapYear-test.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-https://bugs.gentoo.org/914887
-https://github.com/unicode-org/icu/commit/f3b869cbb0b9ced42d7ca4e24626a868a14ddcfc
-
-From f3b869cbb0b9ced42d7ca4e24626a868a14ddcfc Mon Sep 17 00:00:00 2001
-From: Frank Tang <ftang@chromium.org>
-Date: Mon, 18 Sep 2023 20:20:42 -0700
-Subject: [PATCH] ICU-22512 Fix broken TestHebrewCalendarInTemporalLeapYear
-
-Fix broken test mistakenly landed in
-https://github.com/unicode-org/icu/pull/2274
-
-Some important steps were missed in the last landing.
---- a/test/intltest/caltest.cpp
-+++ b/test/intltest/caltest.cpp
-@@ -4028,6 +4028,7 @@ void CalendarTest::TestHebrewCalendarInTemporalLeapYear() {
- for (gc.set(startYear, UCAL_JANUARY, 1);
- gc.get(UCAL_YEAR, status) <= stopYear;
- gc.add(UCAL_DATE, incrementDays, status)) {
-+ cal->setTime(gc.getTime(status), status);
- if (failure(status, "add/get/set/getTime/setTime incorrect")) return;
-
- int32_t cal_year = cal->get(UCAL_EXTENDED_YEAR, status);
-@@ -4036,6 +4037,7 @@ void CalendarTest::TestHebrewCalendarInTemporalLeapYear() {
- leapTest->set(UCAL_MONTH, 0);
- leapTest->set(UCAL_DATE, 1);
- // If 10 months after TISHRI is TAMUZ, then it is a leap year.
-+ leapTest->add(UCAL_MONTH, 10, status);
- hasLeapMonth = leapTest->get(UCAL_MONTH, status) == icu::HebrewCalendar::TAMUZ;
- yearForHasLeapMonth = cal_year;
- }
-
diff --git a/dev-libs/icu/icu-73.2.ebuild b/dev-libs/icu/icu-73.2.ebuild
deleted file mode 100644
index d821c812d01f..000000000000
--- a/dev-libs/icu/icu-73.2.ebuild
+++ /dev/null
@@ -1,177 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Please bump with dev-libs/icu-layoutex
-
-PYTHON_COMPAT=( python3_{10..11} )
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/icu.asc
-inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs verify-sig
-
-MY_PV=${PV/_rc/-rc}
-MY_PV=${MY_PV//./_}
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="https://icu.unicode.org/"
-SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
-SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
-S="${WORKDIR}"/${PN}/source
-
-if [[ ${PV} != *_rc* ]] ; then
- KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-fi
-LICENSE="BSD"
-SLOT="0/${PV%.*}.1"
-IUSE="debug doc examples static-libs test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- ${PYTHON_DEPS}
- dev-build/autoconf-archive
- virtual/pkgconfig
- doc? ( app-text/doxygen[dot] )
- verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
-"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
- "${FILESDIR}/${PN}-64.2-darwin.patch"
- "${FILESDIR}/${PN}-68.1-nonunicode.patch"
- "${FILESDIR}/${P}-fix-TestHebrewCalendarInTemporalLeapYear-test.patch"
-)
-
-src_prepare() {
- default
-
- # Disable renaming as it assumes stable ABI and that consumers
- # won't use unofficial APIs. We need this despite the configure argument.
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- MAKEOPTS+=" VERBOSE=1"
-
- # ICU tries to append -std=c++11 without this, so as of 71.1,
- # despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
- # we still need this.
- append-cxxflags -std=c++14
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- # TODO: Merge with dev-libs/icu-layoutex
- # Planned to do this w/ 73.2 but seem to get test failures
- # only with --enable-layoutex.
- --disable-layoutex
- $(use_enable debug)
- $(use_enable static-libs static)
- $(use_enable test tests)
- $(multilib_native_use_enable examples samples)
- )
-
- #if use test ; then
- # myeconfargs+=(
- # --enable-extras
- # --enable-tools
- # )
- #else
- # myeconfargs+=(
- # $(multilib_native_enable extras)
- # $(multilib_native_enable tools)
- # )
- #fi
-
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # Work around cross-endian testing failures with LTO, bug #757681
- if tc-is-cross-compiler && tc-is-lto ; then
- myeconfargs+=( --disable-strict )
- fi
-
- # ICU tries to use clang by default
- tc-export CC CXX
-
- # Make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL="${EPREFIX}/bin/sh"
- # Probably have no /bin/sh in prefix-chain
- [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- docinto html
- dodoc -r doc/html/*
- fi
-}
-
-multilib_src_install_all() {
- local HTML_DOCS=( ../readme.html )
- einstalldocs
-}
diff --git a/dev-libs/icu/icu-74.1.ebuild b/dev-libs/icu/icu-74.1.ebuild
deleted file mode 100644
index cf2868d8fc7e..000000000000
--- a/dev-libs/icu/icu-74.1.ebuild
+++ /dev/null
@@ -1,176 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Please bump with dev-libs/icu-layoutex
-
-PYTHON_COMPAT=( python3_{10..12} )
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/icu.asc
-inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs verify-sig
-
-MY_PV=${PV/_rc/-rc}
-MY_PV=${MY_PV//./_}
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="https://icu.unicode.org/"
-SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
-SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
-S="${WORKDIR}"/${PN}/source
-
-if [[ ${PV} != *_rc* ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-fi
-LICENSE="BSD"
-SLOT="0/${PV%.*}.1"
-IUSE="debug doc examples static-libs test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- ${PYTHON_DEPS}
- dev-build/autoconf-archive
- virtual/pkgconfig
- doc? ( app-text/doxygen[dot] )
- verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
-"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
- "${FILESDIR}/${PN}-64.2-darwin.patch"
- "${FILESDIR}/${PN}-68.1-nonunicode.patch"
-)
-
-src_prepare() {
- default
-
- # Disable renaming as it assumes stable ABI and that consumers
- # won't use unofficial APIs. We need this despite the configure argument.
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- MAKEOPTS+=" VERBOSE=1"
-
- # ICU tries to append -std=c++11 without this, so as of 71.1,
- # despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
- # we still need this.
- append-cxxflags -std=c++14
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- # TODO: Merge with dev-libs/icu-layoutex
- # Planned to do this w/ 73.2 but seem to get test failures
- # only with --enable-layoutex.
- --disable-layoutex
- $(use_enable debug)
- $(use_enable static-libs static)
- $(use_enable test tests)
- $(multilib_native_use_enable examples samples)
- )
-
- #if use test ; then
- # myeconfargs+=(
- # --enable-extras
- # --enable-tools
- # )
- #else
- # myeconfargs+=(
- # $(multilib_native_enable extras)
- # $(multilib_native_enable tools)
- # )
- #fi
-
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # Work around cross-endian testing failures with LTO, bug #757681
- if tc-is-cross-compiler && tc-is-lto ; then
- myeconfargs+=( --disable-strict )
- fi
-
- # ICU tries to use clang by default
- tc-export CC CXX
-
- # Make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL="${EPREFIX}/bin/sh"
- # Probably have no /bin/sh in prefix-chain
- [[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- docinto html
- dodoc -r doc/html/*
- fi
-}
-
-multilib_src_install_all() {
- local HTML_DOCS=( ../readme.html )
- einstalldocs
-}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/
@ 2024-11-10 21:19 Sam James
0 siblings, 0 replies; 19+ messages in thread
From: Sam James @ 2024-11-10 21:19 UTC (permalink / raw
To: gentoo-commits
commit: 5de097998a3ed84e9af43fce547aa143b5e61c14
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 10 21:17:11 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Nov 10 21:18:53 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5de09799
dev-libs/icu: undo Requires change in .pc file
Undo change for now which exposes underlinking in consumers;
revisit when things are a bit quieter and tinderbox its removal.
Things are quite hectic atm with slotted Rust and so on, and don't
really have the energy to handle fallout from the change.
Closes: https://bugs.gentoo.org/943201
Closes: https://bugs.gentoo.org/943200
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../icu-76.1-undo-pkgconfig-change-for-now.patch | 30 ++++++++++++++++++++++
.../icu/{icu-76.1.ebuild => icu-76.1-r1.ebuild} | 4 +++
2 files changed, 34 insertions(+)
diff --git a/dev-libs/icu/files/icu-76.1-undo-pkgconfig-change-for-now.patch b/dev-libs/icu/files/icu-76.1-undo-pkgconfig-change-for-now.patch
new file mode 100644
index 000000000000..b99557871bc0
--- /dev/null
+++ b/dev-libs/icu/files/icu-76.1-undo-pkgconfig-change-for-now.patch
@@ -0,0 +1,30 @@
+https://github.com/chimera-linux/cports/blob/master/main/icu/patches/pc.patch
+
+"""
+for some reason enable-shared only emits a requires.private here now and things
+underlink icu-uc libs when using other icu libs, even though the deps are correct
+this is https://github.com/unicode-org/icu/commit/199bc827021ffdb43b6579d68e5eecf54c7f6f56 ,
+consumers probably have to be explicit about -i18n -uc use now instead of it
+being implicit, but just undo .private for now
+"""
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -290,7 +290,7 @@
+ ifeq ($(ENABLE_SHARED),)
+ @echo "Requires: icu-uc" >> $@
+ else
+- @echo "Requires.private: icu-uc" >> $@
++ @echo "Requires: icu-uc" >> $@
+ endif
+ @echo "Libs:" '-L$${libdir}' "${ICULIBS_I18N}" >> $@
+ @echo $@ updated.
+@@ -302,7 +302,7 @@
+ ifeq ($(ENABLE_SHARED),)
+ @echo "Requires: icu-i18n" >> $@
+ else
+- @echo "Requires.private: icu-i18n" >> $@
++ @echo "Requires: icu-i18n" >> $@
+ endif
+ @echo "Libs:" '-L$${libdir}' "${ICULIBS_IO}" >> $@
+ @echo $@ updated.
+
diff --git a/dev-libs/icu/icu-76.1.ebuild b/dev-libs/icu/icu-76.1-r1.ebuild
similarity index 95%
rename from dev-libs/icu/icu-76.1.ebuild
rename to dev-libs/icu/icu-76.1-r1.ebuild
index 077fe8d67d99..c720bcb4b581 100644
--- a/dev-libs/icu/icu-76.1.ebuild
+++ b/dev-libs/icu/icu-76.1-r1.ebuild
@@ -42,6 +42,10 @@ PATCHES=(
"${FILESDIR}/${PN}-76.1-remove-bashisms.patch"
"${FILESDIR}/${PN}-64.2-darwin.patch"
"${FILESDIR}/${PN}-68.1-nonunicode.patch"
+
+ # Undo change for now which exposes underlinking in consumers;
+ # revisit when things are a bit quieter and tinderbox its removal.
+ "${FILESDIR}/${PN}-76.1-undo-pkgconfig-change-for-now.patch"
)
src_prepare() {
^ permalink raw reply related [flat|nested] 19+ messages in thread
end of thread, other threads:[~2024-11-10 21:19 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-03 15:17 [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/ Fabian Groffen
-- strict thread matches above, loose matches on Subject: below --
2024-11-10 21:19 Sam James
2024-02-20 20:49 Andreas Sturmlechner
2023-09-04 13:29 Andreas Sturmlechner
2023-06-09 11:01 Sam James
2023-05-10 22:01 Sam James
2023-04-18 2:12 Sam James
2022-01-14 20:46 Sam James
2021-09-24 18:15 Sam James
2020-11-28 18:54 Andreas K. Hüttel
2020-06-06 17:48 Andreas Sturmlechner
2020-02-26 11:49 Andreas Sturmlechner
2020-01-17 2:50 Andreas Sturmlechner
2019-06-27 10:48 Andreas Sturmlechner
2017-01-15 19:56 Andreas Hüttel
2016-11-05 20:30 Andreas Hüttel
2016-03-25 20:17 Andreas Hüttel
2016-03-03 19:44 Andreas Hüttel
2015-11-02 21:51 Andreas Hüttel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox