#1097832 rust-onig-sys: ftbfs with GCC-15

#1097832#5
Date:
2025-02-17 17:51:51 UTC
From:
To:
[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/rust-onig-sys_69.8.1-1_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
  cargo:warning=  901 |     onig_st_foreach(t, i_renumber_name, (HashDataType )map);
  cargo:warning=      |                        ^~~~~~~~~~~~~~~
  cargo:warning=      |                        |
  cargo:warning=      |                        int (*)(OnigUChar *, NameEntry *, GroupNumMap *) {aka int (*)(unsigned char *, NameEntry *, GroupNumMap *)}
  cargo:warning=oniguruma/src/st.h:55:31: note: expected ‘int (*)(void)’ but argument is of type ‘int (*)(OnigUChar *, NameEntry *, GroupNumMap *)’ {aka ‘int (*)(unsigned char *, NameEntry *, GroupNumMap *)’}
  cargo:warning=   55 | int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
  cargo:warning=      |                               ^~~~~~~~~~~~~~~~
  cargo:warning=oniguruma/src/st.h:35:18: note: in definition of macro ‘_’
  cargo:warning=   35 | # define _(args) args
  cargo:warning=      |                  ^~~~
  cargo:warning=oniguruma/src/regparse.c:879:1: note: ‘i_renumber_name’ declared here
  cargo:warning=  879 | i_renumber_name(UChar* key ARG_UNUSED, NameEntry* e, GroupNumMap* map)
  cargo:warning=      | ^~~~~~~~~~~~~~~
  cargo:warning=oniguruma/src/regparse.c: In function ‘callout_name_table_clear’:
  cargo:warning=oniguruma/src/regparse.c:1386:24: error: passing argument 2 of ‘onig_st_foreach’ from incompatible pointer type [-Wincompatible-pointer-types]
  cargo:warning= 1386 |     onig_st_foreach(t, i_free_callout_name_entry, 0);
  cargo:warning=      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=      |                        |
  cargo:warning=      |                        int (*)(st_callout_name_key *, CalloutNameEntry *, void *)
  cargo:warning=oniguruma/src/st.h:55:31: note: expected ‘int (*)(void)’ but argument is of type ‘int (*)(st_callout_name_key *, CalloutNameEntry *, void *)’
  cargo:warning=   55 | int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
  cargo:warning=      |                               ^~~~~~~~~~~~~~~~
  cargo:warning=oniguruma/src/st.h:35:18: note: in definition of macro ‘_’
  cargo:warning=   35 | # define _(args) args
  cargo:warning=      |                  ^~~~
  cargo:warning=oniguruma/src/regparse.c:1370:1: note: ‘i_free_callout_name_entry’ declared here
  cargo:warning= 1370 | i_free_callout_name_entry(st_callout_name_key* key, CalloutNameEntry* e,
  cargo:warning=      | ^~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=oniguruma/src/regparse.c: In function ‘setup_ext_callout_list_values’:
  cargo:warning=oniguruma/src/regparse.c:1884:56: error: passing argument 2 of ‘onig_st_foreach’ from incompatible pointer type [-Wincompatible-pointer-types]
  cargo:warning= 1884 |     onig_st_foreach((CalloutTagTable *)ext->tag_table, i_callout_callout_list_set,
  cargo:warning=      |                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=      |                                                        |
  cargo:warning=      |                                                        int (*)(OnigUChar *, CalloutTagVal,  void *) {aka int (*)(unsigned char *, long int,  void *)}
  cargo:warning=oniguruma/src/st.h:55:31: note: expected ‘int (*)(void)’ but argument is of type ‘int (*)(OnigUChar *, CalloutTagVal,  void *)’ {aka ‘int (*)(unsigned char *, long int,  void *)’}
  cargo:warning=   55 | int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
  cargo:warning=      |                               ^~~~~~~~~~~~~~~~
  cargo:warning=oniguruma/src/st.h:35:18: note: in definition of macro ‘_’
  cargo:warning=   35 | # define _(args) args
  cargo:warning=      |                  ^~~~
  cargo:warning=oniguruma/src/regparse.c:1866:1: note: ‘i_callout_callout_list_set’ declared here
  cargo:warning= 1866 | i_callout_callout_list_set(UChar* key, CalloutTagVal e, void* arg)
  cargo:warning=      | ^~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=oniguruma/src/regparse.c: In function ‘callout_tag_table_clear’:
  cargo:warning=oniguruma/src/regparse.c:1932:24: error: passing argument 2 of ‘onig_st_foreach’ from incompatible pointer type [-Wincompatible-pointer-types]
  cargo:warning= 1932 |     onig_st_foreach(t, i_free_callout_tag_entry, 0);
  cargo:warning=      |                        ^~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=      |                        |
  cargo:warning=      |                        int (*)(OnigUChar *, CalloutTagVal,  void *) {aka int (*)(unsigned char *, long int,  void *)}
  cargo:warning=oniguruma/src/st.h:55:31: note: expected ‘int (*)(void)’ but argument is of type ‘int (*)(OnigUChar *, CalloutTagVal,  void *)’ {aka ‘int (*)(unsigned char *, long int,  void *)’}
  cargo:warning=   55 | int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
  cargo:warning=      |                               ^~~~~~~~~~~~~~~~
  cargo:warning=oniguruma/src/st.h:35:18: note: in definition of macro ‘_’
  cargo:warning=   35 | # define _(args) args
  cargo:warning=      |                  ^~~~
  cargo:warning=oniguruma/src/regparse.c:1922:1: note: ‘i_free_callout_tag_entry’ declared here
  cargo:warning= 1922 | i_free_callout_tag_entry(UChar* key, CalloutTagVal e, void* arg ARG_UNUSED)
  cargo:warning=      | ^~~~~~~~~~~~~~~~~~~~~~~~

#1097832#20
Date:
2025-03-22 12:28:19 UTC
From:
To:
This should be fixed with [1], but the fix is still unreleased.

[1] https://github.com/rust-onig/rust-onig/commit/25a950f0045600645d9f51da2b4f8b057cc017f1

#1097832#29
Date:
2025-09-05 08:41:50 UTC
From:
To:
This was fixed upstream since v69.9.0.
-----BEGIN PGP SIGNATURE-----

wsG7BAEBCgBvBYJouqJLCRAsfDFGwaABIUcUAAAAAAAeACBzYWx0QG5vdGF0aW9u
cy5zZXF1b2lhLXBncC5vcmdRnmPmjcWkWYLLUzJrt36jGCGAqkG7VOgQTYo4SoMV
3xYhBJ/j6cNmkaaf9TzGhCx8MUbBoAEhAACniQ/+IxBOm9LW1MGms/v6m4BAg/9C
oavLjv6D2N4fPtBMbJQKvRubobs+XixawrWT8v9Aup1pBghqP9cRTJoLS9zXrXBW
iwOZQ7gQUBFhi5PEPzjF/J3bw59hb8tfk2jyHTAgHqv+hulx48PjJ54Bhw/zdO2G
LfhLNNFkU48URU/uBriLM/2p+0KgCl9LWpA55DjEAbdnc+g6/0DG6RK+V1VBlupn
kyfWn2/zppKdrqDKuqsLG6R0R9CQhWD26P68ToyNSzlimzIO2iZsJ1y5tjUob5qM
w1a4RzVYOpPYNQs73POxw+ZIlH6hqb+45MzajJtP+P0SEoa197zkan9gVsQDWcbi
QIWOrGQzxYewBKL020+ca8sszn8qn4hoLB2Y7+xhR4JvXeioP+Bjj4hX9pTcXExw
LmEOV7t1kvCbnzmDVyGzFwZDmAihHS2H4p7G22BnShx828MfTrP176EP8Uvid9Xj
VPFjurSkAukWPr4IoLETbsUgt887+LcxzzqUkRQnbPPmNxPUGd+C9CBhy1+0R/RZ
9HFZgCBDXCIkZXJLJN5yPFKc/mMtS6Scfu6BlBlLHNtQdV0p65My9CyjFno4Es7i
t0VYw/mw8Ur01nh6HkRAre1NAHl5OOjrD8508u+e0YFnZra1fEfZLsQzeSddWKtO
6oQDGNqLRgSPVwpbMxA=
=G2/X
-----END PGP SIGNATURE-----

#1097832#36
Date:
2025-09-05 17:06:46 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
rust-onig-sys, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1097832@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Fabian Grünbichler <debian@fabian.gruenbichler.email> (supplier of updated rust-onig-sys package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 05 Sep 2025 18:41:04 +0200
Source: rust-onig-sys
Architecture: source
Version: 69.9.1-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Changed-By: Fabian Grünbichler <debian@fabian.gruenbichler.email>
Closes: 1097832
Changes:
 rust-onig-sys (69.9.1-1) unstable; urgency=medium
 .
   * Team upload.
   * Package onig_sys 69.9.1 from crates.io using debcargo 2.7.8
   * Drop embedded libonig copy, instead use libonig5 (Closes: #1097832)
Checksums-Sha1:
 ef93f4b1dd503fb795df4cb8e0341f3f9b603fb2 2430 rust-onig-sys_69.9.1-1.dsc
 2ecc3527f41ffa3c960870b901a65608f8ca086c 16270 rust-onig-sys_69.9.1.orig.tar.gz
 1cd3b21662a8c114a6fdf036d861c680c5a3fe62 4560 rust-onig-sys_69.9.1-1.debian.tar.xz
 bb709af6903879694dfcc275a8a5f9e56d961682 7339 rust-onig-sys_69.9.1-1_source.buildinfo
Checksums-Sha256:
 7632ae4a474960b5a8a01723d1f16e013086ed2e0a6c5e45d57d4b5e0ed6eb88 2430 rust-onig-sys_69.9.1-1.dsc
 e2e224cc2d06beaa0c4da7c4551cf52e74da378364b707dc0e8478602bab00a5 16270 rust-onig-sys_69.9.1.orig.tar.gz
 0e72eb1a6805de1aa644db6213200b038b26a1a4c85da83abaa7b231fc11d941 4560 rust-onig-sys_69.9.1-1.debian.tar.xz
 00a72557280a5709b40e3d953edbe138d9aa3348a27658b30d6dd58b1c4c9838 7339 rust-onig-sys_69.9.1-1_source.buildinfo
Files:
 e79ce7cb6519978270ad4d10aec6bbf7 2430 rust optional rust-onig-sys_69.9.1-1.dsc
 a1abaeeb5e4996a9d2d058f5f3bf532c 16270 rust optional rust-onig-sys_69.9.1.orig.tar.gz
 9bf733b80a93dfb70d8140f3d3cc3309 4560 rust optional rust-onig-sys_69.9.1-1.debian.tar.xz
 f1da1a061594509af42b8618f06012d5 7339 rust optional rust-onig-sys_69.9.1-1_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJVBAEBCgA/FiEEbdkGe7ToK0Amc9ppdh5TKjcTRTAFAmi7EqohHGRlYmlhbkBm
YWJpYW4uZ3J1ZW5iaWNobGVyLmVtYWlsAAoJEHYeUyo3E0UworkP/jHeeiIKXtwE
7LXCfsiF/Kw1uYv/KA1XZp7LEivYou2azEa6eTxZULkoMEXdO18Q6YHW1ajalksK
bBRqyXxnK8hV3n8/p7p6AXMDzDOKO9r3MaNJOq0Yak0z5jkGN83Qf2ZYpAkiSlVo
j0Ri/yq9GSXV5vFAJ01GmkL/jWZIzfuLtySAgHpjGlRgnkAtSZbjVcfvF8IIYnv4
rXNDrCYJawUnQi8bC30CiXytvDDVxg4WqkuQuDQh0G4QhLPRjTv5DFcdXCw/o2IG
gHN4XbcedGxFXHa/m6IIPCqJbsTqMQbv3t2Uug50MoEVnVHYpaDCcA7NL7j1vdUL
hm7N3Lh+f/j+wBVUPuVE/hcFspgJLxDl4O8q7dIcBqRqx/ac6zvsa7x+Rz8NqOWm
v4XpWn0y6yN65FuYMPOB5CVnBGAW/cGXFNodt3lGbANihzgTBtCwBZAFxwLgjAi9
zVNzJIigLdiPwLFfs5y/2Hh1NoyN3z3+l1gd4h+UaBnfEvOcEWSqCCjsZmxLHwur
JHD/JGCXAEocYSoxnhAw9VmZf4OzEqfVvvhuP7cRZeho9pCBV+Q+gHzYCMpgZVce
b2HrtZX2tTZKMAkxvG8hjwIGiA/qz+eJ+tgGsEVl4toCjnEztg1vDfLtf8qvp3Oe
wzFbnMNjlhguZy6blOK39MKFFmsaOpa/
=JBWT
-----END PGP SIGNATURE-----