commit:     5c4aa35ae0f672b7c1af0be0c198dc7ec8dff8d6
Author:     Hanno Böck <hanno <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 31 13:06:02 2024 +0000
Commit:     Hanno Böck <hanno <AT> gentoo <DOT> org>
CommitDate: Tue Dec 31 13:06:02 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c4aa35a

sys-fs/ext3grep: Fix include order / C23 compile errors

Based on patch provided by NHOrus via Github.

Closes: https://github.com/gentoo/gentoo/pull/39904
Closes: https://bugs.gentoo.org/939024
Closes: https://bugs.gentoo.org/934532
Signed-off-by: Hanno Böck <hanno <AT> gentoo.org>

 sys-fs/ext3grep/ext3grep-0.10.2-r2.ebuild          | 37 ++++++++++
 .../files/ext3grep-0.10.2-include-order.patch      | 86 ++++++++++++++++++++++
 2 files changed, 123 insertions(+)

diff --git a/sys-fs/ext3grep/ext3grep-0.10.2-r2.ebuild 
b/sys-fs/ext3grep/ext3grep-0.10.2-r2.ebuild
new file mode 100644
index 000000000000..1311fc4dc750
--- /dev/null
+++ b/sys-fs/ext3grep/ext3grep-0.10.2-r2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Recover deleted files on an ext3 file system"
+HOMEPAGE="https://code.google.com/p/ext3grep/";
+SRC_URI="https://ext3grep.googlecode.com/files/${P}.tar.gz";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug pch"
+
+DEPEND="
+       sys-fs/e2fsprogs
+       virtual/os-headers
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-0.10.1-gcc44.patch"
+       "${FILESDIR}/${P}-include-unistd_h-for-sysconf.patch"
+       "${FILESDIR}/${P}-new-e2fsprogs.patch"
+       "${FILESDIR}/${P}-newer-e2fsprogs.patch"
+       "${FILESDIR}/${P}-missing-cassert-include.patch"
+       "${FILESDIR}/${P}-include-order.patch"
+)
+
+src_configure() {
+       local myeconfargs=(
+               $(use_enable debug)
+               $(use_enable pch)
+       )
+
+       econf "${myeconfargs[@]}"
+}

diff --git a/sys-fs/ext3grep/files/ext3grep-0.10.2-include-order.patch 
b/sys-fs/ext3grep/files/ext3grep-0.10.2-include-order.patch
new file mode 100644
index 000000000000..6f08e5ad9329
--- /dev/null
+++ b/sys-fs/ext3grep/files/ext3grep-0.10.2-include-order.patch
@@ -0,0 +1,86 @@
+https://bugs.gentoo.org/934532
+https://bugs.gentoo.org/939024
+Ordering of includes is important, so we don't redefine "clamp" from
+under STL internals:
+https://en.cppreference.com/w/cpp/algorithm/clamp takes four args
+but clamp in ext2fs.h takes three
+diff -ur a/src/directories.cc b/src/directories.cc
+--- a/src/directories.cc       2024-12-30 14:12:51.353812001 +0400
++++ b/src/directories.cc       2024-12-30 14:13:51.472524523 +0400
+@@ -21,6 +21,10 @@
+ // You should have received a copy of the GNU General Public License
+ // along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
++#include <cstring>
++#include <ctime>
++#include <algorithm>
++
+ #ifndef USE_PCH
+ #include "sys.h"
+ #include "ext3.h"
+@@ -33,9 +37,6 @@
+ #include "indirect_blocks.h"
+ #include "get_block.h"
+ #include "directories.h"
+-#include <cstring>
+-#include <ctime>
+-#include <algorithm>
+ 
+ 
//-----------------------------------------------------------------------------
+ //
+diff -ur a/src/init_files.cc b/src/init_files.cc
+--- a/src/init_files.cc        2024-12-30 14:12:51.353812001 +0400
++++ b/src/init_files.cc        2024-12-30 14:13:37.823593692 +0400
+@@ -21,6 +21,8 @@
+ // You should have received a copy of the GNU General Public License
+ // along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
++#include <algorithm>
++
+ #ifndef USE_PCH
+ #include "sys.h"
+ #include <iomanip>
+@@ -33,7 +35,6 @@
+ #include "globals.h"
+ #include "forward_declarations.h"
+ #include "journal.h"
+-#include <algorithm>
+ 
+ 
//-----------------------------------------------------------------------------
+ //
+diff -ur a/src/journal.cc b/src/journal.cc
+--- a/src/journal.cc   2024-12-30 14:12:51.353812001 +0400
++++ b/src/journal.cc   2024-12-30 14:14:07.808441493 +0400
+@@ -21,6 +21,9 @@
+ // You should have received a copy of the GNU General Public License
+ // along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
++#include <algorithm>
++#include <ctime>
++
+ #ifndef USE_PCH
+ #include "sys.h"
+ #include <stdint.h>
+@@ -37,8 +40,6 @@
+ #include "indirect_blocks.h"
+ #include "get_block.h"
+ #include "commandline.h"
+-#include <algorithm>
+-#include <ctime>
+ 
+ 
//-----------------------------------------------------------------------------
+ //
+It throws warning - we already define LARGEFILE on Gentoo, so let's not 
redefine
+diff -ur a/src/sys.h.in b/src/sys.h.in
+--- a/src/sys.h.in     2024-12-30 14:12:51.353812001 +0400
++++ b/src/sys.h.in     2024-12-30 14:24:36.796244569 +0400
+@@ -31,7 +31,9 @@
+ #endif
+ 
+ // This is needed for lseek64.
++#ifndef _LARGEFILE64_SOURCE
+ #define _LARGEFILE64_SOURCE
++#endif
+ 
+ #ifdef CWDEBUG
+ #ifndef _GNU_SOURCE

Reply via email to