--- pango/pangocoretext-private.h 2026-03-23 09:54:26.000000000 +0800 +++ pango/pangocoretext-private.h 2026-05-06 20:59:17.000000000 +0800 @@ -136,8 +136,6 @@ _PANGO_EXTERN int pango_core_text_font_key_get_size (const PangoCoreTextFontKey *key); _PANGO_EXTERN -int pango_core_text_font_key_get_size (const PangoCoreTextFontKey *key); -_PANGO_EXTERN double pango_core_text_font_key_get_resolution (const PangoCoreTextFontKey *key); _PANGO_EXTERN gboolean pango_core_text_font_key_get_synthetic_italic (const PangoCoreTextFontKey *key); --- pango/pangocoretext.h 2026-03-23 09:54:26.000000000 +0800 +++ pango/pangocoretext.h 2026-05-06 21:06:13.000000000 +0800 @@ -24,6 +24,7 @@ #define __PANGOCORETEXT_H__ #include +#include /* bzero */ #include G_BEGIN_DECLS pangocoretext.c:263:17: error: assignment to 'PangoFontMap *' {aka 'struct _PangoFontMap *'} from incompatible pointer type 'PangoCoreTextFontMap *' {aka 'struct _PangoCoreTextFontMap *'} --- pango/pangocoretext.c 2026-03-23 09:54:26.000000000 +0800 +++ pango/pangocoretext.c 2026-05-06 21:14:05.000000000 +0800 @@ -260,7 +260,7 @@ g_return_if_fail (priv->fontmap == NULL); - priv->fontmap = fontmap; + priv->fontmap = PANGO_FONT_MAP (fontmap); if (fontmap) g_object_add_weak_pointer (G_OBJECT (fontmap), (gpointer *) &priv->fontmap); } Carbon/Carbon.h is already included via pango headers, but including it before them results in undeclared bzero error. --- pango/pangocairo-coretextfont.c.orig 2026-03-23 09:54:26.000000000 +0800 +++ pango/pangocairo-coretextfont.c 2026-05-06 21:35:09.000000000 +0800 @@ -23,8 +23,6 @@ #include "config.h" -#include - #include "pango-impl-utils.h" #include "pangocoretext-private.h" #include "pangocairo.h" --- pango/pangocoretext-fontmap.c 2026-03-23 09:54:26.000000000 +0800 +++ pango/pangocoretext-fontmap.c 2026-05-06 21:35:17.000000000 +0800 @@ -28,7 +28,7 @@ #include "pangocoretext-private.h" #include "pango-impl-utils.h" -#include +#include typedef struct _FontHashKey FontHashKey; @@ -809,11 +809,6 @@ } - -static void pango_core_text_font_map_class_init (PangoCoreTextFontMapClass *class); -static void pango_core_text_font_map_init (PangoCoreTextFontMap *ctfontmap); - - G_DEFINE_TYPE (PangoCoreTextFontMap, pango_core_text_font_map, PANGO_TYPE_FONT_MAP); static void @@ -1591,7 +1586,7 @@ /* Insert aliases */ /* Keep in sync with get_real_family() */ - gchar* aliases[] = { + const gchar* aliases[] = { "Sans", "Serif", "system-ui", "cursive", "fantasy", "Monospace" }; @@ -1683,7 +1678,6 @@ */ static void pango_core_text_fontset_finalize (GObject *object); -static void pango_core_text_fontset_init (PangoCoreTextFontset *fontset); static PangoLanguage * pango_core_text_fontset_get_language (PangoFontset *fontset); static PangoFont * pango_core_text_fontset_get_font (PangoFontset *fontset, guint wc); @@ -1793,7 +1787,17 @@ &kCFTypeArrayCallBacks); } + /* CTFontCopyDefaultCascadeListForLanguages was introduced in macOS 10.8. + * On older systems fall back to the font's built-in cascade list attribute, + * which is language-agnostic but available since macOS 10.5. */ +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 fontset->cascade_list = CTFontCopyDefaultCascadeListForLanguages (pango_core_text_font_get_ctfont (best_font), language_pref_list); +#else + fontset->cascade_list = (CFArrayRef) CTFontCopyAttribute (pango_core_text_font_get_ctfont (best_font), + kCTFontCascadeListAttribute); + if (!fontset->cascade_list) + fontset->cascade_list = CFArrayCreate (kCFAllocatorDefault, NULL, 0, &kCFTypeArrayCallBacks); +#endif if (language_pref_list) {