texlive[76125] Build/source/libs: harfbuzz 11.4.3
commits+kakuto at tug.org
commits+kakuto at tug.org
Sun Aug 24 00:02:51 CEST 2025
Revision: 76125
https://tug.org/svn/texlive?view=revision&revision=76125
Author: kakuto
Date: 2025-08-24 00:02:51 +0200 (Sun, 24 Aug 2025)
Log Message:
-----------
harfbuzz 11.4.3
Modified Paths:
--------------
trunk/Build/source/libs/README
trunk/Build/source/libs/harfbuzz/ChangeLog
trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog
trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes
trunk/Build/source/libs/harfbuzz/configure
trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
trunk/Build/source/libs/harfbuzz/harfbuzz-src/meson.build
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-harfrust.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math-table.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-vector.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/rust/Cargo.toml
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/rust/shape.rs
trunk/Build/source/libs/harfbuzz/version.ac
Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/README 2025-08-23 22:02:51 UTC (rev 76125)
@@ -28,7 +28,7 @@
https://sourceforge.net/projects/silgraphite/files/graphite2/
(requires C++11)
-harfbuzz 11.4.2 - checked 21aug25
+harfbuzz 11.4.3 - checked 24aug25
https://github.com/harfbuzz/harfbuzz/releases/latest
icu 76.1 - checked 27oct24 (requires C++17, e.g., g++13)
Modified: trunk/Build/source/libs/harfbuzz/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/ChangeLog 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/ChangeLog 2025-08-23 22:02:51 UTC (rev 76125)
@@ -1,3 +1,8 @@
+2025-08-24 Akira Kakuto <kakuto at jcom.zaq.ne.jp>
+
+ Import harfbuzz-11.4.3.
+ * version.ac: Adjusted.
+
2025-08-21 Akira Kakuto <kakuto at jcom.zaq.ne.jp>
Import harfbuzz-11.4.2.
Modified: trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog 2025-08-23 22:02:51 UTC (rev 76125)
@@ -1,3 +1,8 @@
+2025-08-24 Akira Kakuto <kakuto at jcom.zaq.ne.jp>
+
+ Imported harfbuzz-11.4.3 source tree from:
+ https://github.com/harfbuzz/harfbuzz/releases/download/11.4.3/
+
2025-08-21 Akira Kakuto <kakuto at jcom.zaq.ne.jp>
Imported harfbuzz-11.4.2 source tree from:
Modified: trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes 2025-08-23 22:02:51 UTC (rev 76125)
@@ -1,5 +1,5 @@
-Changes applied to the harfbuzz-11.4.2/ tree as obtained from:
- https://github.com/harfbuzz/harfbuzz/releases/download/11.4.2/
+Changes applied to the harfbuzz-11.4.3/ tree as obtained from:
+ https://github.com/harfbuzz/harfbuzz/releases/download/11.4.3/
Removed:
.clang-format
Modified: trunk/Build/source/libs/harfbuzz/configure
===================================================================
--- trunk/Build/source/libs/harfbuzz/configure 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/configure 2025-08-23 22:02:51 UTC (rev 76125)
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for harfbuzz (TeX Live) 11.4.2.
+# Generated by GNU Autoconf 2.72 for harfbuzz (TeX Live) 11.4.3.
#
# Report bugs to <tex-k at tug.org>.
#
@@ -604,8 +604,8 @@
# Identity of this package.
PACKAGE_NAME='harfbuzz (TeX Live)'
PACKAGE_TARNAME='harfbuzz--tex-live-'
-PACKAGE_VERSION='11.4.2'
-PACKAGE_STRING='harfbuzz (TeX Live) 11.4.2'
+PACKAGE_VERSION='11.4.3'
+PACKAGE_STRING='harfbuzz (TeX Live) 11.4.3'
PACKAGE_BUGREPORT='tex-k at tug.org'
PACKAGE_URL=''
@@ -1341,7 +1341,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-'configure' configures harfbuzz (TeX Live) 11.4.2 to adapt to many kinds of systems.
+'configure' configures harfbuzz (TeX Live) 11.4.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1413,7 +1413,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of harfbuzz (TeX Live) 11.4.2:";;
+ short | recursive ) echo "Configuration of harfbuzz (TeX Live) 11.4.3:";;
esac
cat <<\_ACEOF
@@ -1518,7 +1518,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-harfbuzz (TeX Live) configure 11.4.2
+harfbuzz (TeX Live) configure 11.4.3
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2075,7 +2075,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by harfbuzz (TeX Live) $as_me 11.4.2, which was
+It was created by harfbuzz (TeX Live) $as_me 11.4.3, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
@@ -5259,7 +5259,7 @@
# Define the identity of the package.
PACKAGE='harfbuzz--tex-live-'
- VERSION='11.4.2'
+ VERSION='11.4.3'
# Some tools Automake needs.
@@ -5573,8 +5573,8 @@
HB_VERSION_MAJOR=11
HB_VERSION_MINOR=4
-HB_VERSION_MICRO=2
-HB_VERSION=11.4.2
+HB_VERSION_MICRO=3
+HB_VERSION=11.4.3
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -9426,7 +9426,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by harfbuzz (TeX Live) $as_me 11.4.2, which was
+This file was extended by harfbuzz (TeX Live) $as_me 11.4.3, which was
generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -9494,7 +9494,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-harfbuzz (TeX Live) config.status 11.4.2
+harfbuzz (TeX Live) config.status 11.4.3
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS 2025-08-23 22:02:51 UTC (rev 76125)
@@ -1,3 +1,13 @@
+Overview of changes leading to 11.4.3
+Saturday, August 23, 2025
+====================================
+- Make shaping fail much faster for certain malformed fonts (e.g., those that
+ trigger infinite recursion).
+- Fix undefined behaviour introduced in 11.4.2.
+- Fix detection of the “Cambria Math” font when fonts are scaled, so the
+ workaround for the bad `MATH` table constant is applied.
+
+
Overview of changes leading to 11.4.2
Thursday, August 21, 2025
====================================
@@ -15,6 +25,7 @@
====================================
- Fix clang compiler warnings.
+
Overview of changes leading to 11.4.0
Wednesday, August 13, 2025
====================================
@@ -28,11 +39,13 @@
performance evaluation and we do NOT recommend using it for any
other purposes.
+
Overview of changes leading to 11.3.3
Sunday, July 26, 2025
====================================
- Fix but in vertical shaping of fonts without the vmtx table.
+
Overview of changes leading to 11.3.2
Sunday, July 20, 2025
====================================
@@ -39,6 +52,7 @@
- Fix build with non-compliant C++11 compilers that don't recognize
the "and" keyword.
+
Overview of changes leading to 11.3.1
Sunday, July 20, 2025
====================================
@@ -45,6 +59,7 @@
- Fix crasher in the glyph_v_origin function introduced in
11.3.0.
+
Overview of changes leading to 11.3.0
Sunday, July 20, 2025
====================================
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/meson.build
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/meson.build 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/meson.build 2025-08-23 22:02:51 UTC (rev 76125)
@@ -1,6 +1,6 @@
project('harfbuzz', ['c', 'cpp'],
meson_version: '>= 0.60.0',
- version: '11.4.2',
+ version: '11.4.3',
default_options: [
'cpp_eh=none', # Just to support msvc, we are passing -fno-exceptions also anyway
# 'cpp_rtti=false', # Do NOT enable, wraps inherit it and ICU needs RTTI
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc 2025-08-23 22:02:51 UTC (rev 76125)
@@ -227,6 +227,13 @@
assert (have_output);
if (unlikely (!ensure (len + count))) return false;
+ max_ops -= len - idx;
+ if (unlikely (max_ops < 0))
+ {
+ successful = false;
+ return false;
+ }
+
memmove (info + idx + count, info + idx, (len - idx) * sizeof (info[0]));
if (idx + count > len)
{
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-harfrust.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-harfrust.cc 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-harfrust.cc 2025-08-23 22:02:51 UTC (rev 76125)
@@ -28,7 +28,9 @@
#include "hb-shaper-impl.hh"
+#include "hb-utf.hh"
+
/*
* buffer
*/
@@ -111,6 +113,10 @@
const void *rs_buffer,
hb_font_t *font,
hb_buffer_t *buffer,
+ const uint8_t *pre_context,
+ uint32_t pre_context_len,
+ const uint8_t *post_context,
+ uint32_t post_context_len,
const hb_feature_t *features,
unsigned int num_features);
@@ -170,6 +176,18 @@
}
}
+ // Encode buffer context as UTF-8, so that HarfRust can use it.
+ constexpr int CONTEXT_BYTE_SIZE = 4 * hb_buffer_t::CONTEXT_LENGTH;
+ uint8_t context[2][CONTEXT_BYTE_SIZE];
+ unsigned context_len[2] = { 0, 0 };
+ for (unsigned i = 0; i < 2; i++)
+ for (unsigned j = 0; j < buffer->context_len[i]; j++)
+ {
+ context_len[i] = hb_utf8_t::encode (context[i] + context_len[i],
+ context[i] + CONTEXT_BYTE_SIZE,
+ buffer->context[i][j]) - context[i];
+ }
+
return _hb_harfrust_shape_rs (font_data,
face_data,
hr_shape_plan,
@@ -176,6 +194,10 @@
hr_buffer,
font,
buffer,
+ context[0],
+ context_len[0],
+ context[1],
+ context_len[1],
features,
num_features);
}
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math-table.hh 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math-table.hh 2025-08-23 22:02:51 UTC (rev 76125)
@@ -69,6 +69,8 @@
struct MathConstants
{
+ friend struct MATH;
+
MathConstants* copy (hb_serialize_context_t *c) const
{
TRACE_SERIALIZE (this);
@@ -1109,8 +1111,8 @@
{
#ifndef HB_NO_MATH
switch HB_CODEPOINT_ENCODE3 (font->face->table.MATH.get_blob ()->length,
- get_constant (HB_OT_MATH_CONSTANT_DISPLAY_OPERATOR_MIN_HEIGHT, font),
- get_constant (HB_OT_MATH_CONSTANT_DELIMITED_SUB_FORMULA_MIN_HEIGHT, font))
+ (this+mathConstants).minHeight[1], // displayOperatorMinHeight
+ (this+mathConstants).minHeight[0]) // delimitedSubFormulaMinHeight
{
/* sha1sum:ab4a4fe054d23061f3c039493d6f665cfda2ecf5 cambria.ttc
* sha1sum:086855301bff644f9d8827b88491fcf73a6d4cb9 cambria.ttc
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-vector.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-vector.hh 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-vector.hh 2025-08-23 22:02:51 UTC (rev 76125)
@@ -84,7 +84,10 @@
}
~hb_vector_t () { fini (); }
- template <unsigned n>
+ template <unsigned n,
+ typename T = Type,
+ hb_enable_if (hb_is_trivially_constructible(T) &&
+ hb_is_trivially_destructible(T))>
void
set_storage (Type (&array)[n])
{
@@ -91,6 +94,9 @@
set_storage (array, n);
}
+ template <typename T = Type,
+ hb_enable_if (hb_is_trivially_constructible(T) &&
+ hb_is_trivially_destructible(T))>
void
set_storage (Type *array, unsigned n)
{
@@ -160,9 +166,11 @@
/* We allow a hack to make the vector point to a foreign array
* by the user. In that case length/arrayZ are non-zero but
* allocated is zero. Don't free anything. */
- shrink_vector (0);
if (is_owned ())
+ {
+ shrink_vector (0);
hb_free (arrayZ);
+ }
init ();
}
@@ -441,12 +449,12 @@
shrink_vector (unsigned size)
{
assert (size <= length);
- if (!std::is_trivially_destructible<Type>::value)
+ if (!hb_is_trivially_destructible(Type))
{
unsigned count = length - size;
- Type *p = arrayZ + length - 1;
+ Type *p = arrayZ + length;
while (count--)
- p--->~Type ();
+ (--p)->~Type ();
}
length = size;
}
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/rust/Cargo.toml
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/rust/Cargo.toml 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/rust/Cargo.toml 2025-08-23 22:02:51 UTC (rev 76125)
@@ -1,7 +1,7 @@
[package]
name = "harfbuzz_rust"
edition = "2021"
-rust-version = "1.75.0"
+rust-version = "1.87.0"
[dependencies]
skrifa = { version = "0.*", optional = true }
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/rust/shape.rs
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/rust/shape.rs 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/rust/shape.rs 2025-08-23 22:02:51 UTC (rev 76125)
@@ -162,6 +162,10 @@
hr_buffer_box: *const c_void,
font: *mut hb_font_t,
buffer: *mut hb_buffer_t,
+ pre_context: *const u8,
+ pre_context_length: u32,
+ post_context: *const u8,
+ post_context_length: u32,
features: *const hb_feature_t,
num_features: u32,
) -> hb_bool_t {
@@ -235,6 +239,11 @@
hr_buffer.add(char::from_u32_unchecked(unicode), cluster);
}
+ let pre_context = std::slice::from_raw_parts(pre_context, pre_context_length as usize);
+ hr_buffer.set_pre_context(str::from_utf8(pre_context).unwrap());
+ let post_context = std::slice::from_raw_parts(post_context, post_context_length as usize);
+ hr_buffer.set_post_context(str::from_utf8(post_context).unwrap());
+
let ptem = hb_font_get_ptem(font);
let ptem = if ptem > 0.0 { Some(ptem) } else { None };
Modified: trunk/Build/source/libs/harfbuzz/version.ac
===================================================================
--- trunk/Build/source/libs/harfbuzz/version.ac 2025-08-22 23:42:33 UTC (rev 76124)
+++ trunk/Build/source/libs/harfbuzz/version.ac 2025-08-23 22:02:51 UTC (rev 76125)
@@ -8,4 +8,4 @@
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current harfbuzz version
-m4_define([harfbuzz_version], [11.4.2])
+m4_define([harfbuzz_version], [11.4.3])
More information about the tex-live-commits
mailing list.