Unbreak with new harfbuzz; from upstream.

This commit is contained in:
ajacoutot 2021-10-06 14:36:11 +00:00
parent 91ddedcbad
commit 68174c71a2
2 changed files with 50 additions and 2 deletions

View File

@ -1,10 +1,11 @@
# $OpenBSD: Makefile,v 1.78 2021/10/04 11:12:22 solene Exp $
# $OpenBSD: Makefile,v 1.79 2021/10/06 14:36:11 ajacoutot Exp $
DPB_PROPERTIES= parallel
COMMENT= desktop publishing program
DISTNAME= scribus-1.5.7
CATEGORIES= print
REVISION= 0
HOMEPAGE= https://www.scribus.net/
@ -16,7 +17,7 @@ WANTLIB += Qt5Core Qt5Gui Qt5Network Qt5OpenGL Qt5PrintSupport
WANTLIB += Qt5Widgets Qt5Xml c cairo cups execinfo fontconfig
WANTLIB += freetype harfbuzz harfbuzz-icu hunspell-1.7 icudata
WANTLIB += icuuc jpeg lcms2 m png podofo poppler tiff util xml2
WANTLIB += z
WANTLIB += z harfbuzz-subset
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=scribus/}
EXTRACT_SUFX= .tar.xz

View File

@ -0,0 +1,47 @@
$OpenBSD: patch-scribus_fonts_sfnt_cpp,v 1.1 2021/10/06 14:36:11 ajacoutot Exp $
From 1b546978bc4ea0b2a73fbe4d7cf947887e865162 Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Sat, 21 Aug 2021 20:05:43 +0000
Subject: [PATCH] Use new hb-subset api with harfbuzz >= 2.9.0 in order to prepeare for removal of legacy API in 3.0
From 68ec41169eaceea4a6e1d6f359762a191c7e61d5 Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Sun, 19 Sep 2021 11:59:50 +0000
Subject: [PATCH] #16635: Replace hb_subset, removed in harfbuzz 3.0, by hb_subset_or_fail
Index: scribus/fonts/sfnt.cpp
--- scribus/fonts/sfnt.cpp.orig
+++ scribus/fonts/sfnt.cpp
@@ -1256,16 +1256,30 @@ namespace sfnt {
for (int i = 0; i < cids.count(); ++i)
hb_set_add(glyphSet, cids.at(i));
-
+
+#if HB_VERSION_ATLEAST(2, 9, 0)
+ uint32_t subsetFlags = (uint32_t) hb_subset_input_get_flags(hbSubsetInput.get());
+ subsetFlags |= HB_SUBSET_FLAGS_RETAIN_GIDS;
+ subsetFlags &= ~HB_SUBSET_FLAGS_NO_HINTING;
+ subsetFlags |= HB_SUBSET_FLAGS_NAME_LEGACY;
+ hb_subset_input_set_flags(hbSubsetInput.get(), subsetFlags);
+#else
hb_subset_input_set_retain_gids(hbSubsetInput.get(), true);
hb_subset_input_set_drop_hints(hbSubsetInput.get(), false);
#if HB_VERSION_ATLEAST(2, 6, 5)
hb_subset_input_set_name_legacy(hbSubsetInput.get(), true);
#endif
+#endif
+#if HB_VERSION_ATLEAST(2, 9, 0)
+ QScopedPointer<hb_face_t, HbFaceDeleter> hbSubsetFace(hb_subset_or_fail(hbFullFace.get(), hbSubsetInput.get()));
+ if (hbSubsetFace.isNull())
+ return QByteArray();
+#else
QScopedPointer<hb_face_t, HbFaceDeleter> hbSubsetFace(hb_subset(hbFullFace.get(), hbSubsetInput.get()));
if (hbSubsetFace.isNull())
return QByteArray();
+#endif
QScopedPointer<hb_blob_t, HbBlobDeleter> hbSubsetBlob(hb_face_reference_blob(hbSubsetFace.get()));
if (hbSubsetBlob.isNull())