From 4d2674d86d87a76a1e7fbb1cf70563d6cfec4d7e93d50531e3446877f304da16 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Fri, 24 Sep 2021 09:43:22 +0000 Subject: [PATCH] Accepting request 921259 from home:Vogtinator:branches:KDE:Extra - Add patches to fix build with harfbuzz 3.0.0: * 0001-Use-new-hb-subset-api-with-harfbuzz-2.9.0-in-order-t.patch * 0002-16635-Replace-hb_subset-removed-in-harfbuzz-3.0-by-h.patch - Run dos2unix after applying patches OBS-URL: https://build.opensuse.org/request/show/921259 OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/scribus?expand=0&rev=71 --- ...t-api-with-harfbuzz-2.9.0-in-order-t.patch | 40 +++++++++++++++++++ ..._subset-removed-in-harfbuzz-3.0-by-h.patch | 35 ++++++++++++++++ scribus.changes | 8 ++++ scribus.spec | 8 ++-- 4 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 0001-Use-new-hb-subset-api-with-harfbuzz-2.9.0-in-order-t.patch create mode 100644 0002-16635-Replace-hb_subset-removed-in-harfbuzz-3.0-by-h.patch diff --git a/0001-Use-new-hb-subset-api-with-harfbuzz-2.9.0-in-order-t.patch b/0001-Use-new-hb-subset-api-with-harfbuzz-2.9.0-in-order-t.patch new file mode 100644 index 0000000..51bba49 --- /dev/null +++ b/0001-Use-new-hb-subset-api-with-harfbuzz-2.9.0-in-order-t.patch @@ -0,0 +1,40 @@ +From ddf6093991621141a803c33ff7b8d7b8f695b74f Mon Sep 17 00:00:00 2001 +From: Jean Ghali +Date: Sat, 21 Aug 2021 20:05:43 +0000 +Subject: [PATCH 1/2] Use new hb-subset api with harfbuzz >= 2.9.0 in order to + prepeare for removal of legacy API in 3.0 + +git-svn-id: svn://scribus.net/trunk/Scribus@24696 11d20701-8431-0410-a711-e3c959e3b870 +(cherry picked from commit 1b546978bc4ea0b2a73fbe4d7cf947887e865162) +--- + scribus/fonts/sfnt.cpp | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/scribus/fonts/sfnt.cpp b/scribus/fonts/sfnt.cpp +index 50777f66e..fca8b3915 100644 +--- a/scribus/fonts/sfnt.cpp ++++ b/scribus/fonts/sfnt.cpp +@@ -1256,11 +1256,19 @@ 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 + + QScopedPointer hbSubsetFace(hb_subset(hbFullFace.get(), hbSubsetInput.get())); +-- +2.33.0 + diff --git a/0002-16635-Replace-hb_subset-removed-in-harfbuzz-3.0-by-h.patch b/0002-16635-Replace-hb_subset-removed-in-harfbuzz-3.0-by-h.patch new file mode 100644 index 0000000..33c4b49 --- /dev/null +++ b/0002-16635-Replace-hb_subset-removed-in-harfbuzz-3.0-by-h.patch @@ -0,0 +1,35 @@ +From df934c5149577bc0ef68657644045115bd9d4995 Mon Sep 17 00:00:00 2001 +From: Jean Ghali +Date: Sun, 19 Sep 2021 11:59:50 +0000 +Subject: [PATCH 2/2] #16635: Replace hb_subset, removed in harfbuzz 3.0, by + hb_subset_or_fail + +git-svn-id: svn://scribus.net/trunk/Scribus@24707 11d20701-8431-0410-a711-e3c959e3b870 +(cherry picked from commit 68ec41169eaceea4a6e1d6f359762a191c7e61d5) +--- + scribus/fonts/sfnt.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/scribus/fonts/sfnt.cpp b/scribus/fonts/sfnt.cpp +index fca8b3915..b3dfa50dc 100644 +--- a/scribus/fonts/sfnt.cpp ++++ b/scribus/fonts/sfnt.cpp +@@ -1271,9 +1271,15 @@ namespace sfnt { + #endif + #endif + ++#if HB_VERSION_ATLEAST(2, 9, 0) ++ QScopedPointer hbSubsetFace(hb_subset_or_fail(hbFullFace.get(), hbSubsetInput.get())); ++ if (hbSubsetFace.isNull()) ++ return QByteArray(); ++#else + QScopedPointer hbSubsetFace(hb_subset(hbFullFace.get(), hbSubsetInput.get())); + if (hbSubsetFace.isNull()) + return QByteArray(); ++#endif + + QScopedPointer hbSubsetBlob(hb_face_reference_blob(hbSubsetFace.get())); + if (hbSubsetBlob.isNull()) +-- +2.33.0 + diff --git a/scribus.changes b/scribus.changes index 7592786..d1e19b8 100644 --- a/scribus.changes +++ b/scribus.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Sep 24 09:13:39 UTC 2021 - Fabian Vogt + +- Add patches to fix build with harfbuzz 3.0.0: + * 0001-Use-new-hb-subset-api-with-harfbuzz-2.9.0-in-order-t.patch + * 0002-16635-Replace-hb_subset-removed-in-harfbuzz-3.0-by-h.patch +- Run dos2unix after applying patches + ------------------------------------------------------------------- Mon Apr 26 09:23:12 UTC 2021 - Wolfgang Bauer diff --git a/scribus.spec b/scribus.spec index 7b2a8d9..285b012 100644 --- a/scribus.spec +++ b/scribus.spec @@ -28,6 +28,9 @@ URL: https://www.scribus.net/ Source: %{name}-%{version}.tar.xz # PATCH-FIX-OPENSUSE Patch0: 0001-Make-sure-information-displayed-on-the-about-window-.patch +# PATCH-FIX-UPSTREAM +Patch1: 0001-Use-new-hb-subset-api-with-harfbuzz-2.9.0-in-order-t.patch +Patch2: 0002-16635-Replace-hb_subset-removed-in-harfbuzz-3.0-by-h.patch BuildRequires: cmake >= 3.14.0 BuildRequires: cups-devel BuildRequires: dos2unix @@ -98,13 +101,10 @@ Group: Documentation/HTML This package provides the documentation for Scribus. %prep -%setup -q +%autosetup -p1 # W: wrong-script-end-of-line-encoding -# also required for cherry-picked patches find . -type f \( -iname \*.py -o -iname \*.cpp -o -iname \*.h \) -exec dos2unix {} \; -%autopatch -p1 - %build # Don't use the %%cmake macro, it causes crashes when starting scribus mkdir build