2
1
Эх сурвалжийг харах

package/mariadb: fix build with fmt >= 11.0.1

MariaDB is failing to build since commit 6b86f076c3 "package/fmt: bump
to version 11.0.1" with output:

    /buildroot/output/build/aarch64-buildroot-linux-gnu/sysroot/usr/include/fmt/base.h:1402:29: error: passing 'const fmt::v11::formatter<String>' as 'this' argument discards qualifiers [-fpermissive]
     1402 |     ctx.advance_to(cf.format(*static_cast<qualified_type*>(arg), ctx));
          |                    ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This commit is fixing the issue by adding an upstream patch, rebased
on the package version.

Fixes:
http://autobuild.buildroot.org/results/3106928a2d6b32acfb075a2840cf549a81784270/
and many others.

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Julien Olivain 1 жил өмнө
parent
commit
48e7affffa

+ 35 - 0
package/mariadb/0002-MDEV-34206-compile-failure-fmt-use-incompatible-with.patch

@@ -0,0 +1,35 @@
+From 69935c10b95fc7f7a2e1c3ed02831958e1a9b6a4 Mon Sep 17 00:00:00 2001
+From: Daniel Black <daniel@mariadb.org>
+Date: Wed, 22 May 2024 17:43:17 +1000
+Subject: [PATCH] MDEV-34206 compile failure: fmt use incompatible with
+ libfmt-10.2.[2]+
+
+Upstream libfmt commit https://github.com/fmtlib/fmt/commit/d70729215fba1d54862e407b626abf86ddf409bf
+now requires the format function to be const.
+
+Adjust the function prototype so it is const and can compile.a
+
+Signed-off-by: Daniel Black <daniel@mariadb.org>
+[Julien: add SoB line with the original patch author name]
+Upstream: https://github.com/MariaDB/server/commit/4375245d5d9f01cabb6e3fd6c637535e724eae38
+Signed-off-by: Julien Olivain <ju.o@free.fr>
+---
+ sql/item_strfunc.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
+index 4bbf36ec1cf..2ad8a9b3ce5 100644
+--- a/sql/item_strfunc.cc
++++ b/sql/item_strfunc.cc
+@@ -1392,7 +1392,7 @@ bool Item_func_sformat::fix_length_and_dec(THD *thd)
+ namespace fmt {
+   template <> struct formatter<String>: formatter<string_view> {
+     template <typename FormatContext>
+-    auto format(String c, FormatContext& ctx) -> decltype(ctx.out()) {
++    auto format(String c, FormatContext& ctx) const -> decltype(ctx.out()) {
+       string_view name = { c.ptr(), c.length() };
+       return formatter<string_view>::format(name, ctx);
+     };
+-- 
+2.46.0
+