[Buildroot] [PATCH 1/1] package/bat: fix build with GCC 15
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Tue Sep 2 13:49:36 UTC 2025
Hello,
Thanks for your patch!
On Tue, 2 Sep 2025 15:42:50 +0200
El Mehdi YOUNES <elmehdi.younes at smile.fr> wrote:
> Bat pulls in the onig crate (version 6.4.0) through syntect with the
> default "regex-onig" feature. This crate depends on the Oniguruma C
> library (via onig_sys), which fails to build with GCC 15 due to C23
> keyword conflicts. Newer versions of onig fix this issue, but bat
> cannot directly update the onig version because it is pinned by syntect.
>
> To resolve the build failure, apply a patch that replaces the
> "regex-onig" feature with "regex-fancy" in bat's minimal-application
> feature set. This switches bat to use the pure-Rust fancy-regex engine
> instead of Oniguruma, avoiding the problematic onig_sys dependency.
>
> Fixes:
>
> https://autobuild.buildroot.net/?reason=bat-%
This link doesn't make sense as it can contain failures unrelated to
this one, especially in the future. You need to include the link to one
specific build result.
> diff --git a/package/bat/0001-Replace-regex-onig-by-regex-fancy-in-minimal-applica.patch b/package/bat/0001-Replace-regex-onig-by-regex-fancy-in-minimal-applica.patch
> new file mode 100644
> index 0000000000..6d13c406cc
> --- /dev/null
> +++ b/package/bat/0001-Replace-regex-onig-by-regex-fancy-in-minimal-applica.patch
> @@ -0,0 +1,40 @@
> +From 9b6727df25e45222b3863dbe5f5bc58237b68ab9 Mon Sep 17 00:00:00 2001
> +From: El Mehdi YOUNES <elmehdi.younes at smile.fr>
> +Date: Tue, 2 Sep 2025 14:02:11 +0200
> +Subject: [PATCH] Replace regex-onig by regex-fancy in minimal-application
> +
> +The default "application" feature enables "minimal-application", which
> +in turn pulls in the "regex-onig" feature of syntect. This brings in the
> +onig crate (version 6.4.0) and its dependency onig_sys, which fail to
> +build with GCC 15 due to C23 keyword conflicts.
> +
> +It is not possible to simply update the onig crate from bat itself,
> +since its version is pinned indirectly by syntect. To avoid this
> +dependency and fix the build, replace "regex-onig" with "regex-fancy" in
> +"minimal-application". This makes bat use the pure-Rust fancy-regex
> +engine instead of Oniguruma, removing the need for onig_sys and allowing
> +the package to build with GCC 15.
> +
> +Upstream: not submitted
Why?
> +diff --git a/Cargo.toml b/Cargo.toml
> +index 80d19321..93a07a1d 100644
> +--- a/Cargo.toml
> ++++ b/Cargo.toml
> +@@ -29,7 +29,7 @@ minimal-application = [
> + "clap",
> + "etcetera",
> + "paging",
> +- "regex-onig",
> ++ "regex-fancy",
> + "wild",
> + ]
Are you sure this works? Patches are applied *after* the download step,
during which we do the Cargo vendoring. Also, if you pull in more
dependencies, I would expect the hash of the tarball to change, since
we hash the tarball after Cargo vendoring.
Am I missing something here?
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
More information about the buildroot
mailing list