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