Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libraqm for openSUSE:Factory checked in at 2025-12-29 15:17:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libraqm (Old) and /work/SRC/openSUSE:Factory/.libraqm.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libraqm" Mon Dec 29 15:17:04 2025 rev:11 rq:1324617 version:0.10.3 Changes: -------- --- /work/SRC/openSUSE:Factory/libraqm/libraqm.changes 2024-09-30 15:38:35.608503887 +0200 +++ /work/SRC/openSUSE:Factory/.libraqm.new.1928/libraqm.changes 2025-12-29 15:18:05.142170063 +0100 @@ -1,0 +2,9 @@ +Sun Dec 28 23:31:41 UTC 2025 - Dirk Müller <[email protected]> + +- update to 0.10.3: + * Fix raqm_set_text_utf8/utf16 reading beyond len for + multibyte. + * Support building against SheenBidi 2.9. + * Fix deprecation warning with latest HarfBuzz. + +------------------------------------------------------------------- Old: ---- raqm-0.10.2.tar.xz New: ---- raqm-0.10.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libraqm.spec ++++++ --- /var/tmp/diff_new_pack.x9cEIv/_old 2025-12-29 15:18:06.350219716 +0100 +++ /var/tmp/diff_new_pack.x9cEIv/_new 2025-12-29 15:18:06.350219716 +0100 @@ -1,7 +1,7 @@ # # spec file for package libraqm # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define sover 0 Name: libraqm -Version: 0.10.2 +Version: 0.10.3 Release: 0 Summary: Complex Textlayout Library License: MIT ++++++ raqm-0.10.2.tar.xz -> raqm-0.10.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raqm-0.10.2/.github/workflows/ci.yml new/raqm-0.10.3/.github/workflows/ci.yml --- old/raqm-0.10.2/.github/workflows/ci.yml 2024-09-22 15:19:53.000000000 +0200 +++ new/raqm-0.10.3/.github/workflows/ci.yml 2025-08-05 15:38:51.000000000 +0200 @@ -19,8 +19,8 @@ MATRIX_OS: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: '3.10' - name: Install Python Dependencies @@ -36,7 +36,7 @@ with: arch: x64 - name: Meson Setup - run: meson build $(test $MATRIX_OS = "ubuntu-latest" && echo "-Ddocs=true") + run: meson setup build $(test $MATRIX_OS = "ubuntu-latest" && echo "-Ddocs=true") - name: Build run: ninja -C build - name: Test @@ -51,15 +51,20 @@ strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest, macos-latest, windows-latest] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: '3.10' - name: Install Python Dependencies run: pip install --upgrade meson ninja + - name: MSVC Setup + if: matrix.os == 'windows-latest' + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x64 - name: Meson Setup run: meson -Dsheenbidi=true build - name: Build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raqm-0.10.2/COPYING new/raqm-0.10.3/COPYING --- old/raqm-0.10.2/COPYING 2024-09-22 15:19:53.000000000 +0200 +++ new/raqm-0.10.3/COPYING 2025-08-05 15:38:51.000000000 +0200 @@ -1,7 +1,7 @@ The MIT License (MIT) Copyright © 2015 Information Technology Authority (ITA) <[email protected]> -Copyright © 2016-2023 Khaled Hosny <[email protected]> +Copyright © 2016-2025 Khaled Hosny <[email protected]> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raqm-0.10.2/NEWS new/raqm-0.10.3/NEWS --- old/raqm-0.10.2/NEWS 2024-09-22 15:19:53.000000000 +0200 +++ new/raqm-0.10.3/NEWS 2025-08-05 15:38:51.000000000 +0200 @@ -1,3 +1,13 @@ +Overview of changes leading to 0.10.3 +Tuesday, August 5, 2025 +==================================== + +Fix raqm_set_text_utf8/utf16 reading beyond len for multibyte. + +Support building against SheenBidi 2.9. + +Fix deprecation warning with latest HarfBuzz. + Overview of changes leading to 0.10.2 Sunday, September 22, 2024 ==================================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raqm-0.10.2/meson.build new/raqm-0.10.3/meson.build --- old/raqm-0.10.2/meson.build 2024-09-22 15:19:53.000000000 +0200 +++ new/raqm-0.10.3/meson.build 2025-08-05 15:38:51.000000000 +0200 @@ -1,7 +1,7 @@ project( 'raqm', 'c', - version: '0.10.2', + version: '0.10.3', default_options: [ 'c_std=c99', 'cpp_std=c++11', @@ -78,6 +78,12 @@ 'sheenbidi', fallback: ['sheenbidi', 'sheenbidi_dep'], ) + if sheenbidi.version().version_compare('>= 2.9') + sheenbidi = declare_dependency( + compile_args: ['-DRAQM_SHEENBIDI_GT_2_9'], + dependencies: sheenbidi + ) + endif else fribidi = dependency( 'fribidi', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raqm-0.10.2/src/raqm.c new/raqm-0.10.3/src/raqm.c --- old/raqm-0.10.2/src/raqm.c 2024-09-22 15:19:53.000000000 +0200 +++ new/raqm-0.10.3/src/raqm.c 2025-08-05 15:38:51.000000000 +0200 @@ -30,7 +30,11 @@ #include <string.h> #ifdef RAQM_SHEENBIDI +#ifdef RAQM_SHEENBIDI_GT_2_9 +#include <SheenBidi/SheenBidi.h> +#else #include <SheenBidi.h> +#endif #else #include <fribidi.h> #endif @@ -542,34 +546,32 @@ return true; } -static void * -_raqm_get_utf8_codepoint (const void *str, +static const char * +_raqm_get_utf8_codepoint (const char *str, uint32_t *out_codepoint) { - const char *s = (const char *)str; - - if (0xf0 == (0xf8 & s[0])) + if (0xf0 == (0xf8 & str[0])) { - *out_codepoint = ((0x07 & s[0]) << 18) | ((0x3f & s[1]) << 12) | ((0x3f & s[2]) << 6) | (0x3f & s[3]); - s += 4; + *out_codepoint = ((0x07 & str[0]) << 18) | ((0x3f & str[1]) << 12) | ((0x3f & str[2]) << 6) | (0x3f & str[3]); + str += 4; } - else if (0xe0 == (0xf0 & s[0])) + else if (0xe0 == (0xf0 & str[0])) { - *out_codepoint = ((0x0f & s[0]) << 12) | ((0x3f & s[1]) << 6) | (0x3f & s[2]); - s += 3; + *out_codepoint = ((0x0f & str[0]) << 12) | ((0x3f & str[1]) << 6) | (0x3f & str[2]); + str += 3; } - else if (0xc0 == (0xe0 & s[0])) + else if (0xc0 == (0xe0 & str[0])) { - *out_codepoint = ((0x1f & s[0]) << 6) | (0x3f & s[1]); - s += 2; + *out_codepoint = ((0x1f & str[0]) << 6) | (0x3f & str[1]); + str += 2; } else { - *out_codepoint = s[0]; - s += 1; + *out_codepoint = str[0]; + str += 1; } - return (void *)s; + return str; } static size_t @@ -581,42 +583,41 @@ while ((*in_utf8 != '\0') && (in_len < len)) { - in_utf8 = _raqm_get_utf8_codepoint (in_utf8, out_utf32); + const char *out_utf8 = _raqm_get_utf8_codepoint (in_utf8, out_utf32); + in_len += out_utf8 - in_utf8; + in_utf8 = out_utf8; ++out_utf32; - ++in_len; } return (out_utf32 - unicode); } -static void * -_raqm_get_utf16_codepoint (const void *str, - uint32_t *out_codepoint) +static const uint16_t * +_raqm_get_utf16_codepoint (const uint16_t *str, + uint32_t *out_codepoint) { - const uint16_t *s = (const uint16_t *)str; - - if (s[0] >= 0xD800 && s[0] <= 0xDBFF) + if (str[0] >= 0xD800 && str[0] <= 0xDBFF) { - if (s[1] >= 0xDC00 && s[1] <= 0xDFFF) + if (str[1] >= 0xDC00 && str[1] <= 0xDFFF) { - uint32_t X = ((s[0] & ((1 << 6) -1)) << 10) | (s[1] & ((1 << 10) -1)); - uint32_t W = (s[0] >> 6) & ((1 << 5) - 1); + uint32_t X = ((str[0] & ((1 << 6) -1)) << 10) | (str[1] & ((1 << 10) -1)); + uint32_t W = (str[0] >> 6) & ((1 << 5) - 1); *out_codepoint = (W+1) << 16 | X; - s += 2; + str += 2; } else { /* A single high surrogate, this is an error. */ - *out_codepoint = s[0]; - s += 1; + *out_codepoint = str[0]; + str += 1; } } else { - *out_codepoint = s[0]; - s += 1; + *out_codepoint = str[0]; + str += 1; } - return (void *)s; + return str; } static size_t @@ -628,9 +629,10 @@ while ((*in_utf16 != '\0') && (in_len < len)) { - in_utf16 = _raqm_get_utf16_codepoint (in_utf16, out_utf32); + const uint16_t *out_utf16 = _raqm_get_utf16_codepoint (in_utf16, out_utf32); + in_len += (out_utf16 - in_utf16); + in_utf16 = out_utf16; ++out_utf32; - ++in_len; } return (out_utf32 - unicode); @@ -2163,6 +2165,10 @@ *y = vector.y; } +#if !HB_VERSION_ATLEAST (10, 4, 0) +# define hb_ft_font_get_ft_face hb_ft_font_get_face +#endif + static bool _raqm_shape (raqm_t *rq) { @@ -2195,7 +2201,7 @@ hb_glyph_position_t *pos; unsigned int len; - FT_Get_Transform (hb_ft_font_get_face (run->font), &matrix, NULL); + FT_Get_Transform (hb_ft_font_get_ft_face (run->font), &matrix, NULL); pos = hb_buffer_get_glyph_positions (run->buffer, &len); info = hb_buffer_get_glyph_infos (run->buffer, &len); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raqm-0.10.2/subprojects/freetype2.wrap new/raqm-0.10.3/subprojects/freetype2.wrap --- old/raqm-0.10.2/subprojects/freetype2.wrap 2024-09-22 15:19:53.000000000 +0200 +++ new/raqm-0.10.3/subprojects/freetype2.wrap 2025-08-05 15:38:51.000000000 +0200 @@ -1,4 +1,11 @@ -[wrap-git] -directory=freetype -url=https://gitlab.freedesktop.org/freetype/freetype.git -revision=VER-2-11-0 +[wrap-file] +directory = freetype-2.13.3 +source_url = https://download.savannah.gnu.org/releases/freetype/freetype-2.13.3.tar.xz +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/freetype2_2.13.3-1/freetype-2.13.3.tar.xz +source_filename = freetype-2.13.3.tar.xz +source_hash = 0550350666d427c74daeb85d5ac7bb353acba5f76956395995311a9c6f063289 +wrapdb_version = 2.13.3-1 + +[provide] +freetype2 = freetype_dep +freetype = freetype_dep diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raqm-0.10.2/subprojects/fribidi.wrap new/raqm-0.10.3/subprojects/fribidi.wrap --- old/raqm-0.10.2/subprojects/fribidi.wrap 2024-09-22 15:19:53.000000000 +0200 +++ new/raqm-0.10.3/subprojects/fribidi.wrap 2025-08-05 15:38:51.000000000 +0200 @@ -1,4 +1,10 @@ -[wrap-git] -directory=fribidi -url=https://github.com/fribidi/fribidi.git -revision=v1.0.10 +[wrap-file] +directory = fribidi-1.0.16 +source_url = https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz +source_filename = fribidi-1.0.16.tar.xz +source_hash = 1b1cde5b235d40479e91be2f0e88a309e3214c8ab470ec8a2744d82a5a9ea05c +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fribidi_1.0.16-1/fribidi-1.0.16.tar.xz +wrapdb_version = 1.0.16-1 + +[provide] +fribidi = libfribidi_dep diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raqm-0.10.2/subprojects/harfbuzz.wrap new/raqm-0.10.3/subprojects/harfbuzz.wrap --- old/raqm-0.10.2/subprojects/harfbuzz.wrap 2024-09-22 15:19:53.000000000 +0200 +++ new/raqm-0.10.3/subprojects/harfbuzz.wrap 2025-08-05 15:38:51.000000000 +0200 @@ -1,4 +1,10 @@ -[wrap-git] -directory=harfbuzz -url=https://github.com/harfbuzz/harfbuzz.git -revision=3.0.0 +[wrap-file] +directory = harfbuzz-11.2.1 +source_url = https://github.com/harfbuzz/harfbuzz/releases/download/11.2.1/harfbuzz-11.2.1.tar.xz +source_filename = harfbuzz-11.2.1.tar.xz +source_hash = 093714c8548a285094685f0bdc999e202d666b59eeb3df2ff921ab68b8336a49 +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/harfbuzz_11.2.1-1/harfbuzz-11.2.1.tar.xz +wrapdb_version = 11.2.1-1 + +[provide] +dependency_names = harfbuzz, harfbuzz-cairo, harfbuzz-gobject, harfbuzz-icu, harfbuzz-subset
