commit:     0b8d6bb128bdc0d4a73c5d69226d29f9bf20701b
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Dec  1 14:42:42 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Dec  1 14:55:48 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0b8d6bb1

sys-fs/e2fsprogs: fix C23 compat

Closes: https://bugs.gentoo.org/943687
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-fs/e2fsprogs/e2fsprogs-1.47.1.ebuild          |  1 +
 sys-fs/e2fsprogs/files/e2fsprogs-1.47.1-c23.patch | 38 +++++++++++++++++++++++
 2 files changed, 39 insertions(+)

diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.47.1.ebuild 
b/sys-fs/e2fsprogs/e2fsprogs-1.47.1.ebuild
index 216ac564dcfe..d1f1284271fc 100644
--- a/sys-fs/e2fsprogs/e2fsprogs-1.47.1.ebuild
+++ b/sys-fs/e2fsprogs/e2fsprogs-1.47.1.ebuild
@@ -46,6 +46,7 @@ PATCHES=(
        
"${FILESDIR}"/${PN}-1.47.0-disable-metadata_csum_seed-and-orphan_file-by-default.patch
 
        # Upstream patches (can usually removed with next version bump)
+       "${FILESDIR}"/${PN}-1.47.1-c23.patch
 )
 
 src_prepare() {

diff --git a/sys-fs/e2fsprogs/files/e2fsprogs-1.47.1-c23.patch 
b/sys-fs/e2fsprogs/files/e2fsprogs-1.47.1-c23.patch
new file mode 100644
index 000000000000..b39e0a45534c
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/e2fsprogs-1.47.1-c23.patch
@@ -0,0 +1,38 @@
+https://bugs.gentoo.org/943687
+https://github.com/tytso/e2fsprogs/issues/202
+https://github.com/tytso/e2fsprogs/commit/49fd04d77b3244c6c6990be41142168eef373aef
+
+From 49fd04d77b3244c6c6990be41142168eef373aef Mon Sep 17 00:00:00 2001
+From: Rudi Heitbaum <[email protected]>
+Date: Fri, 22 Nov 2024 12:36:32 +0000
+Subject: [PATCH] libext2fs: fix -std=c23 build failure
+
+gcc-15 switched to -std=c23 by default:
+
+    
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=55e3bd376b2214e200fa76d12b67ff259b06c212
+
+As a result `e2fsprogs` fails the build so only typedef int bool
+for __STDC_VERSION__ <= 201710L (C17)
+
+    ../../../lib/ext2fs/tdb.c:113:13: error: two or more data types in 
declaration specifiers
+    ../../../lib/ext2fs/tdb.c:113:1: warning: useless type name in empty 
declaration
+      113 | typedef int bool;
+          | ^~~~~~~
+
+https://github.com/tytso/e2fsprogs/issues/202
+
+Signed-off-by: Rudi Heitbaum <[email protected]>
+Link: https://lore.kernel.org/r/Z0B60JhdvT9bpSQ6@6f91903e89da
+Signed-off-by: Theodore Ts'o <[email protected]>
+--- a/lib/ext2fs/tdb.c
++++ b/lib/ext2fs/tdb.c
+@@ -110,7 +110,9 @@ static char *rep_strdup(const char *s)
+ #endif
+ #endif
+ 
++#if defined __STDC__ && defined __STDC_VERSION__ && __STDC_VERSION__ <= 
201710L
+ typedef int bool;
++#endif
+ 
+ #include "tdb.h"
+ 

Reply via email to