commit:     7b7785486e5475e6e9700a94b36082c19ac9a6d2
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  6 22:58:21 2026 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Jan  7 15:21:48 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7b778548

app-office/libreoffice: Fix ICU 77 and prepare for ICU 78

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/libreoffice-25.2.7.2-icu-77.1.patch      | 113 +++++++++++++++++++++
 .../files/libreoffice-25.2.7.2-icu-78.1.patch      |  99 ++++++++++++++++++
 .../libreoffice/libreoffice-25.2.7.2-r1.ebuild     |   6 +-
 3 files changed, 216 insertions(+), 2 deletions(-)

diff --git a/app-office/libreoffice/files/libreoffice-25.2.7.2-icu-77.1.patch 
b/app-office/libreoffice/files/libreoffice-25.2.7.2-icu-77.1.patch
new file mode 100644
index 000000000000..908f30a65c09
--- /dev/null
+++ b/app-office/libreoffice/files/libreoffice-25.2.7.2-icu-77.1.patch
@@ -0,0 +1,113 @@
+From 5d09908418767a541977acae348654af8239e9db Mon Sep 17 00:00:00 2001
+From: Taichi Haradaguchi <[email protected]>
+Date: Wed, 30 Oct 2024 14:47:03 +0200
+Subject: Update ICU to 77.1
+
+* asturm: stripped of all the upstream bundling stuff and fixed their version 
check ...
+
+---
+ i18nutil/source/utility/unicode.cxx         | 23 +++++++++++++++++++
+ include/svx/strings.hrc                     | 10 +++++++++
+ svx/source/dialog/charmap.cxx               | 32 +++++++++++++++++++++++++++
+ 3 files changed, 65 insertions(+)
+
+diff --git a/i18nutil/source/utility/unicode.cxx 
b/i18nutil/source/utility/unicode.cxx
+index c9bfbeeb0a80..e8476dd8bbe6 100644
+--- a/i18nutil/source/utility/unicode.cxx
++++ b/i18nutil/source/utility/unicode.cxx
+@@ -1005,6 +1005,29 @@ OString 
unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
+         case USCRIPT_ARABIC_NASTALIQ:
+             sRet = "fa-Aran"_ostr;
+             break;
++#endif
++#if (U_ICU_VERSION_MAJOR_NUM >= 77)
++        case USCRIPT_GARAY:
++            sRet = "wo-Gara"_ostr;
++            break;
++        case USCRIPT_GURUNG_KHEMA:
++            sRet = "gvr-Gukh"_ostr;
++            break;
++        case USCRIPT_KIRAT_RAI:
++            sRet = "bap-Krai"_ostr;
++            break;
++        case USCRIPT_OL_ONAL:
++            sRet = "unr-Onao"_ostr;
++            break;
++        case USCRIPT_SUNUWAR:
++            sRet = "suz-Sunu"_ostr;
++            break;
++        case USCRIPT_TODHRI:
++            sRet = "sq-Todr"_ostr;
++            break;
++        case USCRIPT_TULU_TIGALARI:
++            sRet = "sa-Tutg"_ostr;
++            break;
+ #endif
+     }
+     return sRet;
+diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
+index 04ce906e7222..90d5f3ebab79 100644
+--- a/include/svx/strings.hrc
++++ b/include/svx/strings.hrc
+@@ -1801,6 +1801,16 @@
+ #define RID_SUBSETSTR_KAWI                                  
NC_("RID_SUBSETMAP", "Kawi")
+ #define RID_SUBSETSTR_NAG_MUNDARI                           
NC_("RID_SUBSETMAP", "Nag Mundari")
+ #define RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I    
NC_("RID_SUBSETMAP", "CJK Unified Ideographs Extension I")
++#define RID_SUBSETSTR_EGYPTIAN_HIEROGLYPHS_EXTENDED_A  NC_("RID_SUBSETMAP", 
"Egyptian Hieroglyphs Extended-A")
++#define RID_SUBSETSTR_GARAY                                 
NC_("RID_SUBSETMAP", "Garay")
++#define RID_SUBSETSTR_GURUNG_KHEMA                          
NC_("RID_SUBSETMAP", "Gurung Khema")
++#define RID_SUBSETSTR_KIRAT_RAI                             
NC_("RID_SUBSETMAP", "Kirat Rai")
++#define RID_SUBSETSTR_MYANMAR_EXTENDED_C                    
NC_("RID_SUBSETMAP", "Myanmar Extended-C")
++#define RID_SUBSETSTR_OL_ONAL                               
NC_("RID_SUBSETMAP", "Ol Onal")
++#define RID_SUBSETSTR_SUNUWAR                               
NC_("RID_SUBSETMAP", "Sunuwar")
++#define RID_SUBSETSTR_SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT  
NC_("RID_SUBSETMAP", "Symbols for Legacy Computing Supplement")
++#define RID_SUBSETSTR_TODHRI                                
NC_("RID_SUBSETMAP", "Todhri")
++#define RID_SUBSETSTR_TULU_TIGALARI                         
NC_("RID_SUBSETMAP", "Tulu-Tigalari")
+ 
+ #define RID_SVXSTR_FRAMEDIR_LTR                             
NC_("RID_SVXSTR_FRAMEDIR_LTR", "Left-to-right (LTR)")
+ #define RID_SVXSTR_FRAMEDIR_RTL                             
NC_("RID_SVXSTR_FRAMEDIR_RTL", "Right-to-left (RTL)")
+diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx
+index adb2749b11f8..acdfbf9f490f 100644
+--- a/svx/source/dialog/charmap.cxx
++++ b/svx/source/dialog/charmap.cxx
+@@ -1928,6 +1928,38 @@ void SubsetMap::InitList()
+                 case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I:
+                     aAllSubsets.emplace_back( 0x2EBF0, 0x2EE5F, 
SvxResId(RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I) );
+                     break;
++#endif
++#if (U_ICU_VERSION_MAJOR_NUM >= 77)
++                case UBLOCK_EGYPTIAN_HIEROGLYPHS_EXTENDED_A:
++                    aAllSubsets.emplace_back( 0x13460, 0x1355F, 
SvxResId(RID_SUBSETSTR_EGYPTIAN_HIEROGLYPHS_EXTENDED_A) );
++                    break;
++                case UBLOCK_GARAY:
++                    aAllSubsets.emplace_back( 0x10D40, 0x10D8F, 
SvxResId(RID_SUBSETSTR_GARAY) );
++                    break;
++                case UBLOCK_GURUNG_KHEMA:
++                    aAllSubsets.emplace_back( 0x16100, 0x1613F, 
SvxResId(RID_SUBSETSTR_GURUNG_KHEMA) );
++                    break;
++                case UBLOCK_KIRAT_RAI:
++                    aAllSubsets.emplace_back( 0x16D40, 0x16D7F, 
SvxResId(RID_SUBSETSTR_KIRAT_RAI) );
++                    break;
++                case UBLOCK_MYANMAR_EXTENDED_C:
++                    aAllSubsets.emplace_back( 0x116D0, 0x116FF, 
SvxResId(RID_SUBSETSTR_MYANMAR_EXTENDED_C) );
++                    break;
++                case UBLOCK_OL_ONAL:
++                    aAllSubsets.emplace_back( 0x1E5D0, 0x1E5FF, 
SvxResId(RID_SUBSETSTR_OL_ONAL) );
++                    break;
++                case UBLOCK_SUNUWAR:
++                    aAllSubsets.emplace_back( 0x11BC0, 0x11BFF, 
SvxResId(RID_SUBSETSTR_SUNUWAR) );
++                    break;
++                case UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT:
++                    aAllSubsets.emplace_back( 0x1CC00, 0x1CEBF, 
SvxResId(RID_SUBSETSTR_SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT) );
++                    break;
++                case UBLOCK_TODHRI:
++                    aAllSubsets.emplace_back( 0x105C0, 0x105FF, 
SvxResId(RID_SUBSETSTR_TODHRI) );
++                    break;
++                case UBLOCK_TULU_TIGALARI:
++                    aAllSubsets.emplace_back( 0x11380, 0x113FF, 
SvxResId(RID_SUBSETSTR_TULU_TIGALARI) );
++                    break;
+ #endif
+             }
+ 
+-- 
+cgit v1.2.3

diff --git a/app-office/libreoffice/files/libreoffice-25.2.7.2-icu-78.1.patch 
b/app-office/libreoffice/files/libreoffice-25.2.7.2-icu-78.1.patch
new file mode 100644
index 000000000000..189047ef31bb
--- /dev/null
+++ b/app-office/libreoffice/files/libreoffice-25.2.7.2-icu-78.1.patch
@@ -0,0 +1,99 @@
+From a02e38567e1d5414a253e04a81b67ccfa25ed8f4 Mon Sep 17 00:00:00 2001
+From: Xisco Fauli <[email protected]>
+Date: Fri, 31 Oct 2025 14:40:11 +0100
+Subject: ICU: upgrade to 78.1
+
+* asturm: stripped of all the upstream bundling stuff ...
+
+---
+ i18nutil/source/utility/unicode.cxx                |  17 +
+ include/svx/strings.hrc                            |   8 +
+ svx/source/dialog/charmap.cxx                      |  26 +
+ 3 files changed, 51 insertions(+)
+
+diff --git a/i18nutil/source/utility/unicode.cxx 
b/i18nutil/source/utility/unicode.cxx
+index ff7d6a649136..7030e72b331e 100644
+--- a/i18nutil/source/utility/unicode.cxx
++++ b/i18nutil/source/utility/unicode.cxx
+@@ -1025,6 +1025,23 @@ OString 
unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
+         case USCRIPT_TULU_TIGALARI:
+             sRet = "sa-Tutg"_ostr;
+             break;
++#endif
++#if (U_ICU_VERSION_MAJOR_NUM >= 78)
++        case USCRIPT_BERIA_ERFE:
++            sRet = "zag-Berf"_ostr;
++            break;
++        case USCRIPT_SIDETIC:
++            sRet = "xsd-Sidt"_ostr;
++            break;
++        case USCRIPT_TAI_YO:
++            sRet = "tyj-Tayo"_ostr;
++            break;
++        case USCRIPT_TOLONG_SIKI:
++            sRet = "kru-Tols"_ostr;
++            break;
++        case USCRIPT_TRADITIONAL_HAN_WITH_LATIN:
++            sRet = "zh-Hntl"_ostr;
++            break;
+ #endif
+     }
+     return sRet;
+diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
+index 011092678295..48f5b89f0d54 100644
+--- a/include/svx/strings.hrc
++++ b/include/svx/strings.hrc
+@@ -1818,6 +1818,14 @@
+ #define RID_SUBSETSTR_SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT  
NC_("RID_SUBSETMAP", "Symbols for Legacy Computing Supplement")
+ #define RID_SUBSETSTR_TODHRI                                
NC_("RID_SUBSETMAP", "Todhri")
+ #define RID_SUBSETSTR_TULU_TIGALARI                         
NC_("RID_SUBSETMAP", "Tulu-Tigalari")
++#define RID_SUBSETSTR_BERIA_ERFE                            
NC_("RID_SUBSETMAP", "Beria Erfe")
++#define RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_J    
NC_("RID_SUBSETMAP", "CJK Unified Ideographs Extension J")
++#define RID_SUBSETSTR_MISCELLANEOUS_SYMBOLS_SUPPLEMENT      
NC_("RID_SUBSETMAP", "Miscellaneous Symbols Supplement")
++#define RID_SUBSETSTR_SHARADA_SUPPLEMENT                    
NC_("RID_SUBSETMAP", "Sharada Supplement")
++#define RID_SUBSETSTR_SIDETIC                               
NC_("RID_SUBSETMAP", "Sidetic")
++#define RID_SUBSETSTR_TAI_YO                                
NC_("RID_SUBSETMAP", "Tai Yo")
++#define RID_SUBSETSTR_TANGUT_COMPONENTS_SUPPLEMENT          
NC_("RID_SUBSETMAP", "Tangut Components Supplement")
++#define RID_SUBSETSTR_TOLONG_SIKI                           
NC_("RID_SUBSETMAP", "Tolong Siki")
+ 
+ #define RID_SVXSTR_FRAMEDIR_LTR                             
NC_("RID_SVXSTR_FRAMEDIR_LTR", "Left-to-right (LTR)")
+ #define RID_SVXSTR_FRAMEDIR_RTL                             
NC_("RID_SVXSTR_FRAMEDIR_RTL", "Right-to-left (RTL)")
+diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx
+index 71c81261350d..32999d6e63fe 100644
+--- a/svx/source/dialog/charmap.cxx
++++ b/svx/source/dialog/charmap.cxx
+@@ -1959,6 +1959,32 @@ void SubsetMap::InitList()
+                 case UBLOCK_TULU_TIGALARI:
+                     aAllSubsets.emplace_back( 0x11380, 0x113FF, 
SvxResId(RID_SUBSETSTR_TULU_TIGALARI) );
+                     break;
++#endif
++#if (U_ICU_VERSION_MAJOR_NUM >= 78)
++                case UBLOCK_BERIA_ERFE:
++                    aAllSubsets.emplace_back( 0x16EA0, 0x16EDF, 
SvxResId(RID_SUBSETSTR_BERIA_ERFE) );
++                    break;
++                case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_J:
++                    aAllSubsets.emplace_back( 0x323B0, 0x3347F, 
SvxResId(RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_J) );
++                    break;
++                case UBLOCK_MISCELLANEOUS_SYMBOLS_SUPPLEMENT:
++                    aAllSubsets.emplace_back( 0x1CEC0, 0x1CEFF, 
SvxResId(RID_SUBSETSTR_MISCELLANEOUS_SYMBOLS_SUPPLEMENT) );
++                    break;
++                case UBLOCK_SHARADA_SUPPLEMENT:
++                    aAllSubsets.emplace_back( 0x11B60, 0x11B7F, 
SvxResId(RID_SUBSETSTR_SHARADA_SUPPLEMENT) );
++                    break;
++                case UBLOCK_SIDETIC:
++                    aAllSubsets.emplace_back( 0x10940, 0x1095F, 
SvxResId(RID_SUBSETSTR_SIDETIC) );
++                    break;
++                case UBLOCK_TAI_YO:
++                    aAllSubsets.emplace_back( 0x1E6C0, 0x1E6FF, 
SvxResId(RID_SUBSETSTR_TAI_YO) );
++                    break;
++                case UBLOCK_TANGUT_COMPONENTS_SUPPLEMENT:
++                    aAllSubsets.emplace_back( 0x18D80, 0x18DFF, 
SvxResId(RID_SUBSETSTR_TANGUT_COMPONENTS_SUPPLEMENT) );
++                    break;
++                case UBLOCK_TOLONG_SIKI:
++                    aAllSubsets.emplace_back( 0x11DB0, 0x11DEF, 
SvxResId(RID_SUBSETSTR_TOLONG_SIKI) );
++                    break;
+ #endif
+             }
+ 
+-- 
+cgit v1.2.3

diff --git a/app-office/libreoffice/libreoffice-25.2.7.2-r1.ebuild 
b/app-office/libreoffice/libreoffice-25.2.7.2-r1.ebuild
index ebbc76a6c4d9..47999ca2e243 100644
--- a/app-office/libreoffice/libreoffice-25.2.7.2-r1.ebuild
+++ b/app-office/libreoffice/libreoffice-25.2.7.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -296,7 +296,9 @@ PATCHES=(
        "${FILESDIR}/${PN}-25.2-unused-qt6network.patch"
        "${FILESDIR}/${PN}-25.2.4.3-gcc16.patch"
        "${FILESDIR}/${PN}-25.2.6.2-poppler-25.09.patch"
-       "${FILESDIR}/${PN}-25.2.7.2-poppler-25.10.patch"
+       "${FILESDIR}/${P}-poppler-25.10.patch"
+       "${FILESDIR}/${P}-icu-77.1.patch"
+       "${FILESDIR}/${P}-icu-78.1.patch"
 
        # add qt6 backend as possible fallback for gtk-based desktop 
environments:
        # https://bugs.gentoo.org/950170

Reply via email to