Subject: 27.0.50; [PATCH] Harfbuzz: fix compilation with --use-cairo

From: Ari Roponen <[email-masked]>
Date: Fri, 14 Dec 2018 09:22:09 +0200

Emacs harfbuzz-branch compiled with --with-cairo crashes because of
these lines in ftcrfont.c:

  if (ftfont_info_size != offsetof (struct ftcrfont_info, cr_font_face))
    abort ();

The following patch fixes the problem:

diff --git a/src/ftcrfont.c b/src/ftcrfont.c
index e2f84d44fc..6d74d937a7 100644
--- a/src/ftcrfont.c
+++ b/src/ftcrfont.c
@@ -41,6 +41,9 @@ struct ftcrfont_info
   bool maybe_otf;	  /* Flag to tell if this may be OTF or not.  */
   OTF *otf;
 #endif	/* HAVE_LIBOTF */
+#ifdef HAVE_HARFBUZZ
+  hb_font_t *hb_font;
+#endif  /* HAVE_HARFBUZZ */
   FT_Size ft_size;
   int index;
   FT_Matrix matrix;

In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.1, cairo version 1.16.0)
 of 2018-12-14 built on arirop
Repository revision: 0cf5d630009dfa215f488facc98c9f948eabaf2a
Repository branch: harfbuzz
Windowing system distributor 'Fedora Project', version 11.0.12003000
System Description: Fedora 29 (Twenty Nine)

Configured using:
 'configure --with-cairo'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO IMAGEMAGICK SOUND DBUS GSETTINGS GLIB
NOTIFY INOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT
LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM THREADS LIBSYSTEMD
JSON LCMS2 GMP