summaryrefslogtreecommitdiff
path: root/dev-cpp/sparsehash
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /dev-cpp/sparsehash
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'dev-cpp/sparsehash')
-rw-r--r--dev-cpp/sparsehash/Manifest1
-rw-r--r--dev-cpp/sparsehash/files/sparsehash-2.0.3-fix-buildsystem.patch71
-rw-r--r--dev-cpp/sparsehash/files/sparsehash-2.0.4-c++20.patch316
-rw-r--r--dev-cpp/sparsehash/metadata.xml9
-rw-r--r--dev-cpp/sparsehash/sparsehash-2.0.4-r2.ebuild25
5 files changed, 422 insertions, 0 deletions
diff --git a/dev-cpp/sparsehash/Manifest b/dev-cpp/sparsehash/Manifest
new file mode 100644
index 000000000000..599137f008da
--- /dev/null
+++ b/dev-cpp/sparsehash/Manifest
@@ -0,0 +1 @@
+DIST sparsehash-2.0.4.tar.gz 323154 BLAKE2B 8e0da89a6ae684271293f048092d6c79d14818f7ab9d4fa449414b3354f9e7769d9b0cc724227c47a1be7c7357cdac5cf6f3873047a08c8f085cc457858a8826 SHA512 40c007bc5814dd5f2bdacd5ec884bc5424f7126f182d4c7b34371f88b674456fc193b947fdd283dbd0c7eb044d8f06baf8caec6c93e73b1b587282b9026ea877
diff --git a/dev-cpp/sparsehash/files/sparsehash-2.0.3-fix-buildsystem.patch b/dev-cpp/sparsehash/files/sparsehash-2.0.3-fix-buildsystem.patch
new file mode 100644
index 000000000000..237719c3b9f3
--- /dev/null
+++ b/dev-cpp/sparsehash/files/sparsehash-2.0.3-fix-buildsystem.patch
@@ -0,0 +1,71 @@
+* Do not override $(docdir) as part of the GNU conventions
+* Do not install 'COPYING' and 'INSTALL'
+* Install html files using html_ prefix and not doc_ prefix
+* Do not try to link against tcmalloc, the complexity of juggling
+ the options around isn't worth it
+Bug: https://bugs.gentoo.org/show_bug.cgi?id=585968
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -9,7 +9,7 @@
+ # (for sanity checking)
+ AC_CONFIG_SRCDIR(README)
+ AM_INIT_AUTOMAKE([dist-zip])
+-AM_CONFIG_HEADER(src/config.h)
++AC_CONFIG_HEADERS([src/config.h])
+
+ # Checks for programs.
+ AC_PROG_CXX
+@@ -28,23 +28,7 @@
+ # These are 'only' needed for unittests
+ AC_CHECK_HEADERS(sys/resource.h unistd.h sys/time.h sys/utsname.h)
+
+-# If you have google-perftools installed, we can do a bit more testing.
+-# We not only want to set HAVE_MALLOC_EXTENSION_H, we also want to set
+-# a variable to let the Makefile to know to link in tcmalloc.
+ AC_LANG([C++])
+-AC_CHECK_HEADERS(google/malloc_extension.h,
+- tcmalloc_libs=-ltcmalloc,
+- tcmalloc_libs=)
+-# On some systems, when linking in tcmalloc you also need to link in
+-# pthread. That's a bug somewhere, but we'll work around it for now.
+-tcmalloc_flags=""
+-if test -n "$tcmalloc_libs"; then
+- ACX_PTHREAD
+- tcmalloc_flags="\$(PTHREAD_CFLAGS)"
+- tcmalloc_libs="$tcmalloc_libs \$(PTHREAD_LIBS)"
+-fi
+-AC_SUBST(tcmalloc_flags)
+-AC_SUBST(tcmalloc_libs)
+
+ # Figure out where hash_map lives and also hash_fun.h (or stl_hash_fun.h).
+ # This also tells us what namespace hash code lives in.
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -11,12 +11,11 @@
+ AM_CXXFLAGS = -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow
+ endif
+
+-docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
+ ## This is for HTML and other documentation you want to install.
+ ## Add your documentation files (in doc/) in addition to these boilerplate
+ ## Also add a TODO file if you have one
+-dist_doc_DATA = AUTHORS COPYING ChangeLog INSTALL NEWS README README_windows.txt \
+- TODO \
++dist_doc_DATA = AUTHORS ChangeLog NEWS README README_windows.txt TODO
++dist_html_DATA = \
+ doc/dense_hash_map.html \
+ doc/dense_hash_set.html \
+ doc/sparse_hash_map.html \
+@@ -182,11 +181,6 @@
+ $(sparsehashinclude_HEADERS)
+ nodist_time_hash_map_SOURCES = $(nodist_internalinclude_HEADERS)
+
+-# If tcmalloc is installed, use it with time_hash_map; it gives us
+-# heap-usage statistics for the hash_map routines, which is very nice
+-time_hash_map_CXXFLAGS = @tcmalloc_flags@ $(AM_CXXFLAGS)
+-time_hash_map_LDFLAGS = @tcmalloc_flags@
+-time_hash_map_LDADD = @tcmalloc_libs@
+
+ ## ^^^^ END OF RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS
+
diff --git a/dev-cpp/sparsehash/files/sparsehash-2.0.4-c++20.patch b/dev-cpp/sparsehash/files/sparsehash-2.0.4-c++20.patch
new file mode 100644
index 000000000000..776443d68c5e
--- /dev/null
+++ b/dev-cpp/sparsehash/files/sparsehash-2.0.4-c++20.patch
@@ -0,0 +1,316 @@
+https://github.com/igorsugak/sparsehash/commit/6940fcaba9766735e48064b930690d67fc2f84ea
+https://github.com/sparsehash/sparsehash/pull/165
+https://bugs.gentoo.org/967004
+C++20 removed many deprecated std::allocator members, causing sparsehash
+to fail when it is built with -std=c++20. This implements most of
+the uses of the removed members in terms of std::allocator_traits.
+
+There are no corresponding reference and const_reference members
+in std::allocator_traits, in which case used the actual
+value_type&/const value_type& instead.
+From 6940fcaba9766735e48064b930690d67fc2f84ea Mon Sep 17 00:00:00 2001
+From: sugak <sugak@fb.com>
+Date: Mon, 29 Nov 2021 18:01:19 -0800
+Subject: [PATCH] fix build with -std=c++20
+
+---
+ src/sparsehash/internal/densehashtable.h | 46 ++++++++++++---------
+ src/sparsehash/internal/sparsehashtable.h | 50 +++++++++++++----------
+ src/sparsehash/sparsetable | 37 +++++++++--------
+ 3 files changed, 74 insertions(+), 59 deletions(-)
+
+diff --git a/src/sparsehash/internal/densehashtable.h b/src/sparsehash/internal/densehashtable.h
+index cdf4ff6..79cecab 100644
+--- a/src/sparsehash/internal/densehashtable.h
++++ b/src/sparsehash/internal/densehashtable.h
+@@ -149,7 +149,8 @@ struct dense_hashtable_const_iterator;
+ template <class V, class K, class HF, class ExK, class SetK, class EqK, class A>
+ struct dense_hashtable_iterator {
+ private:
+- typedef typename A::template rebind<V>::other value_alloc_type;
++ typedef typename std::allocator_traits<A>::template rebind_alloc<V> value_alloc_type;
++ typedef std::allocator_traits<value_alloc_type> value_alloc_traits;
+
+ public:
+ typedef dense_hashtable_iterator<V,K,HF,ExK,SetK,EqK,A> iterator;
+@@ -157,10 +158,10 @@ struct dense_hashtable_iterator {
+
+ typedef std::forward_iterator_tag iterator_category; // very little defined!
+ typedef V value_type;
+- typedef typename value_alloc_type::difference_type difference_type;
+- typedef typename value_alloc_type::size_type size_type;
+- typedef typename value_alloc_type::reference reference;
+- typedef typename value_alloc_type::pointer pointer;
++ typedef typename value_alloc_traits::difference_type difference_type;
++ typedef typename value_alloc_traits::size_type size_type;
++ typedef value_type& reference;
++ typedef typename value_alloc_traits::pointer pointer;
+
+ // "Real" constructor and default constructor
+ dense_hashtable_iterator(const dense_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
+@@ -202,7 +203,8 @@ struct dense_hashtable_iterator {
+ template <class V, class K, class HF, class ExK, class SetK, class EqK, class A>
+ struct dense_hashtable_const_iterator {
+ private:
+- typedef typename A::template rebind<V>::other value_alloc_type;
++ typedef typename std::allocator_traits<A>::template rebind_alloc<V> value_alloc_type;
++ typedef std::allocator_traits<value_alloc_type> value_alloc_traits;
+
+ public:
+ typedef dense_hashtable_iterator<V,K,HF,ExK,SetK,EqK,A> iterator;
+@@ -210,10 +212,10 @@ struct dense_hashtable_const_iterator {
+
+ typedef std::forward_iterator_tag iterator_category; // very little defined!
+ typedef V value_type;
+- typedef typename value_alloc_type::difference_type difference_type;
+- typedef typename value_alloc_type::size_type size_type;
+- typedef typename value_alloc_type::const_reference reference;
+- typedef typename value_alloc_type::const_pointer pointer;
++ typedef typename value_alloc_traits::difference_type difference_type;
++ typedef typename value_alloc_traits::size_type size_type;
++ typedef const value_type& reference;
++ typedef typename value_alloc_traits::const_pointer pointer;
+
+ // "Real" constructor and default constructor
+ dense_hashtable_const_iterator(
+@@ -259,7 +261,8 @@ template <class Value, class Key, class HashFcn,
+ class ExtractKey, class SetKey, class EqualKey, class Alloc>
+ class dense_hashtable {
+ private:
+- typedef typename Alloc::template rebind<Value>::other value_alloc_type;
++ typedef typename std::allocator_traits<Alloc>::template rebind_alloc<Value> value_alloc_type;
++ typedef std::allocator_traits<value_alloc_type> value_alloc_traits;
+
+ public:
+ typedef Key key_type;
+@@ -268,12 +271,12 @@ class dense_hashtable {
+ typedef EqualKey key_equal;
+ typedef Alloc allocator_type;
+
+- typedef typename value_alloc_type::size_type size_type;
+- typedef typename value_alloc_type::difference_type difference_type;
+- typedef typename value_alloc_type::reference reference;
+- typedef typename value_alloc_type::const_reference const_reference;
+- typedef typename value_alloc_type::pointer pointer;
+- typedef typename value_alloc_type::const_pointer const_pointer;
++ typedef typename value_alloc_traits::size_type size_type;
++ typedef typename value_alloc_traits::difference_type difference_type;
++ typedef value_type& reference;
++ typedef const value_type& const_reference;
++ typedef typename value_alloc_traits::pointer pointer;
++ typedef typename value_alloc_traits::const_pointer const_pointer;
+ typedef dense_hashtable_iterator<Value, Key, HashFcn,
+ ExtractKey, SetKey, EqualKey, Alloc>
+ iterator;
+@@ -518,7 +521,9 @@ class dense_hashtable {
+ // FUNCTIONS CONCERNING SIZE
+ public:
+ size_type size() const { return num_elements - num_deleted; }
+- size_type max_size() const { return val_info.max_size(); }
++ size_type max_size() const {
++ return std::allocator_traits<ValInfo>::max_size(val_info);
++ }
+ bool empty() const { return size() == 0; }
+ size_type bucket_count() const { return num_buckets; }
+ size_type max_bucket_count() const { return max_size(); }
+@@ -1170,8 +1175,9 @@ class dense_hashtable {
+ template <class A>
+ class alloc_impl : public A {
+ public:
+- typedef typename A::pointer pointer;
+- typedef typename A::size_type size_type;
++ typedef std::allocator_traits<A> alloc_traits;
++ typedef typename alloc_traits::pointer pointer;
++ typedef typename alloc_traits::size_type size_type;
+
+ // Convert a normal allocator to one that has realloc_or_die()
+ alloc_impl(const A& a) : A(a) { }
+diff --git a/src/sparsehash/internal/sparsehashtable.h b/src/sparsehash/internal/sparsehashtable.h
+index f54ea51..1c71d6d 100644
+--- a/src/sparsehash/internal/sparsehashtable.h
++++ b/src/sparsehash/internal/sparsehashtable.h
+@@ -160,7 +160,8 @@ struct sparse_hashtable_const_iterator;
+ template <class V, class K, class HF, class ExK, class SetK, class EqK, class A>
+ struct sparse_hashtable_iterator {
+ private:
+- typedef typename A::template rebind<V>::other value_alloc_type;
++ typedef typename std::allocator_traits<A>::template rebind_alloc<V> value_alloc_type;
++ typedef std::allocator_traits<value_alloc_type> value_alloc_traits;
+
+ public:
+ typedef sparse_hashtable_iterator<V,K,HF,ExK,SetK,EqK,A> iterator;
+@@ -170,10 +171,10 @@ struct sparse_hashtable_iterator {
+
+ typedef std::forward_iterator_tag iterator_category; // very little defined!
+ typedef V value_type;
+- typedef typename value_alloc_type::difference_type difference_type;
+- typedef typename value_alloc_type::size_type size_type;
+- typedef typename value_alloc_type::reference reference;
+- typedef typename value_alloc_type::pointer pointer;
++ typedef typename value_alloc_traits::difference_type difference_type;
++ typedef typename value_alloc_traits::size_type size_type;
++ typedef value_type& reference;
++ typedef typename value_alloc_traits::pointer pointer;
+
+ // "Real" constructor and default constructor
+ sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
+@@ -212,7 +213,9 @@ struct sparse_hashtable_iterator {
+ template <class V, class K, class HF, class ExK, class SetK, class EqK, class A>
+ struct sparse_hashtable_const_iterator {
+ private:
+- typedef typename A::template rebind<V>::other value_alloc_type;
++ typedef typename std::allocator_traits<A>::template rebind_alloc<V> value_alloc_type;
++ typedef typename std::allocator_traits<value_alloc_type> value_alloc_traits;
++
+
+ public:
+ typedef sparse_hashtable_iterator<V,K,HF,ExK,SetK,EqK,A> iterator;
+@@ -222,10 +225,10 @@ struct sparse_hashtable_const_iterator {
+
+ typedef std::forward_iterator_tag iterator_category; // very little defined!
+ typedef V value_type;
+- typedef typename value_alloc_type::difference_type difference_type;
+- typedef typename value_alloc_type::size_type size_type;
+- typedef typename value_alloc_type::const_reference reference;
+- typedef typename value_alloc_type::const_pointer pointer;
++ typedef typename value_alloc_traits::difference_type difference_type;
++ typedef typename value_alloc_traits::size_type size_type;
++ typedef const value_type& reference;
++ typedef typename value_alloc_traits::const_pointer pointer;
+
+ // "Real" constructor and default constructor
+ sparse_hashtable_const_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
+@@ -267,7 +270,9 @@ struct sparse_hashtable_const_iterator {
+ template <class V, class K, class HF, class ExK, class SetK, class EqK, class A>
+ struct sparse_hashtable_destructive_iterator {
+ private:
+- typedef typename A::template rebind<V>::other value_alloc_type;
++ typedef typename std::allocator_traits<A>::template rebind_alloc<V> value_alloc_type;
++ typedef std::allocator_traits<value_alloc_type> value_alloc_traits;
++
+
+ public:
+ typedef sparse_hashtable_destructive_iterator<V,K,HF,ExK,SetK,EqK,A> iterator;
+@@ -276,10 +281,10 @@ struct sparse_hashtable_destructive_iterator {
+
+ typedef std::forward_iterator_tag iterator_category; // very little defined!
+ typedef V value_type;
+- typedef typename value_alloc_type::difference_type difference_type;
+- typedef typename value_alloc_type::size_type size_type;
+- typedef typename value_alloc_type::reference reference;
+- typedef typename value_alloc_type::pointer pointer;
++ typedef typename value_alloc_traits::difference_type difference_type;
++ typedef typename value_alloc_traits::size_type size_type;
++ typedef value_type& reference;
++ typedef typename value_alloc_traits::pointer pointer;
+
+ // "Real" constructor and default constructor
+ sparse_hashtable_destructive_iterator(const
+@@ -320,7 +325,8 @@ template <class Value, class Key, class HashFcn,
+ class ExtractKey, class SetKey, class EqualKey, class Alloc>
+ class sparse_hashtable {
+ private:
+- typedef typename Alloc::template rebind<Value>::other value_alloc_type;
++ typedef typename std::allocator_traits<Alloc>::template rebind_alloc<Value> value_alloc_type;
++ typedef std::allocator_traits<value_alloc_type> value_alloc_traits;
+
+ public:
+ typedef Key key_type;
+@@ -329,12 +335,12 @@ class sparse_hashtable {
+ typedef EqualKey key_equal;
+ typedef Alloc allocator_type;
+
+- typedef typename value_alloc_type::size_type size_type;
+- typedef typename value_alloc_type::difference_type difference_type;
+- typedef typename value_alloc_type::reference reference;
+- typedef typename value_alloc_type::const_reference const_reference;
+- typedef typename value_alloc_type::pointer pointer;
+- typedef typename value_alloc_type::const_pointer const_pointer;
++ typedef typename value_alloc_traits::size_type size_type;
++ typedef typename value_alloc_traits::difference_type difference_type;
++ typedef value_type& reference;
++ typedef const value_type& const_reference;
++ typedef typename value_alloc_traits::pointer pointer;
++ typedef typename value_alloc_traits::const_pointer const_pointer;
+ typedef sparse_hashtable_iterator<Value, Key, HashFcn, ExtractKey,
+ SetKey, EqualKey, Alloc>
+ iterator;
+diff --git a/src/sparsehash/sparsetable b/src/sparsehash/sparsetable
+index 6259ebd..60c71dc 100644
+--- a/src/sparsehash/sparsetable
++++ b/src/sparsehash/sparsetable
+@@ -802,16 +802,17 @@ class destructive_two_d_iterator {
+ template <class T, u_int16_t GROUP_SIZE, class Alloc>
+ class sparsegroup {
+ private:
+- typedef typename Alloc::template rebind<T>::other value_alloc_type;
++ typedef typename std::allocator_traits<Alloc>::template rebind_alloc<T> value_alloc_type;
++ typedef std::allocator_traits<value_alloc_type> value_alloc_traits;
+
+ public:
+ // Basic types
+ typedef T value_type;
+ typedef Alloc allocator_type;
+- typedef typename value_alloc_type::reference reference;
+- typedef typename value_alloc_type::const_reference const_reference;
+- typedef typename value_alloc_type::pointer pointer;
+- typedef typename value_alloc_type::const_pointer const_pointer;
++ typedef value_type& reference;
++ typedef const value_type& const_reference;
++ typedef typename value_alloc_traits::pointer pointer;
++ typedef typename value_alloc_traits::const_pointer const_pointer;
+
+ typedef table_iterator<sparsegroup<T, GROUP_SIZE, Alloc> > iterator;
+ typedef const_table_iterator<sparsegroup<T, GROUP_SIZE, Alloc> >
+@@ -1289,8 +1290,9 @@ class sparsegroup {
+ template <class A>
+ class alloc_impl : public A {
+ public:
+- typedef typename A::pointer pointer;
+- typedef typename A::size_type size_type;
++ typedef std::allocator_traits<A> alloc_traits;
++ typedef typename alloc_traits::pointer pointer;
++ typedef typename alloc_traits::size_type size_type;
+
+ // Convert a normal allocator to one that has realloc_or_die()
+ alloc_impl(const A& a) : A(a) { }
+@@ -1362,20 +1364,21 @@ template <class T, u_int16_t GROUP_SIZE = DEFAULT_SPARSEGROUP_SIZE,
+ class Alloc = libc_allocator_with_realloc<T> >
+ class sparsetable {
+ private:
+- typedef typename Alloc::template rebind<T>::other value_alloc_type;
+- typedef typename Alloc::template rebind<
+- sparsegroup<T, GROUP_SIZE, value_alloc_type> >::other vector_alloc;
++ typedef typename std::allocator_traits<Alloc>::template rebind_alloc<T> value_alloc_type;
++ typedef std::allocator_traits<value_alloc_type> value_alloc_traits;
++ typedef typename std::allocator_traits<Alloc>::template rebind_alloc<
++ sparsegroup<T, GROUP_SIZE, value_alloc_type> > vector_alloc;
+
+ public:
+ // Basic types
+ typedef T value_type; // stolen from stl_vector.h
+ typedef Alloc allocator_type;
+- typedef typename value_alloc_type::size_type size_type;
+- typedef typename value_alloc_type::difference_type difference_type;
+- typedef typename value_alloc_type::reference reference;
+- typedef typename value_alloc_type::const_reference const_reference;
+- typedef typename value_alloc_type::pointer pointer;
+- typedef typename value_alloc_type::const_pointer const_pointer;
++ typedef typename value_alloc_traits::size_type size_type;
++ typedef typename value_alloc_traits::difference_type difference_type;
++ typedef value_type& reference;
++ typedef const value_type& const_reference;
++ typedef typename value_alloc_traits::pointer pointer;
++ typedef typename value_alloc_traits::const_pointer const_pointer;
+ typedef table_iterator<sparsetable<T, GROUP_SIZE, Alloc> > iterator;
+ typedef const_table_iterator<sparsetable<T, GROUP_SIZE, Alloc> >
+ const_iterator;
+@@ -1446,7 +1449,7 @@ class sparsetable {
+ return destructive_iterator(groups.begin(), groups.end(), groups.end());
+ }
+
+- typedef sparsegroup<value_type, GROUP_SIZE, allocator_type> group_type;
++ typedef sparsegroup<value_type, GROUP_SIZE, value_alloc_type> group_type;
+ typedef std::vector<group_type, vector_alloc > group_vector_type;
+
+ typedef typename group_vector_type::reference GroupsReference;
diff --git a/dev-cpp/sparsehash/metadata.xml b/dev-cpp/sparsehash/metadata.xml
new file mode 100644
index 000000000000..3948687cb7fd
--- /dev/null
+++ b/dev-cpp/sparsehash/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jsmolic@gentoo.org</email>
+ <name>Jakov Smolić</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-cpp/sparsehash/sparsehash-2.0.4-r2.ebuild b/dev-cpp/sparsehash/sparsehash-2.0.4-r2.ebuild
new file mode 100644
index 000000000000..8266844f7b1b
--- /dev/null
+++ b/dev-cpp/sparsehash/sparsehash-2.0.4-r2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="An extremely memory-efficient hash_map implementation"
+HOMEPAGE="https://github.com/sparsehash/sparsehash"
+SRC_URI="https://github.com/sparsehash/sparsehash/archive/${P}.tar.gz"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~ppc64 x86"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.0.3-fix-buildsystem.patch"
+ "${FILESDIR}/${P}-c++20.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}