Hello,

this email is a notification from the Auto Upgrade Helper
that the automatic attempt to upgrade the recipe(s) *freetype* to *2.15.0* has 
Succeeded.

Next steps:
    - apply the patch: git am 0001-freetype-upgrade-2.14.3-2.15.0.patch
    - check the changes to upstream patches and summarize them in the commit 
message,
    - compile an image that contains the package
    - perform some basic sanity tests
    - amend the patch and sign it off: git commit -s --reset-author --amend
    - send it to the appropriate mailing list

Alternatively, if you believe the recipe should not be upgraded at this time,
you can fill RECIPE_NO_UPDATE_REASON in respective recipe file so that
automatic upgrades would no longer be attempted.

Please review the attached files for further information and build/update 
failures.
Any problem please file a bug at 
https://bugzilla.yoctoproject.org/enter_bug.cgi?product=Automated%20Update%20Handler

Regards,
The Upgrade Helper

-- >8 --
>From 6f4ef4c01c8976cf2e00e58c1cf365865117dee8 Mon Sep 17 00:00:00 2001
From: Upgrade Helper <[email protected]>
Date: Tue, 13 Oct 2026 06:27:35 +0000
Subject: [PATCH] freetype: upgrade 2.14.3 -> 2.15.0

Tag sources with `VER-2-15-0'.
Whitespace.
[truetype] Avoid overflow in VARC axis values.
Reported as
  https://issues.oss-fuzz.com/issues/570754474

  (tt_face_load_varc_glyph): Use `NEG_LONG` when rounding negative axis
  values, since the conversion can wrap to `INT32_MIN` and negating that
  value overflows on platforms with 32-bit longs.

Assisted-by: OpenAI Codex

`numBlends` comes from the charstring and is attacker-controlled.  Check for
overflow before multiplying: a wrapped `numOperands` would bypass the stack
underflow check below and the loop that follows would then run up to 2^32
iterations (CPU exhaustion).

[autofit] Limit default GSUB coverage to reachable glyphs.

A lookup can be registered under several scripts while substituting inputs
from only one of them.  Collecting every output assigns those glyphs to the
first processed script, regardless of the inputs' styles.  In Google Sans
this assigns the Latin rvrn alternates to Cyrillic; missing Cyrillic blue
zones then disable their hinting and darkening.

The full Meson test suite passes with linked, dynamic, and disabled
HarfBuzz.  The regression fails before the fix.  Google Sans alternates
retain Latin styles and stem darkening after the fix.

Assisted-by: OpenAI Codex
Fixes issue #1441.
[truetype] Make tiny exception from v40 rules.
[colr] Correctly handle B/W bitmaps in 'COLR' while blending.
[sfnt] Fix standalone compilation of `ttcmap.c`.

The single-object build inherited this include from `sfdriver.c`
and `sfobjs.c`, masking the missing direct dependency.

Assisted-by: OpenAI Codex <[email protected]>
2026-10-04  Tomer Fichman  <@tomer>
Provide tests for issue #1469.
[truetype] Update the VARC variation-store binary format.

Spec:
Offset-base erratum:

Tests: full Meson regression suite (3 passed).
Assisted-by: OpenAI Codex
[truetype] Compare VARC condition values before rounding.

Condition format 2 tests whether default plus interpolated delta is
positive.  Rounding the delta to an integer first loses small positive
fractions and incorrectly hides components.

  (tt_varc_get_item_deltas, tt_varc_eval_condition):  Allow the
  MultiItemVariationStore evaluator to initialize condition accumulators
  from their defaults and return the unrounded sign.  Compare in the
  existing 64-bit representation, including the emulated path, so large
  int32 deltas need not fit in a signed 16.16 `FT_Long`.

  Use ULABS for unsigned magnitudes in emulated multiplication, avoiding
  MSVC's warning about unsigned unary negation (see
  https://gitlab.freedesktop.org/freetype/freetype/-
  /merge_requests/458#note_3692404).

  Cast to `FT_UInt32` after obtaining the magnitude; no additional
  absolute-value helper is needed.

  (tt_varc_apply_axis_deltas, tt_varc_apply_transform_deltas): Updated.

All three Meson targets and the forced-emulated VARC tests pass.  All 40
cross-library diagnostic cases and 115 native/emulated arithmetic
comparisons agree.  MSVC itself was not available locally.

Assisted-by: OpenAI Codex <[email protected]>
[truetype] Repair VARC arithmetic without native 64-bit integers.

  Restrict the fast signed product to its safe range, preserve carries when
  adding negative products, and combine both accumulator words when
  converting fractional deltas.  Explicitly sign-extend the result.

The full Meson suite passes.  An isolated build forcing the emulated VARC
path compiles without an initializer bypass; 115 native/emulated condition
and scaled/unscaled transform comparisons agree, including large signed
deltas, cancellation, and carries.

Assisted-by: OpenAI Codex <[email protected]>
[truetype] Treat null VARC conditions as true.

The OpenType condition rules define an offset of zero as the true
condition.  Recognize that value both in the top-level ConditionList and
in nested AND, OR, and NOT conditions.

Add a VARC regression font covering all four cases.
Assisted-by: OpenAI Codex <[email protected]>
docs/CHANGES: Updated.
[cff] Load VARC-only glyphs beyond the CharStrings INDEX.

OFF permits trailing glyphs to be provided entirely by VARC.  Preserve the
SFNT glyph count for CFF2 fonts with VARC, and dispatch those glyphs to VARC
before checking the CFF2 fallback CharString range.

Add a short-CharStrings fixture and verify its glyph count and outline.  All
three Meson tests pass.

Assisted-by: OpenAI Codex <[email protected]>
[truetype] Apply VARC axis resets without explicit axis values.

Tests: all three Meson targets pass. Generated reset, explicit-axis, and
inheritance comparisons agree with HarfBuzz and FontTools.

Assisted-by: OpenAI Codex <[email protected]>
[base] Preserve off-curve cubic pairs when reversing outlines.
Assisted-by: OpenAI Codex <[email protected]>
[truetype] Support cubic outlines in 'GLYF' table.

Preserve the cubic flag while loading extended simple glyphs, including
on-curve points whose state can be changed by TrueType instructions.

Teach outline decomposition, stroking, and rasterization to ha

[Changelog truncated as it exceeds 5000 characters;
the full changelog can be found in an attachment to the AUH email]
---
 .../freetype/{freetype_2.14.3.bb => freetype_2.15.0.bb}         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 rename meta/recipes-graphics/freetype/{freetype_2.14.3.bb => 
freetype_2.15.0.bb} (94%)

diff --git a/meta/recipes-graphics/freetype/freetype_2.14.3.bb 
b/meta/recipes-graphics/freetype/freetype_2.15.0.bb
similarity index 94%
rename from meta/recipes-graphics/freetype/freetype_2.14.3.bb
rename to meta/recipes-graphics/freetype/freetype_2.15.0.bb
index 924bcbfc4f..cb9c410b46 100644
--- a/meta/recipes-graphics/freetype/freetype_2.14.3.bb
+++ b/meta/recipes-graphics/freetype/freetype_2.15.0.bb
@@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = 
"file://LICENSE.TXT;md5=eeb073d5fb86d23c52bb9b84aa256307 \
                     "
 
 SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BP}.tar.xz"
-SRC_URI[sha256sum] = 
"36bc4f1cc413335368ee656c42afca65c5a3987e8768cc28cf11ba775e785a5f"
+SRC_URI[sha256sum] = 
"93cd47eb719c325107f2d3cf087d06299e944c3b48a40b55537302304dea1dd5"
 
 UPSTREAM_CHECK_REGEX = "freetype-(?P<pver>\d+(\.\d+)+)"
 
-- 
2.47.1

Tag sources with `VER-2-15-0'.
Whitespace.
[truetype] Avoid overflow in VARC axis values.
Reported as
  https://issues.oss-fuzz.com/issues/570754474

  (tt_face_load_varc_glyph): Use `NEG_LONG` when rounding negative axis
  values, since the conversion can wrap to `INT32_MIN` and negating that
  value overflows on platforms with 32-bit longs.

Assisted-by: OpenAI Codex

`numBlends` comes from the charstring and is attacker-controlled.  Check for
overflow before multiplying: a wrapped `numOperands` would bypass the stack
underflow check below and the loop that follows would then run up to 2^32
iterations (CPU exhaustion).

[autofit] Limit default GSUB coverage to reachable glyphs.

A lookup can be registered under several scripts while substituting inputs
from only one of them.  Collecting every output assigns those glyphs to the
first processed script, regardless of the inputs' styles.  In Google Sans
this assigns the Latin rvrn alternates to Cyrillic; missing Cyrillic blue
zones then disable their hinting and darkening.

The full Meson test suite passes with linked, dynamic, and disabled
HarfBuzz.  The regression fails before the fix.  Google Sans alternates
retain Latin styles and stem darkening after the fix.

Assisted-by: OpenAI Codex
Fixes issue #1441.
[truetype] Make tiny exception from v40 rules.
[colr] Correctly handle B/W bitmaps in 'COLR' while blending.
[sfnt] Fix standalone compilation of `ttcmap.c`.

The single-object build inherited this include from `sfdriver.c`
and `sfobjs.c`, masking the missing direct dependency.

Assisted-by: OpenAI Codex <[email protected]>
2026-10-04  Tomer Fichman  <@tomer>
Provide tests for issue #1469.
[truetype] Update the VARC variation-store binary format.

Spec:
Offset-base erratum:

Tests: full Meson regression suite (3 passed).
Assisted-by: OpenAI Codex
[truetype] Compare VARC condition values before rounding.

Condition format 2 tests whether default plus interpolated delta is
positive.  Rounding the delta to an integer first loses small positive
fractions and incorrectly hides components.

  (tt_varc_get_item_deltas, tt_varc_eval_condition):  Allow the
  MultiItemVariationStore evaluator to initialize condition accumulators
  from their defaults and return the unrounded sign.  Compare in the
  existing 64-bit representation, including the emulated path, so large
  int32 deltas need not fit in a signed 16.16 `FT_Long`.

  Use ULABS for unsigned magnitudes in emulated multiplication, avoiding
  MSVC's warning about unsigned unary negation (see
  https://gitlab.freedesktop.org/freetype/freetype/-
  /merge_requests/458#note_3692404).

  Cast to `FT_UInt32` after obtaining the magnitude; no additional
  absolute-value helper is needed.

  (tt_varc_apply_axis_deltas, tt_varc_apply_transform_deltas): Updated.

All three Meson targets and the forced-emulated VARC tests pass.  All 40
cross-library diagnostic cases and 115 native/emulated arithmetic
comparisons agree.  MSVC itself was not available locally.

Assisted-by: OpenAI Codex <[email protected]>
[truetype] Repair VARC arithmetic without native 64-bit integers.

  Restrict the fast signed product to its safe range, preserve carries when
  adding negative products, and combine both accumulator words when
  converting fractional deltas.  Explicitly sign-extend the result.

The full Meson suite passes.  An isolated build forcing the emulated VARC
path compiles without an initializer bypass; 115 native/emulated condition
and scaled/unscaled transform comparisons agree, including large signed
deltas, cancellation, and carries.

Assisted-by: OpenAI Codex <[email protected]>
[truetype] Treat null VARC conditions as true.

The OpenType condition rules define an offset of zero as the true
condition.  Recognize that value both in the top-level ConditionList and
in nested AND, OR, and NOT conditions.

Add a VARC regression font covering all four cases.
Assisted-by: OpenAI Codex <[email protected]>
docs/CHANGES: Updated.
[cff] Load VARC-only glyphs beyond the CharStrings INDEX.

OFF permits trailing glyphs to be provided entirely by VARC.  Preserve the
SFNT glyph count for CFF2 fonts with VARC, and dispatch those glyphs to VARC
before checking the CFF2 fallback CharString range.

Add a short-CharStrings fixture and verify its glyph count and outline.  All
three Meson tests pass.

Assisted-by: OpenAI Codex <[email protected]>
[truetype] Apply VARC axis resets without explicit axis values.

Tests: all three Meson targets pass. Generated reset, explicit-axis, and
inheritance comparisons agree with HarfBuzz and FontTools.

Assisted-by: OpenAI Codex <[email protected]>
[base] Preserve off-curve cubic pairs when reversing outlines.
Assisted-by: OpenAI Codex <[email protected]>
[truetype] Support cubic outlines in 'GLYF' table.

Preserve the cubic flag while loading extended simple glyphs, including
on-curve points whose state can be changed by TrueType instructions.

Teach outline decomposition, stroking, and rasterization to handle cubic
contours with implied on-curve points, including contours with no explicit
on-curve points.  Continue to ignore the reserved flag in the classic 'glyf'
table.

Tested with a synthetic font with a 'GLYF' table covering all-off contours,
implied cubic endpoints, gray and monochrome rendering, and stroking.  The
full Meson test suite also passes.

Assisted-by: OpenAI Codex <[email protected]>
[sfnt] Support the 'DMAP' table.

Parse the optional, cmap-shaped delta map and apply its mappings before the
corresponding 'cmap' mappings.  Preserve sparse fallback for nominal
characters and variation sequences, including the variant-list APIs.

Also keep variation-only subtables from becoming the active Unicode
charmap when DMAP supplies the only nominal Unicode mapping.

Tested with the Meson test suite and synthetic fonts covering nominal
and UVS precedence, fallback, iteration, DMAP-only subtables, and
extended glyph IDs.

Assisted-by: OpenAI Codex <[email protected]>

  (tt_cmap_free, tt_cmap_new, tt_face_add_dmap, tt_cmap_is_variation,
  tt_face_find_unicode_dmap, tt_face_find_dmap, tt_cmap_dmap_done,
  tt_cmap_dmap_char_index, tt_cmap_dmap_char_next,
  tt_cmap_dmap_char_var_index, tt_cmap_dmap_char_var_isdefault,
  tt_cmap_dmap_merge, tt_cmap_dmap_variants, tt_cmap_dmap_char_variants,
  tt_cmap_dmap_variant_chars, tt_cmap_dmap_get_info): New functions for
  'DMAP' support.

  (tt_cmap_dmap_class_rec): New cmap class.

  (tt_face_build_cmaps): Rename to...
  (tt_face_build_cmaps_from_table): ...  this and handle both cmap and dmap
  data.

  (tt_face_build_cmaps, tt_face_expose_dmap, tt_face_build_dmaps,
  tt_face_done_dmaps): New functions.

[base] Reject 'cmap' format 15 as an active charmap.

Like format 14, cmap format 15 is a supplemental Unicode variation-sequence
subtable and cannot be selected as the face's ordinary character map.

Assisted-by: OpenAI Codex <[email protected]>
[sfnt] Support 'cmap' format 15.

Share the format 14 variation-sequence implementation while reading the
format 15 non-default glyph IDs as 24-bit values.  Expose format 15 through
the existing Unicode variation-sequence APIs.

Assisted-by: OpenAI Codex <[email protected]>

  (tt_cmap14_validate) [TT_CONFIG_CMAP_FORMAT_14]: New function.
  (tt_cmap15_validate) [TT_CONFIG_CMAP_FORMAT_15]: New function.

  (tt_cmap14_get_info, tt_cmap14_char_map_nondef_binary,
  tt_cmap14_char_var_index, tt_cmap14_char_var_isdefault,
  tt_cmap14_char_variants, tt_cmap14_get_nondef_chars,
  tt_cmap14_variant_chars): Updated.

  (tt_cmap15_class_rec) [TT_CONFIG_CMAP_FORMAT_15]: New structure.
[truetype] Support the 'GVAR' table.

Read the 24-bit glyph count in the uppercase header and the 24-bit data
offset in each glyph variation record.  Prefer 'GVAR' for 'GLYF' outlines
while preserving 'gvar' behavior.

Assisted-by: OpenAI Codex <[email protected]>
[truetype] Read 24-bit composite glyph IDs.

Honor the 'GLYF' table's `GID_IS_24_BIT` component flag without changing the
interpretation of the reserved bit in the 'glyf' table.

Assisted-by: OpenAI Codex <[email protected]>
[sfnt] Support 'HHEA', 'VHEA', 'HMTX', and 'VMTX' metrics tables.

Read the 32-bit metric counts in 'HHEA' and 'VHEA', and use their 'HMTX'
and 'VMTX' companions.  Keep the wide counts internally while saturating
the legacy public header fields.

Assisted-by: OpenAI Codex <[email protected]>
[truetype] Support 'GLYF' and 'LOCA' tables.

Prefer 'GLYF' and its 'LOCA' companion over the 'glyf' and 'local' tables.
Allow the extended location table to describe more than 65535 glyphs.

Assisted-by: OpenAI Codex <[email protected]>
[sfnt] Support the 'MAXP' table.

Prefer 'MAXP' over 'maxp' and read its 24-bit glyph count.  Keep the wide
count internally while saturating the legacy public `TT_MaxProfile` field.

Assisted-by: OpenAI Codex <[email protected]>
[sfnt] Support TTC versions 1.1 and 2.1.

Read and prefer the extended table-directory offset list in TTC version 1.1
and 2.1 headers.  Account for the version 2 DSIG fields before reading the
extended list, and permit an empty legacy compatibility list.

Assisted-by: OpenAI Codex <[email protected]>
[truetype] Support extended VARC coverage.

Handle Coverage formats 3 and 4 when looking up VARC base glyphs.  These
formats use 24-bit counts, glyph IDs, and coverage indices.

Assisted-by: OpenAI Codex <[email protected]>
[sfnt] Support COLR PaintGlyph2.

Decode PaintGlyph2's 24-bit glyph ID and expose it through the existing
FT_PaintGlyph API.  Normalize the result to the existing public PaintGlyph
format, as is already done for the other equivalent COLR paint variants.

Assisted-by: OpenAI Codex <[email protected]>
Fixes https://issues.oss-fuzz.com/issues/568035737, also in #1470.
Fixes #1470 by avoiding the second re-scanning.
But no support for new scripts (volunteers welcomed).
Carries Unicode 18 scripts.
[truetype] Fix dangling `blend` pointer after failed 'gvar' setup.

Since commit a69e39ad9, `ft_var_load_gvar` creates a private blend for
fonts with 'gvar' but no 'fvar' (VARC static component axes) and calls
`tt_done_blend` if loading fails afterwards.  That function freed the
blend but left `face->blend` pointing to it while the face stays alive,
causing a heap use-after-free on the next access.

Reported as
  https://issues.oss-fuzz.com/issues/564162766
Assisted-By: Claude Fable 5.1 <[email protected]>
[base] More overflow protections.

FT_ABS() can overflow for INT_MIN and LONG_MIN, reported as
  https://issues.chromium.org/issues/563962723

We introduce and use ULABS() nd UABS() to avoid that.
[varc] Support static component axes.

The VARC draft permits static fonts without a 'fvar' table to retain 'gvar'
or 'CFF2' variation data for component-internal coordinates.  Initialize a
private blend from the relevant variation store without exposing those axes
through the public MM API.

Also add TrueType and CFF2 regression fonts.
[tests] Add VARC test framework.
[gzip] Apply security fix for CVE-2026-27171.
This is probably completely unnecessary, but it doesn't hurt.
Taken from
  https://github.com/madler/zlib/commit/ba829a458576d1ff0f26fc7230c6de816d1f6a77
Fixes issue #1468.
src/gzip/README.freetype: Updated.
This should fix #1465.
Fixes issue #1467.
Fixes issue #1466.
The relocates the check for an empty subpath. Fixes #1459.

Overlaps between subroutine dictionaries can be useful but prone to
abuses. The arbitrary limit can be adjusted in the future. Fixes #1457.

docs/CHANGES: Updated.
[truetype] Adjust composite X rounding for native ClearType.

For composite glyphs using `ROUND_XY_TO_GRID`, v40 currently rounds the
component X offset to the full pixel grid when backward compatibility is
disabled.

Native ClearType instead uses a 1/16-pixel grid in the ClearType direction.
As with native ClearType instruction rounding in v40, explicitly
implementing this finer grid is unnecessary here: leaving component
X offsets unrounded gives visually equivalent results in the tested fonts
while keeping the implementation simpler.

Retain existing behavior for backward-compatible ClearType, monochrome
rendering, tricky fonts, and other interpreter versions.

This corrects composite diacritic placement in fonts such as 'Corbel', where
full-pixel X rounding can visibly misplace accents at several ppem sizes.

[autofit] Avoid pointer wrap-around on 32-bit platforms.
Fixes issue #1463.
[winfonts] Avoid endless loop.
Fixes issue #1462.
[pfr] Avoid heap over-read.
Fixes issue #1461.
Fixes issue #1460.
[truetype] Adjust `ROUND` bytecode instruction for native ClearType.

Microsoft ClearType applies `ROUND[]` to the 1/16-pixel virtual grid in the
ClearType direction.  As with the rounded point-positioning instructions,
approximate this in v40 by leaving the result unrounded during native
ClearType horizontal execution.

This fixes horizontal positioning like those performed by 'Malgun Gothic's
composite glyph programs.  In particular, it corrects diacritic placement in
glyphs such as 'Ÿ' and 'ü' and produces small improvements in several other
accented glyphs.

Other rendering modes and directions retain the existing `ROUND[]` behavior.
[ttvarc] Fix leak on malformed variation indices.
Reported as
  https://issues.oss-fuzz.com/issues/554721572

Near-orthogonal freedom and projection vectors can produce huge
movements, which FreeType soppresses. What is near-orthogonal is
not defined in teh specifications.  The empirical limit is tuned
to avoid the rendering artifacts in Palatino. Fixes #999.

Thanks to Werner and Infinality for the analysis of the problem.
[truetype] Improve native ClearType horizontal point hinting.

FreeType's v40 interpreter normally approximates ClearType's increased
horizontal resolution by suppressing X-axis instruction effects in
backward-compatible mode.  Fonts can disable those compatibility
restrictions with INSTCTRL selector 3 and request native ClearType
execution.

In native mode, however, rounded point-positioning instructions currently
use the normal pixel grid.  Microsoft ClearType instead uses a virtual grid
with 16 positions per pixel in the ClearType direction.  Explicitly
implementing this finer grid is unnecessary for v40: leaving the affected
native horizontal distances unrounded gives visually equivalent results in
the tested fonts while keeping the implementation considerably simpler.

Preserve native horizontal point movements, but suppress rounding for the
rounded forms of MDAP, MIAP, MDRP, and MIRP when both the projection and
freedom vectors are horizontal.

Apply the related native ClearType graphics-state adjustments documented by
Microsoft: reduce CVT cut-in to 1/16 and minimum distance to 1/2 in the
ClearType direction.

These changes correct distorted horizontal geometry in the fonts 'Corbel'
and 'Malgun Gothic', and 'Constantia' while retaining the X movements
required by 'SimSun'.  The minimum-distance adjustment also corrects overly
heavy diagonal strokes in 'Malgun Gothic M' and 'N' around 16–17 ppem.  The
CVT cut-in adjustment produces smaller but visible differences, for example
in 'Malgun Gothic V'.

Monochrome rendering, tricky fonts, vertical execution, and pre-program
rounding retain their existing behavior.

Fixes issue #1454.
[truetype] Honor ClearType 'gasp' smoothing and grid-fit policy.

FreeType currently reports symmetric smoothing through GETINFO bit 18
without distinguishing ClearType symmetric smoothing from symmetric grid
fitting.

Resolve these two properties independently.  For version-1 'gasp' tables,
use `FT_GASP_SYMMETRIC_SMOOTHING` and `FT_GASP_SYMMETRIC_GRIDFIT` for their
respective purposes.

For hinted fonts without an applicable version-1 ClearType policy, use the
DirectWrite-style fallback of asymmetric NATURAL smoothing through 20 ppem
and NATURAL_SYMMETRIC above 20 ppem.  Fonts without TrueType instructions
remain symmetric.

Use the resolved smoothing state for GETINFO bit 18 and the resolved
grid-fit state when deciding whether native v40 LCD hinting is enabled.
Legacy DO_GRIDFIT and DO_GRAY flags are not treated as ClearType
symmetric-smoothing controls.

A TupleValues "zeros" run decodes to zero values, matching HarfBuzz
(`TupleValues::decompile`, which memsets the run to 0) and fontTools; the
code instead wrote the running index (`indices[i] = i`), so a zeros run of
length two or more overrode the wrong axes.  No test font exercises it (they
use runs of length one, where 0 == i).

Also bound the run reads by the entry's own `tuple_limit` rather than the
whole-table `table_limit`, so a run straddling the entry end no longer
decodes bytes from adjacent entries (matches the counting pass in
`tt_varc_parse_component`).

Co-Authored-By: Claude Fable 5 <[email protected]>
[ttvarc] Factor out common code.

The 'VARC' table has four CFF2-style INDEX structures that were each parsed
by a separate hand-rolled copy; the missing offset-value validation that
caused the recent crashes had to be fixed in each copy independently.
Factor the parsing and bounds checking into a helper function and route all
four call sites through it.

Co-Authored-By: Claude Fable 5 <[email protected]>
[ttvarc] Validate 32-bit offsets before pointer arithmetic.

Several unchecked u32 offsets from the table were added to base
pointers before the result was range-checked, which is undefined
pointer arithmetic on a wild offset.  Validate the offset values
against the table extent first.

Co-Authored-By: Claude Fable 5 <[email protected]>

`total_deltas = region_count * num_deltas` is computed in 32 bits from two
attacker-controlled values.  A wrapped product under-sizes the `all_deltas`
allocation while the accumulation loop still indexes it with the full
`region_idx * num_deltas + k`, giving an out-of-bounds read.  Reject the
overflow.  Also free `accumulators` on the allocation-failure path that
previously leaked it.

Co-Authored-By: Claude Fable 5 <[email protected]>

The axis-value reading loop jumps to the `Fail` label on truncated data
without setting `error`, which still holds `FT_Err_Ok` from the last
successful read.  `Fail` then frees `axis_values` and returns success, so
the caller runs `tt_varc_apply_axis_deltas` on a component whose
`num_axis_values` is non-zero but `axis_values` is NULL, causing a NULL
dereference.  Force a non-zero error at the label.

Found by fuzzing the VARC code.
Co-Authored-By: Claude Fable 5 <[email protected]>
[ttvarc] Improve CFF2Index/TupleList offset validation.

The offset pairs read from the index structures were turned into data
pointers without checking the values against the end of the 'VARC'
table (or requiring the 1-based offsets to be >= 1), allowing reads
far past the table.  Make the offset-array bounds checks overflow-safe
with division instead of multiplication.

Reported as
  https://issues.oss-fuzz.com/issues/552370108
Co-Authored-By: Claude Fable 5 <[email protected]>
ttvarc.c: Avoid undefined left-shifts.
Reported as
  https://issues.oss-fuzz.com/issues/552117135
Reported as
  https://issues.oss-fuzz.com/issues/551265180
ttvarc.c: Minor formatting.
[sfnt] Correctly handle HVAR/VVAR advance values for named instances.
This bug was introduced with commit 5987a9f51d.

Fixes issue #1452, which comes with a detailed analysis and a patch provided
by an LLM.

[cff, truetype] Add VARC (Variable Composites) table support.

The Variable Composites ('VARC' table) technology allows font glyphs to
reuse variants of other glyph shapes as their components.  This is similar
to a feature that some font design tools already provide to designers, for
example, Glyphs calls this 'Smart Components'.  The 'VARC' table allows us
carrying that design all the into the font binary file.

This enables significant file size saving in CJK fonts, for example, up
to 90% savings for simple Hangul shapes.

The 'VARC' table is part of the ISO Open Font Format version 5, and is
implemented and enabled by default in HarfBuzz since 12.0.0 (Sep 2025) and
FontTools.

For test fonts, see
  https://github.com/notofonts/noto-cjk-varco/releases
Fixes #1450.

In Meson, the default for `b_ndebug` is `is-release`, which will enable it
when in release mode.  Additionally, in `dlg`, the default log level is
`warn` if `NDEBUG` is set or `trace` otherwise.  Because `FT_LOG` uses the
`trace` level always, all debug logging will be disabled if `b_ndebug` is
set (or in release mode).

Using `NDEBUG` is not documented anywhere to toggle debug logging.  We thus
define `DLG_LOG_LEVEL` so that `trace` level is always output by `dlg`.
FreeType's other (runtime or otherwise) configuration remains as it is to
toggle logging per-component.

Without this source file, the final library fails to link if you set
`FT_DEBUG_LOGGING` for the build.

CMakeLists.txt: Minor documentation improvement.
[cmake] Add an option to disable stream support.
Fixes issue #1448.
Fixes #1449.
Fixes #1447.
2026-07-20  Drage  <@timyychan>
Fixes #1446.
[sdf] Fix use-after-free in `sdf_generate_with_overlaps`.

When a glyph is rendered with `FT_RENDER_MODE_SDF` while the `sdf`
module's `overlaps` property is enabled, `sdf_generate_with_overlaps`
processes each contour on its own bitmap.  For every contour it calls
`sdf_generate_subdivision`, which in turn calls `split_sdf_shape`; the
latter frees the original contour (`sdf_contour_done` -> `FT_FREE`).
After the call returned, the loop still wrote through the freed pointer
with `contour->next = temp_contour` and then read it back via
`contour = contour->next` to advance -- a heap use-after-free (an
8-byte out-of-bounds write, CWE-416) reachable from a crafted font.

The value read back is already held in the `temp_contour` local, so the
restore write serves no purpose and is unsafe.  Drop it and advance the
loop with `temp_contour` directly, so the freed `contour` is never
dereferenced after the subdivision call.

Fixes #1445.
(cherry picked from commit efc07621de9c4b8dc2f11032e52ad86eddbbdbdf)
[base] Prevent signed overflow.
Reported as
  https://issues.oss-fuzz.com/issues/530322169
Revert "[autofit] Derive fill orientation without a separate outline pass."
This reverts commit 1f3ab3cdcef3433ec8d8a13446a45b8102929402.

That commit inlined a shoelace accumulator into the `af_glyph_hints_reload`
point-setup loop on the theory that the speedup came from sharing the
traversal with that loop ("loop fusion").  An A/B/C benchmark with the
intermediate variant -- inlining reverted but
`FT_Outline_Get_Orientation` itself rewritten as a single-pass 64-bit
shoelace -- shows the inline version and the standalone version are
statistically indistinguishable (both 2.854 us/op vs the original
2.914 us/op on `ftbench -b a -f 20`, Google Sans Flex).  The entire
win is algorithmic (dropping the bbox pre-pass and the per-iteration
shifts), not from sharing the loop.

With the previous commit moving that win into `FT_Outline_Get_Orientation`
itself, the inline copy in autofit is redundant and worth removing:
the standalone call is the same speed, the public API benefits every
caller, and `af_glyph_hints_reload` keeps its single-purpose loop.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
[base] Drop the bbox pre-pass from `FT_Outline_Get_Orientation`.

The function walked the outline twice: once via `FT_Outline_Get_CBox`
to pick coordinate shifts that keep the signed-area accumulator inside
32 bits, then again to actually accumulate the shoelace.  On platforms
with native 64-bit arithmetic the bbox pass and the per-iteration
shifts are unnecessary -- a 64-bit accumulator absorbs the area of any
sane glyph in a single pass without overflow.

Add an `#ifdef FT_INT64` fast path that does exactly that, and keep
the existing two-pass shifted variant verbatim as the 32-bit
fallback.  Measured ~2% faster on the autohint load benchmark
(`ftbench -b a -f 20`, Google Sans Flex: 2.914 -> 2.854 us/op);
benefits any caller, not just autofit.

The fast path drops the explicit `xMin==xMax`/`yMin==yMax` collapse
check -- the shoelace returns area 0 for such degenerate contours
anyway, so the final sign test reports `FT_ORIENTATION_NONE` without
help.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
[truetype] Fix GS leaks when prep is missing.
Otherwise, GS leaks from the last glyf program. Fixes #1443.
Some OCR fonts attempt to jam handwritten signatures into a glyph.
[autofit] Derive fill orientation without a separate outline pass.

`af_glyph_hints_reload` called `FT_Outline_Get_Orientation` once per
glyph solely to choose the major-direction sign.  That function walks
all points twice -- a bounding-box pass to pick overflow shifts, then a
signed-area pass -- even though the very next loop in `reload` already
visits every point and computes each edge vector.

Accumulate the contour signed area (shoelace) in that existing loop and
set the direction from its sign afterwards, dropping the separate call.
A 64-bit accumulator replaces the bounding-box-based coordinate shift
that `FT_Outline_Get_Orientation` used to keep the area from
overflowing.

Output is bit-identical: force-autohinted outlines of all glyphs match
across several sizes and weights.  ~3.5% faster on the autohint load
benchmark (`ftbench -b a -f 20`, Google Sans Flex: 8.46 -> 8.17 us/op).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
[truetype] Hoist the gvar tuple-header bounds check out of the loop. (5/5)

The per-tuple `4 > stream->limit - p` check in the tuple-variation loop
of `TT_Vary_Apply_Glyph_Deltas` ran once for every tuple, even though
the headers are walked linearly through a cursor whose extent is known
up front.

Check the four-byte minimum of all tuple headers once, before the loop,
so the common path no longer tests bounds per tuple.  This stays safe:
`p` only ever advances over the headers (active tuples read their data
through a separate cursor) and `stream->limit` is constant within the
frame, which maintains the invariant that at least `4 * (tupleCount - i)`
bytes remain at the start of tuple `i`.  The embedded and intermediate
branches consume more than that four-byte minimum, so they re-check the
surplus against the remaining tuples' reserve, preserving the invariant.
Output is bit-identical; ~6% faster (1.39 -> 1.30 ms) on the
draw-all-glyphs benchmark (Google Sans Flex, wght=500).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
[truetype] Add a fast path to the gvar tuple loop. (4/5)

Now that the per-glyph scratch buffers are pooled, the time
`TT_Vary_Apply_Glyph_Deltas` spends iterating tuple-variation headers
stands out.  Most of a glyph's tuples are inactive for the current
instance, yet every header was dispatched on its flags before the
cached shared-tuple scalar was consulted.

Reorder the loop so the cache is consulted with a single range test
right after the tuple index is read: a cached scalar of zero continues
to the next tuple immediately, and a cached non-zero scalar is applied
without recomputing the factor.  The scalars stay valid while glyphs
are loaded, so almost every shared tuple hits the cache.  Output is
bit-identical; ~8% faster (1.51 -> 1.39 ms) on the draw-all-glyphs
benchmark (Google Sans Flex, wght=500).

The test
  ( tupleIndex & ~GX_TI_PRIVATE_POINT_NUMBERS ) < blend->tuplecount

depends on the embedded (0x8000), intermediate (0x4000), and reserved
(0x1000) tuple flags all pushing the masked value to at least 0x1000,
which holds only while `blend->tuplecount` stays within the 12-bit
tuple-index range; clamp it at load time.  Out-of-range indices
therefore no longer reach the shared-tuple branch, so also restore the
bounds check guarding `blend->tuplecoords`.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
[truetype] Cache item-variation-store region scalars. (3/5)

`tt_var_get_item_delta` (used, e.g., for 'HVAR' advance adjustment, called
once per glyph during glyph loading) recomputed `tt_calculate_scalar`
for every region on every call, although the result depends only on the
normalized coordinates -- which stay constant while glyphs are loaded.

Cache the per-region scalars in the item variation store and recompute
them only when the coordinates change, detected by comparing against a
stored snapshot.  The snapshot check also transparently handles the
temporary coordinate swap performed during 'avar2' processing.  Output
(outlines and advances) is bit-identical; ~4% faster (1.58 -> 1.51 ms).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
[truetype] Reuse scratch buffers for gvar point-number lists too. (2/5)

Follow-up to the previous commit: the packed point-number lists read by
`ft_var_readpackedpoints' were still heap-allocated -- the shared list
once per glyph and each private list per tuple.  Carve them from the
same per-face scratch pool instead.

This requires moving the pool setup ahead of the shared-point-number
read (the pool now provides that buffer), so the working pool is laid
out before any point list is parsed.  As with the delta arrays, a list
larger than the glyph's point count falls back to a heap allocation.

Beyond saving the allocations themselves, reusing fixed buffer
addresses across glyphs keeps the working set warm in cache, which is
where most of the gain comes from.  Output is bit-identical; a further
~10% on the draw-all-glyphs benchmark (1.74 -> 1.56 ms), ~17% versus
the original.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
[truetype] Reuse scratch buffers in gvar glyph delta application. (1/5)

This change starts a series of commits that, if combined, speed up loading
of unhinted outlines at wght=500 from the 'GoogleSansFlex' monster-font by
30%.

Drawing glyphs from a variable font spends a large fraction of its time
in the allocator: `TT_Vary_Apply_Glyph_Deltas` allocated a working pool
once per glyph, and `ft_var_readpackeddeltas` allocated two delta arrays
per active tuple.  On a draw-all-glyphs benchmark (Google Sans Flex,
wght=500) these accounted for ~9% of total time.

Re-use buffers instead: keep the working pool on the face (grown on
demand) and carve the per-tuple delta arrays out of it, falling back to
a heap allocation only when a tuple needs more entries than the glyph
has points.  Output is bit-identical; ~7% faster (1.89 -> 1.76 ms).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

Meson supports searching both `pkg-config` and `CMake` for dependencies,
however, 'libpng' uses a different name between the two ('libpng' and 'PNG',
respectively).

Specify both package names for 'libpng'.

Version 0.60.0 was released in October 2021; we need this for the next
commit.

[CMake] Fix shared library versioning on OpenBSD and NetBSD.
Fixes #1440.
Fixes issue #1439.
Revert to signed span positioning.

In the context of FT_Outline_Render, the outline can be placed
arbitrarily and the resulting spans should be signed. This partially
reverts ef04e4eb2056 and fixes #1410.  However, for internal use,
when outlines are placed in the first quadrant, we still can interpret
positions as unsigned.

Fixes #1436.
[hvf] Fix macro usage and metrics calculations.
[smooth, raster] Fix signedness warning.
[raster] Dynamic pool allocation.

Use pool allocation strategy similar to that of the smooth rasterizer.
This is beneficial at sizes larger than 100 ppem.

Reported in
  https://issues.oss-fuzz.com/issues/510113351

.gitlab-ci.yml: Update Windows pipeline.
[smooth] Dynamic pool allocation.

The fixed pool allocation on stack is very fast and works very well
for rendering glyphs smaller than 40 pixels. Larger glyphs have to be
split and rendered piecewise, which is slower.  This commit introduces
dynamic pool allocation for larger glyphs.  Complex large glyphs are
now rendered about 2x faster.

Fixes issue #1434.
Fixes #1433.
Fixes #1432.
Fixes #1431.
Fixes #1430.
Fixes #1429.
Fixes #1428.
Fixes #1413.

Now only *scalable* COLRv0 layers can be rendered with FT_LOAD_COLOR,
in accordance with Chromium. Fixes #1425, also see !424.

[truetype/GX] Fix signed overflow.
Fixes #1423.
[truetype] Reduce zone copying.
[truetype] Simplify shift conditions.
Update all callers.
[truetype] Fix SHZ according to specifications.

SHZ must shift the zone specified by its arguments. Previously,
it was shifting zp2 instead.

Fixes
    https://issues.oss-fuzz.com/issues/505900175

Fixes #1419 and #1420, as well as
    https://issues.oss-fuzz.com/issues/499455833

Fixes #1421.
[build] Add a Plan 9 port.
Problem reported as
  https://issues.oss-fuzz.com/issues/505058300
This helps Plan 9 compilation.
Fixes #1417, found by `cppcheck`.
Fixes #1417, found by `cppcheck`.
[pcf] Limit bitmap allocation and loading.
Loading huge bitmaps now requires selecting huge size, fixes #1411.
The bug is discussed in #1412, without security repercussions.
Fixes #1416.
[autofit] Prevent signed integer overflow.
Reported as
    https://issues.oss-fuzz.com/issues/499135336
[hvf] Correctly initialize driver if no HVF library is available.

Since this font driver is by default enabled in `modules.cfg` and its
availability controlled by `FT_CONFIG_OPTION_HVF`, we need to provide some
stubs so that HVF fonts can be correctly rejected if there is no HVF library
available.

Fixes issue #1409.
[autofit] Prevent signed integer overflow.
Reported as
  https://issues.oss-fuzz.com/issues/496105489
Update some VisualStudio project files to include HVF module.
(hvf): New option.
(FT_DISABLE_HVF): New option.
Support Hierarchical Variable Fonts (HVF) using Apple's 'libhvf' library.

The new 'hvf' module is a thin wrapper around 'libhvf' with the necessary
boilerplate stuff to integrate it into FreeType.  Note that this currently
works on macOS >= 15.4 and iOS >= 18.4 only.

Add flag `FT_CONFIG_OPTION_HVF`.

This flag is going to be used to conditionally compile support for Apple's
Hierarchical Variable Font (HVF) format.

Fixes #1408.
packages/x86-64-v3-poky-linux/freetype/freetype-dbg: PKGSIZE changed from 
2962192 to 3079224 (+4%)
packages/x86-64-v3-poky-linux/freetype/freetype-dbg: FILELIST: removed 
"/usr/lib/.debug/libfreetype.so.6.20.6", added 
"/usr/lib/.debug/libfreetype.so.6.20.7"
packages/x86-64-v3-poky-linux/freetype/freetype-dbg: PKGV changed from 2.14.3 
[default] to 2.15.0 [default]
packages/x86-64-v3-poky-linux/freetype/freetype-dbg: PV changed from "2.14.3" 
to "2.15.0"
packages/x86-64-v3-poky-linux/freetype/freetype-dev: PKGSIZE changed from 
885114 to 887280 (+0%)
packages/x86-64-v3-poky-linux/freetype/freetype-dev: PKGV changed from 2.14.3 
[default] to 2.15.0 [default]
packages/x86-64-v3-poky-linux/freetype/freetype-dev: PV changed from "2.14.3" 
to "2.15.0"
packages/x86-64-v3-poky-linux/freetype/freetype-doc: PKGV changed from 2.14.3 
[default] to 2.15.0 [default]
packages/x86-64-v3-poky-linux/freetype/freetype-doc: PV changed from "2.14.3" 
to "2.15.0"
packages/x86-64-v3-poky-linux/freetype/freetype-locale: PKGV changed from 
2.14.3 [default] to 2.15.0 [default]
packages/x86-64-v3-poky-linux/freetype/freetype-locale: PV changed from 
"2.14.3" to "2.15.0"
packages/x86-64-v3-poky-linux/freetype/freetype-src: PKGSIZE changed from 
5679845 to 5936475 (+5%)
packages/x86-64-v3-poky-linux/freetype/freetype-src: FILELIST: directory 
renamed /usr/src/debug/freetype/2.14.3/src/winfonts -> 
/usr/src/debug/freetype/2.15.0/src/winfonts, directory renamed 
/usr/src/debug/freetype/2.14.3/src/smooth -> 
/usr/src/debug/freetype/2.15.0/src/smooth, directory renamed 
/usr/src/debug/freetype/2.14.3/src/sfnt -> 
/usr/src/debug/freetype/2.15.0/src/sfnt, directory renamed 
/usr/src/debug/freetype/2.14.3/src/svg -> 
/usr/src/debug/freetype/2.15.0/src/svg, directory renamed 
/usr/src/debug/freetype/2.14.3/src/gzip -> 
/usr/src/debug/freetype/2.15.0/src/gzip, directory renamed 
/usr/src/debug/freetype/2.14.3/src/raster -> 
/usr/src/debug/freetype/2.15.0/src/raster, directory renamed 
/usr/src/debug/freetype/2.14.3/src/pfr -> 
/usr/src/debug/freetype/2.15.0/src/pfr, directory renamed 
/usr/src/debug/freetype/2.14.3/src/type1 -> 
/usr/src/debug/freetype/2.15.0/src/type1, directory renamed 
/usr/src/debug/freetype/2.14.3/src/cache -> 
/usr/src/debug/freetype/2.15.0/src/cache, d
 irectory renamed /usr/src/debug/freetype/2.14.3/src/pshinter -> 
/usr/src/debug/freetype/2.15.0/src/pshinter, directory renamed 
/usr/src/debug/freetype/2.14.3/src/pcf -> 
/usr/src/debug/freetype/2.15.0/src/pcf, directory renamed 
/usr/src/debug/freetype/2.14.3 -> /usr/src/debug/freetype/2.15.0, directory 
renamed /usr/src/debug/freetype/2.14.3/src/psaux -> 
/usr/src/debug/freetype/2.15.0/src/psaux, directory renamed 
/usr/src/debug/freetype/2.14.3/src/type42 -> 
/usr/src/debug/freetype/2.15.0/src/type42, directory renamed 
/usr/src/debug/freetype/2.14.3/src/cid -> 
/usr/src/debug/freetype/2.15.0/src/cid, directory renamed 
/usr/src/debug/freetype/2.14.3/include/freetype/internal -> 
/usr/src/debug/freetype/2.15.0/include/freetype/internal, directory renamed 
/usr/src/debug/freetype/2.14.3/src/autofit -> 
/usr/src/debug/freetype/2.15.0/src/autofit, directory renamed 
/usr/src/debug/freetype/2.14.3/src/base -> 
/usr/src/debug/freetype/2.15.0/src/base, directory renamed 
/usr/src/debug/freetype/2.14.3
 /builds/unix -> /usr/src/debug/freetype/2.15.0/builds/unix, directory renamed 
/usr/src/debug/freetype/2.14.3/src/sdf -> 
/usr/src/debug/freetype/2.15.0/src/sdf, directory renamed 
/usr/src/debug/freetype/2.14.3/include/freetype/config -> 
/usr/src/debug/freetype/2.15.0/include/freetype/config, directory renamed 
/usr/src/debug/freetype/2.14.3/src/cff -> 
/usr/src/debug/freetype/2.15.0/src/cff, directory renamed 
/usr/src/debug/freetype/2.14.3/include/freetype -> 
/usr/src/debug/freetype/2.15.0/include/freetype, directory renamed 
/usr/src/debug/freetype/2.14.3/src/bdf -> 
/usr/src/debug/freetype/2.15.0/src/bdf, directory renamed 
/usr/src/debug/freetype/2.14.3/src/lzw -> 
/usr/src/debug/freetype/2.15.0/src/lzw, directory renamed 
/usr/src/debug/freetype/2.14.3/src/psnames -> 
/usr/src/debug/freetype/2.15.0/src/psnames, removed 
"/usr/src/debug/freetype/2.14.3/src/truetype/truetype.c 
/usr/src/debug/freetype/2.14.3/src/truetype/ttpload.c 
/usr/src/debug/freetype/2.14.3/src/truetype/ttgload.c /usr/sr
 c/debug/freetype/2.14.3/include/freetype/internal/services/svsfnt.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svkern.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svprop.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svwinfnt.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svpscmap.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svttcmap.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svttglyf.h 
/usr/src/debug/freetype/2.14.3/src/truetype/ttobjs.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svgldict.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svbdf.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svcid.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svpfr.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svpsinfo.h 
/usr/src/debug/freetype/2.14.3/src/truetyp
 e/ttobjs.c 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svmetric.h 
/usr/src/debug/freetype/2.14.3/src/truetype/ttinterp.c 
/usr/src/debug/freetype/2.14.3/src/truetype/ttinterp.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svtteng.h 
/usr/src/debug/freetype/2.14.3/src/truetype/ttgxvar.c 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svpostnm.h 
/usr/src/debug/freetype/2.14.3/src/truetype/ttgxvar.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svcfftl.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svgxval.h 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svotval.h 
/usr/src/debug/freetype/2.14.3/src/truetype/ttdriver.h 
/usr/src/debug/freetype/2.14.3/src/truetype/ttdriver.c 
/usr/src/debug/freetype/2.14.3/include/freetype/internal/services/svmm.h", 
added "/usr/src/debug/freetype/2.15.0/src/truetype/truetype.c 
/usr/src/debug/freetype/2.15.0/src/truetype/ttpload.c /usr/src/
 debug/freetype/2.15.0/src/truetype/ttgload.c 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svsfnt.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svvarc.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svkern.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svprop.h 
/usr/src/debug/freetype/2.15.0/src/hvf/hvfload.c 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svwinfnt.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svpscmap.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svttcmap.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svttglyf.h 
/usr/src/debug/freetype/2.15.0/src/hvf/hvfdrv.c 
/usr/src/debug/freetype/2.15.0/src/hvf/hvfobjs.c 
/usr/src/debug/freetype/2.15.0/src/truetype/ttobjs.h 
/usr/src/debug/freetype/2.15.0/src/truetype/ttvarc.c 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svgldict.h 
/usr/src/debug/
 freetype/2.15.0/src/hvf/hvfdrv.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svbdf.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svcid.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svpfr.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svpsinfo.h 
/usr/src/debug/freetype/2.15.0/src/truetype/ttobjs.c 
/usr/src/debug/freetype/2.15.0/src/hvf/hvf.c 
/usr/src/debug/freetype/2.15.0/src/truetype/ttvarc.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svmetric.h 
/usr/src/debug/freetype/2.15.0/src/truetype/ttinterp.c 
/usr/src/debug/freetype/2.15.0/src/truetype/ttinterp.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svtteng.h 
/usr/src/debug/freetype/2.15.0/src/truetype/ttgxvar.c 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svpostnm.h 
/usr/src/debug/freetype/2.15.0/src/truetype/ttgxvar.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/
 svcfftl.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svgxval.h 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svotval.h 
/usr/src/debug/freetype/2.15.0/src/truetype/ttdriver.h 
/usr/src/debug/freetype/2.15.0/src/truetype/ttdriver.c 
/usr/src/debug/freetype/2.15.0/include/freetype/internal/services/svmm.h 
/usr/src/debug/freetype/2.15.0/src/dlg/dlgwrap.c"
packages/x86-64-v3-poky-linux/freetype/freetype-src: PKGV changed from 2.14.3 
[default] to 2.15.0 [default]
packages/x86-64-v3-poky-linux/freetype/freetype-src: PV changed from "2.14.3" 
to "2.15.0"
packages/x86-64-v3-poky-linux/freetype/freetype-staticdev: PKGV changed from 
2.14.3 [default] to 2.15.0 [default]
packages/x86-64-v3-poky-linux/freetype/freetype-staticdev: PV changed from 
"2.14.3" to "2.15.0"
packages/x86-64-v3-poky-linux/freetype/freetype: PKGSIZE changed from 813053 to 
841725 (+4%)
packages/x86-64-v3-poky-linux/freetype/freetype: FILELIST: removed 
"/usr/lib/libfreetype.so.6.20.6", added "/usr/lib/libfreetype.so.6.20.7"
packages/x86-64-v3-poky-linux/freetype/freetype: PKGV changed from 2.14.3 
[default] to 2.15.0 [default]
packages/x86-64-v3-poky-linux/freetype/freetype: PV changed from "2.14.3" to 
"2.15.0"
packages/x86-64-v3-poky-linux/freetype: SRC_URI changed from 
"https://download.savannah.nongnu.org/releases/freetype/freetype-2.14.3.tar.xz"; 
to 
"https://download.savannah.nongnu.org/releases/freetype/freetype-2.15.0.tar.xz";
packages/x86-64-v3-poky-linux/freetype: PKGV changed from 2.14.3 [default] to 
2.15.0 [default]
packages/x86-64-v3-poky-linux/freetype: PV changed from "2.14.3" to "2.15.0"
Changes to packages/x86-64-v3-poky-linux/freetype (sysroot):
  /usr/lib/libfreetype.so.6 changed symlink target from libfreetype.so.6.20.6 
to libfreetype.so.6.20.7
  /usr/lib/libfreetype.so.6.20.6 moved to /usr/lib/libfreetype.so.6.20.7
Changes to packages/x86_64-linux/python3-installer-native (sysroot):
  /usr/lib/python3.14/site-packages/installer-1.1.0.dist-info moved to 
/usr/lib/python3.14/site-packages/installer-1.0.1.dist-info
packages/x86-64-v3-poky-linux/freetype/freetype: FILELIST: removed 
"/usr/lib/libfreetype.so.6.20.6", added "/usr/lib/libfreetype.so.6.20.7"
Changes to packages/x86-64-v3-poky-linux/freetype (sysroot):
  /usr/lib/libfreetype.so.6 changed symlink target from libfreetype.so.6.20.6 
to libfreetype.so.6.20.7
  /usr/lib/libfreetype.so.6.20.6 moved to /usr/lib/libfreetype.so.6.20.7
Changes to packages/x86_64-linux/python3-installer-native (sysroot):
  /usr/lib/python3.14/site-packages/installer-1.1.0.dist-info moved to 
/usr/lib/python3.14/site-packages/installer-1.0.1.dist-info

Attachment: 0001-freetype-upgrade-2.14.3-2.15.0.patch
Description: Binary data

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#247702): 
https://lists.openembedded.org/g/openembedded-core/message/247702
Mute This Topic: https://lists.openembedded.org/mt/121728961/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to