Bug#971546: pango1.0: Thai word-break detection differs from upstream: U+002D HYPHEN-MINUS not a word end

Simon McVittie smcv at debian.org
Thu Oct 1 16:45:42 BST 2020


Source: pango1.0
Version: 1.46.2-1
Severity: normal
Tags: upstream help
Forwarded: https://gitlab.gnome.org/GNOME/pango/-/issues/507
X-Debbugs-Cc: libthai at packages.debian.org, fribidi at packages.debian.org

One of Pango's tests is currently skipped on buildds, but is run if you
build locally and you happen to have a Thai font installed (I used
fonts-noto-core). I'm going to set it up to be run in future uploads,
probably to experimental first, because missing test coverage means we
can never know whether things have regressed.

tests/test-break.c reads tests/breaks/four.break (attached), does some
analysis on it, produces output, and asserts that the output matches
tests/breaks/four.expected (also attached). On Fedora (which is used
for upstream's CI), this succeeds. On Debian, it fails, producing
four.actual (also attached) instead (the output is actually to a temp
file and presented in the log as a diff).

The failure mode seems to be: wherever the Thai input contains "-"
(U+002D HYPHEN-MINUS), on Fedora and in the expected output it's
considered to be a word boundary, a word start, and a word end ("bse"
in the line starting "Words:").  On Debian, it's considered to be
a word boundary and a word start, but *not* a word end ("bs" in the
"Words:" line).

The other information (mandatory breaks, line breaks, char breaks,
expandable spaces, other whitespace, sentence boundary/start/end points)
all seems to be as expected.

Does anyone know what is going on here? libthai and fribidi maintainers
Cc'd in the hope that they know something relevant.

For now I'm going to patch the test so that it will accept either the
expected output, or the output we get on Debian right now, but no
other possibilities (to make sure we don't regress further).

As described on the upstream bug, I tried installing a temporary VM
and upgrading/downgrading various components like libthai and GLib so
their versions were as close as possible to the Fedora image that
upstream use for CI, but I still got the same results. I also checked
whether we and/or Fedora patch libthai, but it seems we don't.

    smcv
-------------- next part --------------
# For Thai language.
ภาษาไทย หรือ ภาษาไทยกลาง เป็นภาษาราชการและภาษาประจำชาติของประเทศไทย ภาษาไทยเป็นภาษาในกลุ่มภาษาไทซึ่งเป็นกลุ่มย่อยของตระกูลภาษาขร้า-ไท สันนิษฐานว่า ภาษาในตระกูลนี้มีถิ่นกำเนิดจากทางตอนใต้ของประเทศจีน และนักภาษาศาสตร์บางส่วนเสนอว่า ภาษาไทยน่าจะมีความเชื่อมโยงกับตระกูลภาษาออสโตร-เอเชียติก ตระกูลภาษาออสโตรนีเซียน และตระกูลภาษาจีน-ทิเบต
-------------- next part --------------
Text:         ภ า ษ า   ไ ท ย  [ ]   ห รื อ  [ ]   ภ า ษ า   ไ ท ย   ก ล า ง  [ ]   เ ป็ น   ภ า ษ า   ร า ช ก า ร   แ ล ะ   ภ า ษ า   ป ร ะ จ ำ   ช า ติ   ข อ ง   ป ร ะ เ ท ศ   ไ ท ย  [ ]   ภ า ษ า   ไ ท ย   เ ป็ น   ภ า ษ า   ใ น   ก ลุ่ ม   ภ า ษ า   ไ ท   ซึ่ ง   เ ป็ น   ก ลุ่ ม   ย่ อ ย   ข อ ง   ต ร ะ กู ล   ภ า ษ า   ข ร้ า  -   ไ ท  [ ]   สั น นิ ษ ฐ า น   ว่ า  [ ]   ภ า ษ า   ใ น   ต ร ะ กู ล   นี้   มี   ถิ่ น   ก ำ เ นิ ด   จ า ก   ท า ง   ต อ น   ใ ต้   ข อ ง   ป ร ะ เ ท ศ   จี น  [ ]   แ ล ะ   นั ก   ภ า ษ า ศ า ส ต ร์   บ า ง   ส่ ว น   เ ส น อ   ว่ า  [ ]   ภ า ษ า   ไ ท ย   น่ า   จ ะ   มี   ค ว า ม   เ ชื่ อ ม   โ ย ง   กั บ   ต ร ะ กู ล   ภ า ษ า   อ อ   ส โ ต ร  -   เ อ เ ชี ย   ติ ก  [ ]   ต ร ะ กู ล   ภ า ษ า   อ อ   ส โ ต ร นี เ ซี ย น  [ ]   แ ล ะ   ต ร ะ กู ล   ภ า ษ า   จี น  -   ทิ เ บ ต  [0x0a] 
Breaks:     c  c c c lc  c c c    lc  c  c c    lc  c c c lc  c c lc  c c c c    lc  c  c lc  c c c lc  c c c c c lc  c c lc  c c c lc  c c c c lc  c c  lc  c c lc  c c c c c lc  c c c    lc  c c c lc  c c lc  c  c lc  c c c lc  c lc  c   c lc  c c c lc  c lc    c lc  c  c lc  c   c lc   c c lc  c c lc  c c c  c lc  c c c lc  c  c c  lc  c c    lc   c c  c c c c lc   c c    lc  c c c lc  c lc  c c c  c lc    lc   lc    c lc  c c c  c lc  c c lc  c c lc  c c lc  c  lc  c c lc  c c c c c lc   c c    lc  c c lc   c lc  c c c c c c c c  lc  c c lc   c c lc  c c c lc   c c    lc  c c c lc  c c lc   c lc  c lc   lc  c c c lc  c   c c lc  c c lc   c lc  c c c  c lc  c c c lc  c lc  c c c c  lc  c c c  c lc   c c    lc  c c c  c lc  c c c lc  c lc  c c c c  c c  c c c    lc  c c lc  c c c  c lc  c c c lc   c c  lc   c c c c       c
Whitespace:                  x             x                                x                                                                                                          x                                                                                                                                                              x                             x                                                                                                                             x                                                                          x                                                                                                                                           x                                                       x                                                        w       w
Words:      bs b b b bse b b be   bse b  b be   bse b b b bse b b bse b b b be   bse b  b bse b b b bse b b b b b bse b b bse b b b bse b b b b bse b b  bse b b bse b b b b b bse b b be   bse b b b bse b b bse b  b bse b b b bse b bse b   b bse b b b bse b bse   b bse b  b bse b   b bse  b b bse b b bse b b b  b bse b b b bse b  b be bse b be   bse  b b  b b b b bse  b be   bse b b b bse b bse b b b  b bse   bse  bse   b bse b b b  b bse b b bse b b bse b b bse b  bse b b bse b b b b b bse  b be   bse b b bse  b bse b b b b b b b b  bse b b bse  b b bse b b b bse  b be   bse b b b bse b b bse  b bse b bse  bse b b b bse b   b b bse b b bse  b bse b b b  b bse b b b bse b bse b b b be bse b b b  b bse  b be   bse b b b  b bse b b b bse b bse b b b b  b b  b b be   bse b b bse b b b  b bse b b b bse  b be bse  b b b be      b
Sentences:  bs                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            e       b
-------------- next part --------------
Text:         ภ า ษ า   ไ ท ย  [ ]   ห รื อ  [ ]   ภ า ษ า   ไ ท ย   ก ล า ง  [ ]   เ ป็ น   ภ า ษ า   ร า ช ก า ร   แ ล ะ   ภ า ษ า   ป ร ะ จ ำ   ช า ติ   ข อ ง   ป ร ะ เ ท ศ   ไ ท ย  [ ]   ภ า ษ า   ไ ท ย   เ ป็ น   ภ า ษ า   ใ น   ก ลุ่ ม   ภ า ษ า   ไ ท   ซึ่ ง   เ ป็ น   ก ลุ่ ม   ย่ อ ย   ข อ ง   ต ร ะ กู ล   ภ า ษ า   ข ร้ า  -  ไ ท  [ ]   สั น นิ ษ ฐ า น   ว่ า  [ ]   ภ า ษ า   ใ น   ต ร ะ กู ล   นี้   มี   ถิ่ น   ก ำ เ นิ ด   จ า ก   ท า ง   ต อ น   ใ ต้   ข อ ง   ป ร ะ เ ท ศ   จี น  [ ]   แ ล ะ   นั ก   ภ า ษ า ศ า ส ต ร์   บ า ง   ส่ ว น   เ ส น อ   ว่ า  [ ]   ภ า ษ า   ไ ท ย   น่ า   จ ะ   มี   ค ว า ม   เ ชื่ อ ม   โ ย ง   กั บ   ต ร ะ กู ล   ภ า ษ า   อ อ   ส โ ต ร  -  เ อ เ ชี ย   ติ ก  [ ]   ต ร ะ กู ล   ภ า ษ า   อ อ   ส โ ต ร นี เ ซี ย น  [ ]   แ ล ะ   ต ร ะ กู ล   ภ า ษ า   จี น  -  ทิ เ บ ต  [0x0a] 
Breaks:     c  c c c lc  c c c    lc  c  c c    lc  c c c lc  c c lc  c c c c    lc  c  c lc  c c c lc  c c c c c lc  c c lc  c c c lc  c c c c lc  c c  lc  c c lc  c c c c c lc  c c c    lc  c c c lc  c c lc  c  c lc  c c c lc  c lc  c   c lc  c c c lc  c lc    c lc  c  c lc  c   c lc   c c lc  c c lc  c c c  c lc  c c c lc  c  c c  lc c c    lc   c c  c c c c lc   c c    lc  c c c lc  c lc  c c c  c lc    lc   lc    c lc  c c c  c lc  c c lc  c c lc  c c lc  c  lc  c c lc  c c c c c lc   c c    lc  c c lc   c lc  c c c c c c c c  lc  c c lc   c c lc  c c c lc   c c    lc  c c c lc  c c lc   c lc  c lc   lc  c c c lc  c   c c lc  c c lc   c lc  c c c  c lc  c c c lc  c lc  c c c c  lc c c c  c lc   c c    lc  c c c  c lc  c c c lc  c lc  c c c c  c c  c c c    lc  c c lc  c c c  c lc  c c c lc   c c  lc  c c c c       c
Whitespace:                  x             x                                x                                                                                                          x                                                                                                                                                             x                             x                                                                                                                             x                                                                          x                                                                                                                                          x                                                       x                                                       w       w
Words:      bs b b b bse b b be   bse b  b be   bse b b b bse b b bse b b b be   bse b  b bse b b b bse b b b b b bse b b bse b b b bse b b b b bse b b  bse b b bse b b b b b bse b b be   bse b b b bse b b bse b  b bse b b b bse b bse b   b bse b b b bse b bse   b bse b  b bse b   b bse  b b bse b b bse b b b  b bse b b b bse b  b be bs b be   bse  b b  b b b b bse  b be   bse b b b bse b bse b b b  b bse   bse  bse   b bse b b b  b bse b b bse b b bse b b bse b  bse b b bse b b b b b bse  b be   bse b b bse  b bse b b b b b b b b  bse b b bse  b b bse b b b bse  b be   bse b b b bse b b bse  b bse b bse  bse b b b bse b   b b bse b b bse  b bse b b b  b bse b b b bse b bse b b b be bs b b b  b bse  b be   bse b b b  b bse b b b bse b bse b b b b  b b  b b be   bse b b bse b b b  b bse b b b bse  b be bs  b b b be      b
Sentences:  bs                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         e       b


More information about the pkg-gnome-maintainers mailing list