diff --git a/_service b/_service
new file mode 100644
index 0000000..913a64a
--- /dev/null
+++ b/_service
@@ -0,0 +1,18 @@
+
+
+
+ git
+ https://github.com/harfbuzz/harfbuzz.git
+ 10.4.0
+ @PARENT_TAG@+@TAG_OFFSET@
+ v?(.*)\+0
+ \1
+
+
+
+
+ *.tar
+ zst
+
+
+
diff --git a/baselibs.conf b/baselibs.conf
index f58929b..a8efbe4 100644
--- a/baselibs.conf
+++ b/baselibs.conf
@@ -1,4 +1,5 @@
libharfbuzz0
-libharfbuzz-icu0
+libharfbuzz-cairo0
libharfbuzz-gobject0
+libharfbuzz-icu0
libharfbuzz-subset0
diff --git a/harfbuzz-10.4.0.obscpio b/harfbuzz-10.4.0.obscpio
new file mode 100644
index 0000000..2c90b05
--- /dev/null
+++ b/harfbuzz-10.4.0.obscpio
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f0317ee2e53ed0ce605fd48ec1d2568c67850417fe892ab40a58067a1cd8c159
+size 96703502
diff --git a/harfbuzz-7.2.0.tar.xz b/harfbuzz-7.2.0.tar.xz
deleted file mode 100644
index 47c52eb..0000000
--- a/harfbuzz-7.2.0.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fc5560c807eae0efd5f95b5aa4c65800c7a8eed6642008a6b1e7e3ffff7873cc
-size 18716956
diff --git a/harfbuzz.changes b/harfbuzz.changes
index 037df55..7be0b81 100644
--- a/harfbuzz.changes
+++ b/harfbuzz.changes
@@ -1,3 +1,327 @@
+-------------------------------------------------------------------
+Sat Mar 1 09:36:20 UTC 2025 - Bjørn Lie
+
+- Update to version 10.4.0:
+ + Drawing glyphs using hb-draw API now avoids any “malloc” calls,
+ which improves drawing performance by 10+%.
+ + Add support new “GVAR” table fonts with more than 65535 glyphs.
+ Support is currently behind a compilation flag and is disabled
+ by default.
+ + Some hb-directwrite and hb-ft APIs got renamed with more clear
+ names and the old names are deprecated.
+ + Various build and fuzzing fixes.
+ + New API:
+ - +hb_directwrite_face_get_dw_font_face()
+ - +hb_ft_font_get_ft_face()
+ + Deprecated API:
+ - +hb_directwrite_face_get_font_face()
+ - +hb_ft_font_get_face()
+
+-------------------------------------------------------------------
+Fri Feb 21 10:38:24 UTC 2025 - Bjørn Lie
+
+- Update to version 10.3.0:
+ + Vastly improved “AAT” shaping performance. LucidaGrande
+ benchmark-shape before: 14.6ms after: 5.9ms.
+ + Improved OpenType shaping performance (kerning / ligature), at
+ the expense of ~1kb per face allocated cache memory.
+ Roboto-Regular benchmark-shape before: 10.3ms after: 9.4ms.
+ + Improved “COLRv1” benchmark-font paint performance. Before:
+ 7.85ms after 4.85ms.
+ + Don’t apply glyph substitutions in “morx” table of a font with
+ known broken “morx” table (AALMAGHRIBI.ttf font).
+ + Update IANA and OT language registries.
+ + Various documentation updates.
+ + Various build improvements, and test speed-ups.
+ + The “hb_face_reference_blob()” API now works for faces created
+ with “hb_face_create_for_tables()” if the face sets
+ “get_table_tags” callback. This constructs a new face blob from
+ individual table blobs.
+ + Various fixes to how “trak” table is handled to bring it closer
+ to Core Text behaviour. Particularly, the tracking values for
+ sizes not explicitly set in the table are now properly
+ interpolated, and the tracking is applied to glyph advances
+ when they are returned by ot-font functions, instead of
+ applying them during shaping. The “trak” pseudo OpenType
+ feature that could be used to disable “trak” table application
+ have been dropped.
+ + Core Text font functions now support non-BMP code points.
+ + The drawing algorithm used by hb-draw for “glyf” table now
+ match the algorithm used by FreeType and Core Text.
+ + The “hb_coretext_font_create()” API now copy font variations
+ from Core Text font to the created HarfBuzz font.
+ + Add an API to get the feature tags enabled on a given
+ shape-plan after executing it, which can be used to
+ applications to show in the UI what features are applied by
+ default (which can vary based on the font, the script, the
+ language, and the direction set on the buffer).
+ + Add APIs to created HarfBuzz font from DirectWrite font, and
+ copy the font variations.
+ + New API:
+ hb_directwrite_font_create()
+ hb_directwrite_font_get_dw_font()
+ hb_ot_shape_plan_get_feature_tags()
+
+-------------------------------------------------------------------
+Sun Jan 12 13:46:47 UTC 2025 - Bjørn Lie
+
+- Update to version 10.2.0:
+ + Consider Unicode Variation Selectors when subsetting “cmap”
+ table.
+ + Guard hb_cairo_glyphs_from_buffer() against malformed UTF-8
+ strings.
+ + Fix incorrect “COLR” v1 glyph scaling in hb-cairo.
+ + Use locale-independent parsing of double numbers is “hb-subset”
+ command line tool.
+ + Fix incorrect zeroing of advance width of base glyphs in
+ various “Courier New” font versions due to incorrect “GDEF”
+ glyph classes.
+ + Fix handling of long language codes with “HB_LEAN”
+ configuration.
+ + Update OpenType language system registry.
+ + Allow all Myanmar tone marks (including visarga) in any order.
+ + Don’t insert U+25CC DOTTED CIRCLE before superscript/subscript
+ digits.
+ + Handle Garay script as right to left script.
+ + New API for serializing font tables and potentially repacking
+ them in optimal way.
+ + New API for converting font variation setting from and to
+ strings.
+ + Various build fixes.
+ + Various subsetter and instancer fixes.
+ + New API:
+ - +hb_subset_serialize_link_t
+ - +hb_subset_serialize_object_t
+ - +hb_subset_serialize_or_fail()
+ - +hb_subset_axis_range_from_string()
+ - +hb_subset_axis_range_to_string()
+- Drop harfbuzz-CVE-2024-56732.patch: Fixed upstream.
+
+-------------------------------------------------------------------
+Tue Dec 31 19:05:26 UTC 2024 - Michael Gorse
+
+- Add harfbuzz-CVE-2024-56732.patch: guard
+ hb_cairo_glyphs_from_buffer() against bad UTF-8 (CVE-2024-56732).
+
+-------------------------------------------------------------------
+Tue Nov 5 08:44:15 UTC 2024 - Bjørn Lie
+
+- Update to version 10.1.0:
+ + Fix the sign of fallback vertical glyph advance (used when font
+ has no vertical advance data).
+ + Increase maximum “CFF” operands limit 20 times to support more
+ complex fonts.
+ + Add “--face-loader” option to command line utilities.
+ + Support “COLR” v0 table in hb_font_get_glyph_extents().
+ + Add support for font functions that use Core Text APIs, similar
+ to FreeType font functions. This allows, for example, using
+ drawing fonts that use the new (and undocumented) “hvgl” table.
+ + Update IANA and OT language registries, as well ase USE data
+ files.
+ + Fix build with ICU 76.
+ + Various compiler warnings and build fixes.
+ + Various subsetter fixes.
+
+-------------------------------------------------------------------
+Wed Sep 25 08:26:48 UTC 2024 - Bjørn Lie
+
+- Update to version 10.0.1:
+ + Relax sanitization checks for “morx” subtables to fix broken
+ AAT shaping of macOS 15.0 version of GeezaPro.
+- Switch to source service for tarball.
+
+-------------------------------------------------------------------
+Mon Sep 23 20:10:33 UTC 2024 - Bjørn Lie
+
+- Update to version 10.0.0:
+ + Unicode 16.0.0 support.
+ + Various documentation fixes.
+ + Various build fixes.
+ + Add API to allow HarfBuzz client to set what glyph to use when
+ a Unicode Variation Selector is not supported by the font,
+ which would allow the client to customize what happens in this
+ case, by using a different font for example.
+ + Add a callback to for “hb_face_t” for getting the list of table
+ tags. This is now used to make calling
+ “hb_face_get_table_tags()” work on a faces created by
+ “hb_face_create_for_tables()” (e.g. faces returned by
+ “hb_subset_or_fail()”).
+ + CGJ and Mongolian Variation Selectors are now ignored during
+ glyph positioning, previously they would block both glyph
+ substitution and positioning across them.
+ + Support cairo script as an output format for “hb-view” command
+ line tool.
+ + Drop an optimization that would cause HarfBuzz not apply pair
+ positioning lookup subtables under certain circumstances, for
+ compatibility with other implementations that do apply these
+ subtables.
+ + Subsetting will now fail if source font has no glyphs, so
+ feeding the subsetter invalid data will not silently return an
+ empty face.
+ + If after partially instancing a font no variation data is left
+ (the instance is fully static), don’t consider this a failure.
+ + Workaround a Firefox bug in displaying SVGs generated be
+ “hb-view” command line tool under certain circumstances.
+ + Fix bug in macroman mapping for “cmap” table.
+ + Fix difference shaping output when HarfBuzz is built with with
+ “HB_NO_OT_RULESETS_FAST_PATH” enabled.
+ + Various subsetting and instancing fixes.
+ + Various fuzzing fixes.
+ + Add “with_libstdcxx” meson build option.
+
+-------------------------------------------------------------------
+Sun Jul 7 11:23:55 UTC 2024 - Andreas Stieger
+
+- update to version 9.0.0:
+ + Speed up “AAT” shaping for short words by up to 4%
+ + Ignore unknown “CFF” operators
+ + “hb_subset_input_keep_everything()” now keeps also non-unicode
+ “name” table records.
+ + Update the IANA and OpenType language tag registries
+ + Support composite glyphs with very large number of points in
+ hb-draw API
+ + Various build fixes
+
+-------------------------------------------------------------------
+Thu May 16 04:51:28 UTC 2024 - Andreas Stieger
+
+- update to version 8.5.0:
+ + API for partial instancing is now stable and have been promoted
+ out of experimental APIs.
+ + Support instancing “BASE” table
+ + Speedup AAT shaping by 13–30%
+ + Various subsetter and instancer fixes
+
+-------------------------------------------------------------------
+Fri May 3 13:59:13 UTC 2024 - Jan Engelhardt
+
+- Force higher C++ standard version for building with ICU 75.
+
+-------------------------------------------------------------------
+Fri Mar 29 19:08:48 UTC 2024 - Andreas Stieger
+
+- update to version 8.4.0:
+ + When subsetting, place variation store at the end of “GDEF”
+ table to fix shaping issues with some versions of Adobe InDesign.
+ + Various build fixes
+- update to version 8.3.1:
+ + Fix hb_style_get_value() in fonts with “STAT” table
+ + Properly handle negative offsets in CFF table
+ + Update IANA Language Subtag Registry to 2024-03-07
+ + Subsetter now supports subsetting “BASE” table
+ + Subsetter will update “hhea” font metrics in sync with “OS/2”
+ ones.
+ + “--variations” option of “hb-subset” now supports leaving out
+ values that should be unchanged, e.g. “wght=:500:” will change
+ the default and keep max and min unchanged. It also supports
+ “*=drop” to to pin all axes to default location.
+ + Fix hb_ot_math_get_glyph_kerning() to match updated “MATH”
+ table spec.
+ + Support legacy MacRoman encoding in “cmap” table.
+ + Various build fixes.
+ + Various subsetting and instancing fixes.
+
+-------------------------------------------------------------------
+Sat Nov 11 16:50:08 UTC 2023 - Andreas Stieger
+
+- Update to version 8.3.0:
+ + Improve memory barrier to fix potential segfaults
+ + Various subsetting and instancing fixes.
+ + Rename “hb-subset” option “--instance” to “--variations” to
+ match the other tools, old option kept as an alias
+- -devel: fix no-library-dependency-on libharbuzz-cairo0
+
+-------------------------------------------------------------------
+Wed Oct 18 09:05:52 UTC 2023 - Bjørn Lie
+
+- Update to version 8.2.2:
+ + Fix regression from 8.1.0 in shaping fonts with duplicate
+ feature tags.
+ + Fix regression from 8.2.0 in parsing CSS-style feature strings.
+ + Variable fonts instanciation now handles more tables.
+ + Various CMake build improvements.
+ + Various fixes to build without errors with gcc 4.9.2.
+
+-------------------------------------------------------------------
+Mon Sep 18 19:54:24 UTC 2023 - Bjørn Lie
+
+- Update to version 8.2.1:
+ + Unicode 15.1 support.
+
+-------------------------------------------------------------------
+Fri Sep 8 20:14:07 UTC 2023 - Bjørn Lie
+
+- Update to version 8.2.0:
+ + Various build and fuzzing fixes
+ + Improvements to COLRv1 painting.
+ + New API:
+ - hb_paint_color_glyph_func_t
+ - hb_paint_funcs_set_color_glyph_func
+ - hb_paint_color_glyph
+
+-------------------------------------------------------------------
+Thu Aug 3 09:17:48 UTC 2023 - Bjørn Lie
+
+- Update to version 8.1.1:
+ + Fix shaping of contextual rules at the end of string,
+ introduced in 8.1.0.
+ + Fix stack-overflow in repacker with malicious fonts.
+ + 30% speed up loading Noto Duployan font.
+
+-------------------------------------------------------------------
+Tue Aug 1 15:35:53 UTC 2023 - Bjørn Lie
+
+- Update to version 8.1.0:
+ + Fix long-standing build issue with the AIX compiler and older
+ Apple clang.
+ + Revert optimization that could cause timeout during subsetting
+ with malicious fonts.
+ + More optimization work:
+ - 45% speed up in shaping Noto Duployan font.
+ - 10% speed up in subsetting Noto Duployan font.
+ - Another 8% speed up in shaping Gulzar.
+ - 5% speed up in loading Roboto.
+ + New API: +hb_ot_layout_collect_features_map().
+
+-------------------------------------------------------------------
+Thu Jul 13 09:15:28 UTC 2023 - Bjørn Lie
+
+- Update to version 8.0.1:
+ + Build fix on 32-bit arm.
+ + More speed optimizations:
+ - 60% speedup in retaingids subsetting SourceHanSans-VF.
+ - 38% speed up in subsetting (beyond-64k) mega-merged Noto.
+ - 16% speed up in retain-gid (used for IFT) subsetting of
+ NotoSansCJKkr.
+- Changes from version 8.0.0:
+ + New, experimental, WebAssembly (WASM) shaper, that provides
+ greater flexibility over OpenType/AAT/Graphite shaping, using
+ WebAssembly embedded inside the font file. Currently WASM
+ shaper is disabled by default and needs to be enabled at build
+ time.
+ + Improvements to Experimental features introduced in earlier
+ releases:
+ - Support for subsetting beyond-64k and VarComposites fonts.
+ - Support for instancing variable fonts with cubic “glyf”
+ table.
+ - Many big speed optimizations.
+
+-------------------------------------------------------------------
+Thu May 11 15:26:20 UTC 2023 - Andreas Stieger
+
+- update to version 7.3.0:
+ + Speedup applying glyph variation in VarComposites fonts
+ (over 40% speedup)
+ + Speedup instancing some fonts
+ (over 20% speedup in instancing RobotoFlex)
+ + Speedup shaping some fonts (over 30% speedup in shaping Roboto
+ + Support subsetting VarComposites and beyond-64k fonts
+ + New configuration macro HB_MINIMIZE_MEMORY_USAGE to favor
+ optimizing memory usage over speed
+ + Supporting setting the mapping between old and new glyph
+ indices during subsetting
+ + Various fixes and improvements
+
-------------------------------------------------------------------
Sun May 7 20:19:26 UTC 2023 - Andreas Stieger
@@ -172,6 +496,13 @@ Sun Jul 3 09:33:36 UTC 2022 - Andreas Stieger
hb_face_create_for_tables()
+ Add 32 bit var store support to the subsetter
+ CVE-2022-33068: overflow in hb-ot-shape-fallback boo#1200900
+ + Drop harfbuzz-CVE-2022-33068.patch
+
+-------------------------------------------------------------------
+Tue May 21 09:37:40 UTC 2022 - Michael Gorse
+
+- Add harfbuzz-CVE-2022-33068.patch: sbix: limit glyph extents
+ (boo#1200900 CVE-2022-33068).
-------------------------------------------------------------------
Sat May 21 08:10:59 UTC 2022 - Andreas Stieger
diff --git a/harfbuzz.obsinfo b/harfbuzz.obsinfo
new file mode 100644
index 0000000..c062d3c
--- /dev/null
+++ b/harfbuzz.obsinfo
@@ -0,0 +1,4 @@
+name: harfbuzz
+version: 10.4.0
+mtime: 1740783589
+commit: 3ef8709829a5884517ad91a97b32b9435b2f20d1
diff --git a/harfbuzz.spec b/harfbuzz.spec
index c825a4d..cc08b0b 100644
--- a/harfbuzz.spec
+++ b/harfbuzz.spec
@@ -1,7 +1,8 @@
#
# spec file for package harfbuzz
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2024 Andreas Stieger
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,26 +18,27 @@
Name: harfbuzz
-Version: 7.2.0
+Version: 10.4.0
Release: 0
Summary: An OpenType text shaping engine
License: MIT
URL: https://www.freedesktop.org/wiki/Software/HarfBuzz
-Source0: https://github.com/harfbuzz/harfbuzz/releases/download/%{version}/%{name}-%{version}.tar.xz
+Source0: %{name}-%{version}.tar.zst
Source99: baselibs.conf
+
BuildRequires: c++_compiler
BuildRequires: c_compiler
BuildRequires: meson
BuildRequires: pkgconfig >= 0.28
-BuildRequires: pkgconfig(cairo) >= 1.8.0
+BuildRequires: pkgconfig(cairo) >= 1.10
BuildRequires: pkgconfig(cairo-ft)
BuildRequires: pkgconfig(freetype2) >= 12.0.6
-BuildRequires: pkgconfig(glib-2.0) >= 2.19.1
+BuildRequires: pkgconfig(glib-2.0) >= 2.30
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(graphite2) >= 1.2.0
BuildRequires: pkgconfig(gthread-2.0)
-BuildRequires: pkgconfig(icu-uc)
+BuildRequires: pkgconfig(icu-uc) >= 49.0
Conflicts: cantarell-fonts < 0.0.23
%description
@@ -92,6 +94,7 @@ This package provides a set of tools for HarfBuzz.
%package devel
Summary: Development files for the HarfBuzz OpenType text shaping engine
+Requires: libharfbuzz-cairo0 = %{version}
Requires: libharfbuzz-gobject0 = %{version}
Requires: libharfbuzz-icu0 = %{version}
Requires: libharfbuzz-subset0 = %{version}
@@ -107,6 +110,8 @@ This package contains the development files.
%autosetup -p1
%build
+# harfbuzz-8.4.0 defaults to 11, icu-75 needs >=17
+export CXXFLAGS="%optflags -std=c++17"
%meson \
-Ddocs=disabled \
-Dgraphite=enabled \
@@ -132,21 +137,27 @@ This package contains the development files.
%{_libdir}/libharfbuzz.so.0*
%files -n libharfbuzz-cairo0
+%license COPYING
%{_libdir}/libharfbuzz-cairo.so.0*
%files -n libharfbuzz-icu0
+%license COPYING
%{_libdir}/libharfbuzz-icu.so.0*
%files -n libharfbuzz-gobject0
+%license COPYING
%{_libdir}/libharfbuzz-gobject.so.0*
%files -n libharfbuzz-subset0
+%license COPYING
%{_libdir}/libharfbuzz-subset.so.0*
%files -n typelib-1_0-HarfBuzz-0_0
+%license COPYING
%{_libdir}/girepository-1.0/HarfBuzz-0.0.typelib
%files tools
+%license COPYING
%{_bindir}/hb-info
%{_bindir}/hb-ot-shape-closure
%{_bindir}/hb-shape
@@ -154,7 +165,8 @@ This package contains the development files.
%{_bindir}/hb-view
%files devel
-%doc AUTHORS README THANKS
+%license COPYING
+%doc AUTHORS README.md THANKS
%{_includedir}/harfbuzz/
%{_libdir}/*.so
%{_libdir}/pkgconfig/harfbuzz.pc