Sync from SUSE:SLFO:Main harfbuzz revision fdddfe43d36c76f29d026f80350f8622

This commit is contained in:
2025-03-30 12:07:07 +02:00
parent d8b3701f55
commit 73dc72fe1e
7 changed files with 377 additions and 11 deletions

18
_service Normal file
View File

@@ -0,0 +1,18 @@
<?xml version="1.0"?>
<services>
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://github.com/harfbuzz/harfbuzz.git</param>
<param name="revision">10.4.0</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">v?(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param>
<!-- <param name="changesgenerate">enable</param> -->
</service>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param>
<param name="compression">zst</param>
</service>
<service name="set_version" mode="manual" />
</services>

View File

@@ -1,4 +1,5 @@
libharfbuzz0
libharfbuzz-icu0
libharfbuzz-cairo0
libharfbuzz-gobject0
libharfbuzz-icu0
libharfbuzz-subset0

BIN
harfbuzz-10.4.0.obscpio (Stored with Git LFS) Normal file

Binary file not shown.

BIN
harfbuzz-7.2.0.tar.xz (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,3 +1,327 @@
-------------------------------------------------------------------
Sat Mar 1 09:36:20 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
- 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 <bjorn.lie@gmail.com>
- 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.
+ Dont 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 <bjorn.lie@gmail.com>
- 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.
+ Dont 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 <mgorse@suse.com>
- 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 <bjorn.lie@gmail.com>
- 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 <bjorn.lie@gmail.com>
- 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 <bjorn.lie@gmail.com>
- 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), dont 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 <andreas.stieger@gmx.de>
- 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 <andreas.stieger@gmx.de>
- 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 1330%
+ Various subsetter and instancer fixes
-------------------------------------------------------------------
Fri May 3 13:59:13 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Force higher C++ standard version for building with ICU 75.
-------------------------------------------------------------------
Fri Mar 29 19:08:48 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
- 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 <andreas.stieger@gmx.de>
- 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 <bjorn.lie@gmail.com>
- 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 <bjorn.lie@gmail.com>
- Update to version 8.2.1:
+ Unicode 15.1 support.
-------------------------------------------------------------------
Fri Sep 8 20:14:07 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
- 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 <bjorn.lie@gmail.com>
- 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 <bjorn.lie@gmail.com>
- 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 <bjorn.lie@gmail.com>
- 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 <andreas.stieger@gmx.de>
- 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 <Andreas.Stieger@gmx.de>
@@ -172,6 +496,13 @@ Sun Jul 3 09:33:36 UTC 2022 - Andreas Stieger <andreas.stieger@gmx.de>
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 <mgorse@suse.com>
- 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 <andreas.stieger@gmx.de>

4
harfbuzz.obsinfo Normal file
View File

@@ -0,0 +1,4 @@
name: harfbuzz
version: 10.4.0
mtime: 1740783589
commit: 3ef8709829a5884517ad91a97b32b9435b2f20d1

View File

@@ -1,7 +1,8 @@
#
# spec file for package harfbuzz
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2024 Andreas Stieger <Andreas.Stieger@gmx.de>
#
# 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