public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [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 --
2015-11-02 21:51 [gentoo-commits] repo/gentoo:master commit in: dev-libs/icu/files/, dev-libs/icu/ Andreas Hüttel
  -- strict thread matches above, loose matches on Subject: below --
2016-03-03 19:44 Andreas Hüttel
2016-03-25 20:17 Andreas Hüttel
2016-11-05 20:30 Andreas Hüttel
2017-01-15 19:56 Andreas Hüttel
2017-12-03 15:17 Fabian Groffen
2019-06-27 10:48 Andreas Sturmlechner
2020-01-17  2:50 Andreas Sturmlechner
2020-02-26 11:49 Andreas Sturmlechner
2020-06-06 17:48 Andreas Sturmlechner
2020-11-28 18:54 Andreas K. Hüttel
2021-09-24 18:15 Sam James
2022-01-14 20:46 Sam James
2023-04-18  2:12 Sam James
2023-05-10 22:01 Sam James
2023-06-09 11:01 Sam James
2023-09-04 13:29 Andreas Sturmlechner
2024-02-20 20:49 Andreas Sturmlechner
2024-11-10 21:19 Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox