mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
Merge updates from master
This commit is contained in:
501
dev-libs/protobuf-c/files/protobuf-c-1.4.1-protobuf-22.patch
Normal file
501
dev-libs/protobuf-c/files/protobuf-c-1.4.1-protobuf-22.patch
Normal file
@@ -0,0 +1,501 @@
|
||||
https://bugs.gentoo.org/912775
|
||||
https://github.com/protobuf-c/protobuf-c/issues/679
|
||||
https://github.com/protobuf-c/protobuf-c/issues/544
|
||||
https://github.com/protobuf-c/protobuf-c/pull/673
|
||||
|
||||
From ad48868dfe77592c4bacf936ade208f384a26b09 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Edmonds <edmonds@users.noreply.github.com>
|
||||
Date: Sun, 2 Jul 2023 17:48:18 -0400
|
||||
Subject: [PATCH 1/7] protoc-c: Remove GOOGLE_DISALLOW_EVIL_CONSTRUCTORS macro
|
||||
invocations
|
||||
|
||||
protobuf has removed the definition of this macro as of commit
|
||||
1595417dd3859bbff7d3d61ad0b6e39044d47489, so the invocation of this
|
||||
macro in protobuf-c breaks the build when building agaist the protobuf
|
||||
22.x or 23.x series.
|
||||
|
||||
Simply removing the macro invocations seems to be safe and doesn't break
|
||||
the build on Debian's protobuf 3.21.12 nor Debian's protobuf 3.6.1.3.
|
||||
---
|
||||
protoc-c/c_bytes_field.h | 2 --
|
||||
protoc-c/c_enum.h | 2 --
|
||||
protoc-c/c_enum_field.h | 2 --
|
||||
protoc-c/c_extension.h | 2 --
|
||||
protoc-c/c_field.h | 5 -----
|
||||
protoc-c/c_file.h | 2 --
|
||||
protoc-c/c_generator.h | 3 ---
|
||||
protoc-c/c_message.h | 2 --
|
||||
protoc-c/c_message_field.h | 4 ----
|
||||
protoc-c/c_primitive_field.h | 4 ----
|
||||
protoc-c/c_service.h | 2 --
|
||||
protoc-c/c_string_field.h | 2 --
|
||||
12 files changed, 32 deletions(-)
|
||||
|
||||
diff --git a/protoc-c/c_bytes_field.h b/protoc-c/c_bytes_field.h
|
||||
index bf873f0f..df91ef73 100644
|
||||
--- a/protoc-c/c_bytes_field.h
|
||||
+++ b/protoc-c/c_bytes_field.h
|
||||
@@ -87,8 +87,6 @@ class BytesFieldGenerator : public FieldGenerator {
|
||||
|
||||
private:
|
||||
std::map<std::string, std::string> variables_;
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(BytesFieldGenerator);
|
||||
};
|
||||
|
||||
|
||||
diff --git a/protoc-c/c_enum.h b/protoc-c/c_enum.h
|
||||
index 9c34b697..089c3366 100644
|
||||
--- a/protoc-c/c_enum.h
|
||||
+++ b/protoc-c/c_enum.h
|
||||
@@ -106,8 +106,6 @@ class EnumGenerator {
|
||||
private:
|
||||
const EnumDescriptor* descriptor_;
|
||||
std::string dllexport_decl_;
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumGenerator);
|
||||
};
|
||||
|
||||
} // namespace c
|
||||
diff --git a/protoc-c/c_enum_field.h b/protoc-c/c_enum_field.h
|
||||
index 3f8c005d..e0c96adf 100644
|
||||
--- a/protoc-c/c_enum_field.h
|
||||
+++ b/protoc-c/c_enum_field.h
|
||||
@@ -85,8 +85,6 @@ class EnumFieldGenerator : public FieldGenerator {
|
||||
|
||||
private:
|
||||
std::map<std::string, std::string> variables_;
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumFieldGenerator);
|
||||
};
|
||||
|
||||
|
||||
diff --git a/protoc-c/c_extension.h b/protoc-c/c_extension.h
|
||||
index 95413885..bda0bc55 100644
|
||||
--- a/protoc-c/c_extension.h
|
||||
+++ b/protoc-c/c_extension.h
|
||||
@@ -98,8 +98,6 @@ class ExtensionGenerator {
|
||||
const FieldDescriptor* descriptor_;
|
||||
std::string type_traits_;
|
||||
std::string dllexport_decl_;
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ExtensionGenerator);
|
||||
};
|
||||
|
||||
} // namespace c
|
||||
diff --git a/protoc-c/c_field.h b/protoc-c/c_field.h
|
||||
index 3cad35d3..623a872e 100644
|
||||
--- a/protoc-c/c_field.h
|
||||
+++ b/protoc-c/c_field.h
|
||||
@@ -103,9 +103,6 @@ class FieldGenerator {
|
||||
const std::string &type_macro,
|
||||
const std::string &descriptor_addr) const;
|
||||
const FieldDescriptor *descriptor_;
|
||||
-
|
||||
- private:
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGenerator);
|
||||
};
|
||||
|
||||
// Convenience class which constructs FieldGenerators for a Descriptor.
|
||||
@@ -121,8 +118,6 @@ class FieldGeneratorMap {
|
||||
std::unique_ptr<std::unique_ptr<FieldGenerator>[]> field_generators_;
|
||||
|
||||
static FieldGenerator* MakeGenerator(const FieldDescriptor* field);
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGeneratorMap);
|
||||
};
|
||||
|
||||
} // namespace c
|
||||
diff --git a/protoc-c/c_file.h b/protoc-c/c_file.h
|
||||
index 8dfd8ba0..db1866cd 100644
|
||||
--- a/protoc-c/c_file.h
|
||||
+++ b/protoc-c/c_file.h
|
||||
@@ -103,8 +103,6 @@ class FileGenerator {
|
||||
std::unique_ptr<std::unique_ptr<EnumGenerator>[]> enum_generators_;
|
||||
std::unique_ptr<std::unique_ptr<ServiceGenerator>[]> service_generators_;
|
||||
std::unique_ptr<std::unique_ptr<ExtensionGenerator>[]> extension_generators_;
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileGenerator);
|
||||
};
|
||||
|
||||
} // namespace c
|
||||
diff --git a/protoc-c/c_generator.h b/protoc-c/c_generator.h
|
||||
index ac1ffafe..b8b44aaa 100644
|
||||
--- a/protoc-c/c_generator.h
|
||||
+++ b/protoc-c/c_generator.h
|
||||
@@ -93,9 +93,6 @@ class PROTOC_C_EXPORT CGenerator : public CodeGenerator {
|
||||
const std::string& parameter,
|
||||
OutputDirectory* output_directory,
|
||||
std::string* error) const;
|
||||
-
|
||||
- private:
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CGenerator);
|
||||
};
|
||||
|
||||
} // namespace c
|
||||
diff --git a/protoc-c/c_message.h b/protoc-c/c_message.h
|
||||
index ea1c3ab3..0d8c6440 100644
|
||||
--- a/protoc-c/c_message.h
|
||||
+++ b/protoc-c/c_message.h
|
||||
@@ -136,8 +136,6 @@ class MessageGenerator {
|
||||
std::unique_ptr<std::unique_ptr<MessageGenerator>[]> nested_generators_;
|
||||
std::unique_ptr<std::unique_ptr<EnumGenerator>[]> enum_generators_;
|
||||
std::unique_ptr<std::unique_ptr<ExtensionGenerator>[]> extension_generators_;
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator);
|
||||
};
|
||||
|
||||
} // namespace c
|
||||
diff --git a/protoc-c/c_message_field.h b/protoc-c/c_message_field.h
|
||||
index 39b8d999..e485921a 100644
|
||||
--- a/protoc-c/c_message_field.h
|
||||
+++ b/protoc-c/c_message_field.h
|
||||
@@ -82,10 +82,6 @@ class MessageFieldGenerator : public FieldGenerator {
|
||||
void GenerateDescriptorInitializer(io::Printer* printer) const;
|
||||
std::string GetDefaultValue(void) const;
|
||||
void GenerateStaticInit(io::Printer* printer) const;
|
||||
-
|
||||
- private:
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator);
|
||||
};
|
||||
|
||||
|
||||
diff --git a/protoc-c/c_primitive_field.h b/protoc-c/c_primitive_field.h
|
||||
index a9eb893b..aa7079f9 100644
|
||||
--- a/protoc-c/c_primitive_field.h
|
||||
+++ b/protoc-c/c_primitive_field.h
|
||||
@@ -82,10 +82,6 @@ class PrimitiveFieldGenerator : public FieldGenerator {
|
||||
void GenerateDescriptorInitializer(io::Printer* printer) const;
|
||||
std::string GetDefaultValue(void) const;
|
||||
void GenerateStaticInit(io::Printer* printer) const;
|
||||
-
|
||||
- private:
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveFieldGenerator);
|
||||
};
|
||||
|
||||
} // namespace c
|
||||
diff --git a/protoc-c/c_service.h b/protoc-c/c_service.h
|
||||
index 27125a60..b51472f9 100644
|
||||
--- a/protoc-c/c_service.h
|
||||
+++ b/protoc-c/c_service.h
|
||||
@@ -100,8 +100,6 @@ class ServiceGenerator {
|
||||
|
||||
const ServiceDescriptor* descriptor_;
|
||||
std::map<std::string, std::string> vars_;
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ServiceGenerator);
|
||||
};
|
||||
|
||||
} // namespace c
|
||||
diff --git a/protoc-c/c_string_field.h b/protoc-c/c_string_field.h
|
||||
index 513cea75..b3a1a7ff 100644
|
||||
--- a/protoc-c/c_string_field.h
|
||||
+++ b/protoc-c/c_string_field.h
|
||||
@@ -87,8 +87,6 @@ class StringFieldGenerator : public FieldGenerator {
|
||||
|
||||
private:
|
||||
std::map<std::string, std::string> variables_;
|
||||
-
|
||||
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringFieldGenerator);
|
||||
};
|
||||
|
||||
|
||||
|
||||
From 7b90330bff40ab555bb3f0c5ee43ae208a275104 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Edmonds <edmonds@users.noreply.github.com>
|
||||
Date: Sun, 2 Jul 2023 19:35:43 -0400
|
||||
Subject: [PATCH 2/7] Use GOOGLE_LOG(FATAL) instead of GOOGLE_LOG(DFATAL)
|
||||
|
||||
Looking at where these identifiers are ultimately defined [0], it looks
|
||||
like "DFATAL" means either "ERROR" or "FATAL" depending on whether
|
||||
NDEBUG is defined. However, looking at the actual code sites in protoc-c
|
||||
where DFATAL is used, it's not clear why we couldn't just use FATAL
|
||||
unconditionally.
|
||||
|
||||
This is aimed at supporting newer versions of protobuf where the DFATAL
|
||||
identifier apparently no longer exists.
|
||||
|
||||
[0] https://github.com/protocolbuffers/protobuf/blob/v21.12/src/google/protobuf/stubs/logging.h#L61-L65
|
||||
---
|
||||
protoc-c/c_message.cc | 4 ++--
|
||||
protoc-c/c_primitive_field.cc | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/protoc-c/c_message.cc b/protoc-c/c_message.cc
|
||||
index 37e8bf8b..af2974ca 100755
|
||||
--- a/protoc-c/c_message.cc
|
||||
+++ b/protoc-c/c_message.cc
|
||||
@@ -499,7 +499,7 @@ GenerateMessageDescriptor(io::Printer* printer, bool gen_init) {
|
||||
// NOTE: not supported by protobuf
|
||||
vars["maybe_static"] = "";
|
||||
vars["field_dv_ctype"] = "{ ... }";
|
||||
- GOOGLE_LOG(DFATAL) << "Messages can't have default values!";
|
||||
+ GOOGLE_LOG(FATAL) << "Messages can't have default values!";
|
||||
break;
|
||||
case FieldDescriptor::CPPTYPE_STRING:
|
||||
if (fd->type() == FieldDescriptor::TYPE_BYTES || opt.string_as_bytes())
|
||||
@@ -521,7 +521,7 @@ GenerateMessageDescriptor(io::Printer* printer, bool gen_init) {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
- GOOGLE_LOG(DFATAL) << "Unknown CPPTYPE";
|
||||
+ GOOGLE_LOG(FATAL) << "Unknown CPPTYPE";
|
||||
break;
|
||||
}
|
||||
if (!already_defined)
|
||||
diff --git a/protoc-c/c_primitive_field.cc b/protoc-c/c_primitive_field.cc
|
||||
index 6990893f..1727af38 100644
|
||||
--- a/protoc-c/c_primitive_field.cc
|
||||
+++ b/protoc-c/c_primitive_field.cc
|
||||
@@ -143,7 +143,7 @@ std::string PrimitiveFieldGenerator::GetDefaultValue() const
|
||||
case FieldDescriptor::CPPTYPE_BOOL:
|
||||
return descriptor_->default_value_bool() ? "1" : "0";
|
||||
default:
|
||||
- GOOGLE_LOG(DFATAL) << "unexpected CPPTYPE in c_primitive_field";
|
||||
+ GOOGLE_LOG(FATAL) << "unexpected CPPTYPE in c_primitive_field";
|
||||
return "UNEXPECTED_CPPTYPE";
|
||||
}
|
||||
}
|
||||
|
||||
From 8d334a7204d98874cbf970cb96ab0c7b52e06695 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Edmonds <edmonds@users.noreply.github.com>
|
||||
Date: Sun, 2 Jul 2023 19:42:19 -0400
|
||||
Subject: [PATCH 3/7] Work around GOOGLE_* changes in protobuf >= 22.0
|
||||
|
||||
According to the protobuf migration guide as of June 2023 [0], protobuf
|
||||
22.0 (aka 4.22.0) took a dependency on something called "abseil" and as
|
||||
a result the "stubs" have been removed. This apparently caused all the
|
||||
uses of GOOGLE_* identifiers in protoc-c to fail when building against
|
||||
newer versions of protobuf.
|
||||
|
||||
This commit introduces compatibility definitions when building against
|
||||
protobuf >= 4.22.0 so that protobuf-c can build against older and newer
|
||||
versions of protobuf.
|
||||
|
||||
[0] https://web.archive.org/web/20230611151200/https://protobuf.dev/support/migration/#abseil
|
||||
---
|
||||
protoc-c/c_helpers.h | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/protoc-c/c_helpers.h b/protoc-c/c_helpers.h
|
||||
index 7598a4e1..adc7ee21 100644
|
||||
--- a/protoc-c/c_helpers.h
|
||||
+++ b/protoc-c/c_helpers.h
|
||||
@@ -178,6 +178,16 @@ inline int FieldSyntax(const FieldDescriptor* field) {
|
||||
#endif
|
||||
}
|
||||
|
||||
+// Work around changes in protobuf >= 22.x without breaking compilation against
|
||||
+// older protobuf versions.
|
||||
+#if GOOGLE_PROTOBUF_VERSION >= 4022000
|
||||
+# define GOOGLE_ARRAYSIZE ABSL_ARRAYSIZE
|
||||
+# define GOOGLE_CHECK_EQ ABSL_CHECK_EQ
|
||||
+# define GOOGLE_CHECK_EQ ABSL_CHECK_EQ
|
||||
+# define GOOGLE_DCHECK_GE ABSL_DCHECK_GE
|
||||
+# define GOOGLE_LOG ABSL_LOG
|
||||
+#endif
|
||||
+
|
||||
} // namespace c
|
||||
} // namespace compiler
|
||||
} // namespace protobuf
|
||||
|
||||
From 23d2246e0f6ebfc69232ab29b6c6325d8009d1f7 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Edmonds <edmonds@users.noreply.github.com>
|
||||
Date: Sun, 2 Jul 2023 19:48:17 -0400
|
||||
Subject: [PATCH 4/7] configure.ac: Require C++17 when building against
|
||||
protobuf >= 4.22.0
|
||||
|
||||
It's unclear from looking at the online protobuf documentation whether
|
||||
C++14 or C++17 is now required when building against newer versions of
|
||||
protobuf (or perhaps I'm looking in the wrong place), but experimentally
|
||||
it did not work for me with C++14.
|
||||
|
||||
This commit rewrites the versioned PKG_CHECK_MODULES checks in
|
||||
configure.ac to enforce the following policies:
|
||||
|
||||
* Require protobuf >= 2.6.0.
|
||||
* On protobuf >= 3.0.0, require C++11.
|
||||
* On protobuf >= 4.22.0, require C++17.
|
||||
---
|
||||
configure.ac | 26 ++++++++++++++++++++------
|
||||
1 file changed, 20 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 94d01dca..fa024b6a 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -76,12 +76,26 @@ AC_ARG_ENABLE([protoc],
|
||||
if test "x$enable_protoc" != "xno"; then
|
||||
AC_LANG_PUSH([C++])
|
||||
|
||||
- AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
|
||||
-
|
||||
- PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0],
|
||||
- [proto3_supported=yes],
|
||||
- [PKG_CHECK_MODULES([protobuf], [protobuf >= 2.6.0])]
|
||||
- )
|
||||
+ # PKG_CHECK_MODULES(prefix, list-of-modules, action-if-found, action-if-not-found)
|
||||
+ PKG_CHECK_MODULES(
|
||||
+ [protobuf],
|
||||
+ [protobuf >= 4.22.0],
|
||||
+ [
|
||||
+ proto3_supported=yes
|
||||
+ AX_CXX_COMPILE_STDCXX(17, noext, mandatory)
|
||||
+ ],
|
||||
+ [
|
||||
+ PKG_CHECK_MODULES(
|
||||
+ [protobuf],
|
||||
+ [protobuf >= 3.0.0],
|
||||
+ [
|
||||
+ proto3_supported=yes
|
||||
+ AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
|
||||
+ ],
|
||||
+ [
|
||||
+ PKG_CHECK_MODULES([protobuf], [protobuf >= 2.6.0])
|
||||
+ ])
|
||||
+ ])
|
||||
|
||||
save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$save_CPPFLAGS $protobuf_CFLAGS"
|
||||
|
||||
From 1937ba946b0a7a62c0f534e60f4d4799d7e0daed Mon Sep 17 00:00:00 2001
|
||||
From: Robert Edmonds <edmonds@users.noreply.github.com>
|
||||
Date: Sun, 2 Jul 2023 22:57:57 -0400
|
||||
Subject: [PATCH 5/7] protoc-c: Use FileDescriptorLegacy to obtain proto syntax
|
||||
version on protobuf >= 23.0
|
||||
|
||||
Use the newer "legacy" way of determining whether a file descriptor is
|
||||
using proto2 or proto3 syntax on protobuf >= 23.0.
|
||||
|
||||
Based on
|
||||
https://github.com/protobuf-c/protobuf-c/pull/556/commits/66574f3fd85a205eb7c90b790477d5415364209e
|
||||
but continues to support older versions of protobuf.
|
||||
|
||||
Unfortunately, since this is a "deprecated", "legacy" API it'll probably
|
||||
disappear in about five seconds.
|
||||
---
|
||||
protoc-c/c_file.cc | 4 ++++
|
||||
protoc-c/c_helpers.h | 8 ++++++++
|
||||
2 files changed, 12 insertions(+)
|
||||
|
||||
diff --git a/protoc-c/c_file.cc b/protoc-c/c_file.cc
|
||||
index 59c1824e..d211a3da 100644
|
||||
--- a/protoc-c/c_file.cc
|
||||
+++ b/protoc-c/c_file.cc
|
||||
@@ -119,7 +119,11 @@ void FileGenerator::GenerateHeader(io::Printer* printer) {
|
||||
|
||||
int min_header_version = 1000000;
|
||||
#if defined(HAVE_PROTO3)
|
||||
+# if GOOGLE_PROTOBUF_VERSION >= 4023000
|
||||
+ if (FileDescriptorLegacy(file_).syntax() == FileDescriptorLegacy::SYNTAX_PROTO3) {
|
||||
+# else
|
||||
if (file_->syntax() == FileDescriptor::SYNTAX_PROTO3) {
|
||||
+#endif
|
||||
min_header_version = 1003000;
|
||||
}
|
||||
#endif
|
||||
diff --git a/protoc-c/c_helpers.h b/protoc-c/c_helpers.h
|
||||
index adc7ee21..055528bf 100644
|
||||
--- a/protoc-c/c_helpers.h
|
||||
+++ b/protoc-c/c_helpers.h
|
||||
@@ -70,6 +70,10 @@
|
||||
#include <protobuf-c/protobuf-c.pb.h>
|
||||
#include <google/protobuf/io/printer.h>
|
||||
|
||||
+#if GOOGLE_PROTOBUF_VERSION >= 4023000
|
||||
+# include <google/protobuf/descriptor_legacy.h>
|
||||
+#endif
|
||||
+
|
||||
namespace google {
|
||||
namespace protobuf {
|
||||
namespace compiler {
|
||||
@@ -172,7 +176,11 @@ int compare_name_indices_by_name(const void*, const void*);
|
||||
// This wrapper is needed to be able to compile against protobuf2.
|
||||
inline int FieldSyntax(const FieldDescriptor* field) {
|
||||
#ifdef HAVE_PROTO3
|
||||
+# if GOOGLE_PROTOBUF_VERSION >= 4023000
|
||||
+ return FileDescriptorLegacy(field->file()).syntax() == FileDescriptorLegacy::SYNTAX_PROTO3 ? 3 : 2;
|
||||
+# else
|
||||
return field->file()->syntax() == FileDescriptor::SYNTAX_PROTO3 ? 3 : 2;
|
||||
+# endif
|
||||
#else
|
||||
return 2;
|
||||
#endif
|
||||
|
||||
From 7582b6e7d640636bf24c0f9dd2b386ed6fd41919 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Edmonds <edmonds@users.noreply.github.com>
|
||||
Date: Sun, 2 Jul 2023 22:58:48 -0400
|
||||
Subject: [PATCH 6/7] cmake: Require C++17
|
||||
|
||||
Newer versions of protobuf apparently don't build with older versions of
|
||||
the C++ standard.
|
||||
---
|
||||
build-cmake/CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/build-cmake/CMakeLists.txt b/build-cmake/CMakeLists.txt
|
||||
index 95f561c0..c71dd899 100644
|
||||
--- a/build-cmake/CMakeLists.txt
|
||||
+++ b/build-cmake/CMakeLists.txt
|
||||
@@ -96,7 +96,7 @@ if (MSVC AND NOT BUILD_SHARED_LIBS)
|
||||
endif (MSVC AND NOT BUILD_SHARED_LIBS)
|
||||
|
||||
IF(BUILD_PROTOC)
|
||||
-SET(CMAKE_CXX_STANDARD 11)
|
||||
+SET(CMAKE_CXX_STANDARD 17)
|
||||
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
SET(CMAKE_CXX_EXTENSIONS OFF)
|
||||
ADD_CUSTOM_COMMAND(OUTPUT protobuf-c/protobuf-c.pb.cc protobuf-c/protobuf-c.pb.h
|
||||
|
||||
From 5b0661f1e8a0e03f75cc6f53b8d42507e95403c9 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Edmonds <edmonds@users.noreply.github.com>
|
||||
Date: Mon, 3 Jul 2023 01:10:28 -0400
|
||||
Subject: [PATCH 7/7] configure.ac: Require C++17
|
||||
|
||||
There are some recent reports of strange build failures that might have
|
||||
been fixed by compiling in C++17 mode, so it might be a good idea to use
|
||||
C++17 in general, and not just when building against very recent
|
||||
protobuf versions.
|
||||
|
||||
Since it looks like we've lost protobuf < 3.0.0 support, configure.ac
|
||||
can be simplified a bit if we just use C++17 by default.
|
||||
---
|
||||
configure.ac | 23 ++---------------------
|
||||
1 file changed, 2 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index fa024b6a..586ac3c0 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -75,27 +75,8 @@ AC_ARG_ENABLE([protoc],
|
||||
AS_HELP_STRING([--disable-protoc], [Disable building protoc_c (also disables tests)]))
|
||||
if test "x$enable_protoc" != "xno"; then
|
||||
AC_LANG_PUSH([C++])
|
||||
-
|
||||
- # PKG_CHECK_MODULES(prefix, list-of-modules, action-if-found, action-if-not-found)
|
||||
- PKG_CHECK_MODULES(
|
||||
- [protobuf],
|
||||
- [protobuf >= 4.22.0],
|
||||
- [
|
||||
- proto3_supported=yes
|
||||
- AX_CXX_COMPILE_STDCXX(17, noext, mandatory)
|
||||
- ],
|
||||
- [
|
||||
- PKG_CHECK_MODULES(
|
||||
- [protobuf],
|
||||
- [protobuf >= 3.0.0],
|
||||
- [
|
||||
- proto3_supported=yes
|
||||
- AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
|
||||
- ],
|
||||
- [
|
||||
- PKG_CHECK_MODULES([protobuf], [protobuf >= 2.6.0])
|
||||
- ])
|
||||
- ])
|
||||
+ AX_CXX_COMPILE_STDCXX(17, noext, mandatory)
|
||||
+ PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0], [proto3_supported=yes])
|
||||
|
||||
save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$save_CPPFLAGS $protobuf_CFLAGS"
|
||||
56
dev-libs/protobuf-c/protobuf-c-1.4.1-r1.ebuild
Normal file
56
dev-libs/protobuf-c/protobuf-c-1.4.1-r1.ebuild
Normal file
@@ -0,0 +1,56 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools multilib-minimal
|
||||
|
||||
MY_PV="${PV/_/-}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
|
||||
DESCRIPTION="Protocol Buffers implementation in C"
|
||||
HOMEPAGE="https://github.com/protobuf-c/protobuf-c"
|
||||
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${MY_PV}/${MY_P}.tar.gz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
# Subslot == SONAME version
|
||||
SLOT="0/1.0.0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="static-libs test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="
|
||||
>=dev-libs/protobuf-3:0
|
||||
virtual/pkgconfig
|
||||
"
|
||||
DEPEND=">=dev-libs/protobuf-3:0=[${MULTILIB_USEDEP}]"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.4.0-include-path.patch
|
||||
"${FILESDIR}"/${P}-protobuf-22.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if ! use test; then
|
||||
eapply "${FILESDIR}"/${PN}-1.3.0-no-build-tests.patch
|
||||
fi
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myeconfargs=(
|
||||
$(use_enable static-libs static)
|
||||
)
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name '*.la' -type f -delete || die
|
||||
einstalldocs
|
||||
}
|
||||
@@ -19,7 +19,7 @@ SRC_URI="https://github.com/draios/sysdig/archive/${PV}.tar.gz -> ${P}.tar.gz
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="+modules"
|
||||
REQUIRED_USE="${LUA_REQUIRED_USE}"
|
||||
|
||||
@@ -45,7 +45,15 @@ DEPEND="${RDEPEND}
|
||||
PDEPEND="modules? ( =dev-util/scap-driver-${PV}* )"
|
||||
|
||||
src_prepare() {
|
||||
sed -i -e 's:-ggdb::' CMakeLists.txt || die
|
||||
# manually apply patch to falcosecurity-libs dependency
|
||||
pushd "${WORKDIR}" && \
|
||||
eapply -p0 "${FILESDIR}/${PV}-libs-gcc13.patch" && \
|
||||
popd
|
||||
|
||||
# force C++14 standard for libs & main
|
||||
sed -i -e 's:-std=c++0x:-std=c++14:' "${WORKDIR}"/libs-${LIBS_COMMIT}/cmake/modules/CompilerFlags.cmake || die
|
||||
sed -i -e 's:-std=c++0x:-std=c++14:' -e 's:-ggdb::' CMakeLists.txt || die
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
584
media-libs/opencv/opencv-4.7.0-r1.ebuild
Normal file
584
media-libs/opencv/opencv-4.7.0-r1.ebuild
Normal file
@@ -0,0 +1,584 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
inherit flag-o-matic java-pkg-opt-2 java-ant-2 cmake-multilib python-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="A collection of algorithms and sample code for various computer vision problems"
|
||||
HOMEPAGE="https://opencv.org"
|
||||
TINY_DNN_PV="1.0.0a3"
|
||||
SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
|
||||
dnnsamples? ( https://dev.gentoo.org/~amynka/snap/${PN}-3.4.0-res10_300x300-caffeemodel.tar.gz )
|
||||
download? ( https://github.com/rossbridger/opencv-extdep/archive/4.4.0.tar.gz -> ${PN}-4.4.0_extdep.tar.gz )
|
||||
contrib? (
|
||||
https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${P}_contrib.tar.gz
|
||||
contribdnn? ( https://dev.gentoo.org/~amynka/snap/${PN}-3.4.0-face_landmark_model.tar.gz )
|
||||
contribxfeatures2d? ( https://dev.gentoo.org/~amynka/snap/vgg_boostdesc-3.2.0.tar.gz )
|
||||
)"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0/${PV}" # subslot = libopencv* soname version
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
||||
IUSE="contrib contribcvv contribdnn contribfreetype contribhdf contribovis contribsfm contribxfeatures2d cuda debug dnnsamples download +eigen examples +features2d ffmpeg gdal gflags glog gphoto2 gstreamer gtk3 ieee1394 jpeg jpeg2k lapack lto opencl openexr opengl openmp opencvapps png +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine"
|
||||
|
||||
# The following lines are shamelessly stolen from ffmpeg-9999.ebuild with modifications
|
||||
ARM_CPU_FEATURES=(
|
||||
cpu_flags_arm_neon:NEON
|
||||
cpu_flags_arm_vfpv3:VFPV3
|
||||
)
|
||||
PPC_CPU_FEATURES=(
|
||||
cpu_flags_ppc_vsx:VSX
|
||||
cpu_flags_ppc_vsx3:VSX3
|
||||
)
|
||||
X86_CPU_FEATURES_RAW=(
|
||||
avx:AVX
|
||||
avx2:AVX2
|
||||
avx512f:AVX_512F
|
||||
f16c:FP16
|
||||
fma3:FMA3
|
||||
popcnt:POPCNT
|
||||
sse:SSE
|
||||
sse2:SSE2
|
||||
sse3:SSE3
|
||||
ssse3:SSSE3
|
||||
sse4_1:SSE4_1
|
||||
sse4_2:SSE4_2
|
||||
)
|
||||
X86_CPU_FEATURES=( ${X86_CPU_FEATURES_RAW[@]/#/cpu_flags_x86_} )
|
||||
CPU_FEATURES_MAP=(
|
||||
${ARM_CPU_FEATURES[@]}
|
||||
${PPC_CPU_FEATURES[@]}
|
||||
${X86_CPU_FEATURES[@]}
|
||||
)
|
||||
IUSE="${IUSE} ${CPU_FEATURES_MAP[@]%:*}"
|
||||
|
||||
# OpenGL needs gtk or Qt installed to activate, otherwise build system
|
||||
# will silently disable it Wwithout the user knowing, which defeats the
|
||||
# purpose of the opengl use flag.
|
||||
# cuda needs contrib, bug #701712
|
||||
REQUIRED_USE="
|
||||
cpu_flags_x86_avx2? ( cpu_flags_x86_f16c )
|
||||
cpu_flags_x86_f16c? ( cpu_flags_x86_avx )
|
||||
cuda? ( contrib
|
||||
tesseract? ( opencl ) )
|
||||
dnnsamples? ( examples )
|
||||
gflags? ( contrib )
|
||||
glog? ( contrib )
|
||||
contribcvv? ( contrib qt5 )
|
||||
contribdnn? ( contrib )
|
||||
contribfreetype? ( contrib )
|
||||
contribhdf? ( contrib )
|
||||
contribovis? ( contrib )
|
||||
contribsfm? ( contrib eigen gflags glog )
|
||||
contribxfeatures2d? ( contrib download )
|
||||
examples? ( contribdnn )
|
||||
java? ( python )
|
||||
opengl? ( qt5 )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )
|
||||
tesseract? ( contrib )
|
||||
?? ( gtk3 qt5 )"
|
||||
|
||||
# The following logic is intrinsic in the build system, but we do not enforce
|
||||
# it on the useflags since this just blocks emerging pointlessly:
|
||||
# openmp? ( !threads )
|
||||
|
||||
RDEPEND="
|
||||
app-arch/bzip2[${MULTILIB_USEDEP}]
|
||||
dev-libs/protobuf:=[${MULTILIB_USEDEP}]
|
||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
||||
cuda? ( dev-util/nvidia-cuda-toolkit:0= )
|
||||
contribhdf? ( sci-libs/hdf5:= )
|
||||
contribfreetype? (
|
||||
media-libs/freetype:2[${MULTILIB_USEDEP}]
|
||||
media-libs/harfbuzz:=[${MULTILIB_USEDEP}]
|
||||
)
|
||||
contribovis? ( dev-games/ogre:0/1.12 )
|
||||
ffmpeg? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] )
|
||||
gdal? ( sci-libs/gdal:= )
|
||||
gflags? ( dev-cpp/gflags:=[${MULTILIB_USEDEP}] )
|
||||
glog? ( dev-cpp/glog:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
gtk3? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
|
||||
)
|
||||
ieee1394? (
|
||||
media-libs/libdc1394:=[${MULTILIB_USEDEP}]
|
||||
sys-libs/libraw1394[${MULTILIB_USEDEP}]
|
||||
)
|
||||
java? ( >=virtual/jre-1.8:* )
|
||||
jpeg? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
|
||||
jpeg2k? ( media-libs/openjpeg:2=[${MULTILIB_USEDEP}] )
|
||||
lapack? (
|
||||
virtual/cblas
|
||||
>=virtual/lapack-3.10
|
||||
)
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
openexr? (
|
||||
dev-libs/imath:=
|
||||
media-libs/openexr:=
|
||||
)
|
||||
opengl? (
|
||||
virtual/opengl[${MULTILIB_USEDEP}]
|
||||
virtual/glu[${MULTILIB_USEDEP}]
|
||||
)
|
||||
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
|
||||
python? (
|
||||
${PYTHON_DEPS}
|
||||
dev-python/numpy[${PYTHON_USEDEP}]
|
||||
)
|
||||
qt5? (
|
||||
dev-qt/qtgui:5=
|
||||
dev-qt/qtwidgets:5=
|
||||
dev-qt/qttest:5=
|
||||
dev-qt/qtconcurrent:5=
|
||||
opengl? ( dev-qt/qtopengl:5= )
|
||||
)
|
||||
tesseract? ( app-text/tesseract[opencl=,${MULTILIB_USEDEP}] )
|
||||
threads? ( dev-cpp/tbb:=[${MULTILIB_USEDEP}] )
|
||||
tiff? ( media-libs/tiff:=[${MULTILIB_USEDEP}] )
|
||||
v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( media-libs/libva[${MULTILIB_USEDEP}] )
|
||||
vtk? ( sci-libs/vtk[rendering] )
|
||||
webp? ( media-libs/libwebp:=[${MULTILIB_USEDEP}] )
|
||||
xine? ( media-libs/xine-lib )"
|
||||
DEPEND="${RDEPEND}
|
||||
eigen? ( >=dev-cpp/eigen-3.3.8-r1:3 )
|
||||
java? ( >=virtual/jdk-1.8:* )"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
# [opencv4]
|
||||
/usr/include/opencv4/opencv2/cvconfig.h
|
||||
/usr/include/opencv4/opencv2/opencv_modules.hpp
|
||||
# [cudev]
|
||||
/usr/include/opencv4/opencv2/cudaarithm.hpp
|
||||
/usr/include/opencv4/opencv2/cudabgsegm.hpp
|
||||
/usr/include/opencv4/opencv2/cudacodec.hpp
|
||||
/usr/include/opencv4/opencv2/cudafeatures2d.hpp
|
||||
/usr/include/opencv4/opencv2/cudafilters.hpp
|
||||
/usr/include/opencv4/opencv2/cudaimgproc.hpp
|
||||
/usr/include/opencv4/opencv2/cudalegacy.hpp
|
||||
/usr/include/opencv4/opencv2/cudalegacy/NCVBroxOpticalFlow.hpp
|
||||
/usr/include/opencv4/opencv2/cudalegacy/NCVHaarObjectDetection.hpp
|
||||
/usr/include/opencv4/opencv2/cudalegacy/NCV.hpp
|
||||
/usr/include/opencv4/opencv2/cudalegacy/NCVPyramid.hpp
|
||||
/usr/include/opencv4/opencv2/cudalegacy/NPP_staging.hpp
|
||||
/usr/include/opencv4/opencv2/cudaobjdetect.hpp
|
||||
/usr/include/opencv4/opencv2/cudaoptflow.hpp
|
||||
/usr/include/opencv4/opencv2/cudastereo.hpp
|
||||
/usr/include/opencv4/opencv2/cudawarping.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/block/block.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/block/detail/reduce.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/block/detail/reduce_key_val.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/block/dynamic_smem.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/block/reduce.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/block/scan.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/block/vec_distance.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/common.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/expr/binary_func.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/expr/binary_op.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/expr/color.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/expr/deriv.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/expr/expr.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/expr/per_element_func.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/expr/reduction.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/expr/unary_func.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/expr/unary_op.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/expr/warping.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/functional/color_cvt.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/functional/detail/color_cvt.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/functional/functional.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/functional/tuple_adapter.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/copy.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/copy.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/histogram.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/integral.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/minmaxloc.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/pyr_down.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/pyr_up.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/reduce.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/reduce_to_column.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/reduce_to_row.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/split_merge.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/transform.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/detail/transpose.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/histogram.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/integral.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/pyramids.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/reduce.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/reduce_to_vec.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/split_merge.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/transform.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/grid/transpose.hpp
|
||||
/usr/include/opencv4/opencv2/cudev.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/constant.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/deriv.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/detail/gpumat.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/extrapolation.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/glob.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/gpumat.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/interpolation.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/lut.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/mask.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/remap.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/resize.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/texture.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/traits.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/transform.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/warping.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/ptr2d/zip.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/util/atomic.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/util/detail/tuple.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/util/detail/type_traits.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/util/limits.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/util/saturate_cast.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/util/simd_functions.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/util/tuple.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/util/type_traits.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/util/vec_math.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/util/vec_traits.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/warp/detail/reduce.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/warp/detail/reduce_key_val.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/warp/reduce.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/warp/scan.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/warp/shuffle.hpp
|
||||
/usr/include/opencv4/opencv2/cudev/warp/warp.hpp
|
||||
# [contrib_cvv]
|
||||
/usr/include/opencv4/opencv2/cvv/call_meta_data.hpp
|
||||
/usr/include/opencv4/opencv2/cvv/cvv.hpp
|
||||
/usr/include/opencv4/opencv2/cvv/debug_mode.hpp
|
||||
/usr/include/opencv4/opencv2/cvv/dmatch.hpp
|
||||
/usr/include/opencv4/opencv2/cvv/filter.hpp
|
||||
/usr/include/opencv4/opencv2/cvv/final_show.hpp
|
||||
/usr/include/opencv4/opencv2/cvv.hpp
|
||||
/usr/include/opencv4/opencv2/cvv/show_image.hpp
|
||||
# [contrib_hdf]
|
||||
/usr/include/opencv4/opencv2/hdf/hdf5.hpp
|
||||
/usr/include/opencv4/opencv2/hdf.hpp
|
||||
# [contrib_ovis]
|
||||
/usr/include/opencv4/opencv2/ovis.hpp
|
||||
# [contrib_sfm]
|
||||
/usr/include/opencv4/opencv2/sfm.hpp
|
||||
/usr/include/opencv4/opencv2/sfm/conditioning.hpp
|
||||
/usr/include/opencv4/opencv2/sfm/fundamental.hpp
|
||||
/usr/include/opencv4/opencv2/sfm/io.hpp
|
||||
/usr/include/opencv4/opencv2/sfm/numeric.hpp
|
||||
/usr/include/opencv4/opencv2/sfm/projection.hpp
|
||||
/usr/include/opencv4/opencv2/sfm/reconstruct.hpp
|
||||
/usr/include/opencv4/opencv2/sfm/robust.hpp
|
||||
/usr/include/opencv4/opencv2/sfm/simple_pipeline.hpp
|
||||
/usr/include/opencv4/opencv2/sfm/triangulation.hpp
|
||||
# [vtk]
|
||||
/usr/include/opencv4/opencv2/viz.hpp
|
||||
/usr/include/opencv4/opencv2/viz/types.hpp
|
||||
/usr/include/opencv4/opencv2/viz/viz3d.hpp
|
||||
/usr/include/opencv4/opencv2/viz/vizcore.hpp
|
||||
/usr/include/opencv4/opencv2/viz/widget_accessor.hpp
|
||||
/usr/include/opencv4/opencv2/viz/widgets.hpp
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-3.4.0-disable-download.patch
|
||||
"${FILESDIR}"/${PN}-3.4.1-cuda-add-relaxed-constexpr.patch
|
||||
"${FILESDIR}"/${PN}-4.1.2-opencl-license.patch
|
||||
"${FILESDIR}"/${PN}-4.4.0-disable-native-cpuflag-detect.patch
|
||||
"${FILESDIR}"/${PN}-4.5.0-link-with-cblas-for-lapack.patch
|
||||
"${FILESDIR}"/${PN}-4.6.0-fix-build-examples.patch # bug 830163, pending upstream PR #22245
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
||||
java-pkg-opt-2_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# https://bugs.gentoo.org/838274
|
||||
replace-flags -O3 -O2
|
||||
|
||||
cmake_src_prepare
|
||||
|
||||
# remove bundled stuff
|
||||
rm -r 3rdparty || die "Removing 3rd party components failed"
|
||||
sed -e '/add_subdirectory(.*3rdparty.*)/ d' \
|
||||
-i CMakeLists.txt cmake/*cmake || die
|
||||
|
||||
if use dnnsamples; then
|
||||
mv "${WORKDIR}/res10_300x300_ssd_iter_140000.caffemodel" "${WORKDIR}/${P}/samples/dnn/" || die
|
||||
fi
|
||||
|
||||
if use contrib; then
|
||||
cd "${WORKDIR}/${PN}_contrib-${PV}" || die
|
||||
if use contribxfeatures2d; then
|
||||
mv "${WORKDIR}"/*.i "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die
|
||||
fi
|
||||
fi
|
||||
|
||||
if use download; then
|
||||
mv "${WORKDIR}/${PN}-extdep-4.4.0" "${WORKDIR}/${P}/.cache/" || die
|
||||
fi
|
||||
|
||||
java-pkg-opt-2_src_prepare
|
||||
|
||||
# this really belongs in src_prepare() too
|
||||
JAVA_ANT_ENCODING="iso-8859-1"
|
||||
# set encoding so even this cmake build will pick it up.
|
||||
export ANT_OPTS+=" -Dfile.encoding=iso-8859-1"
|
||||
java-ant-2_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# please dont sort here, order is the same as in CMakeLists.txt
|
||||
GLOBALCMAKEARGS=(
|
||||
# for protobuf
|
||||
-DCMAKE_CXX_STANDARD=14
|
||||
|
||||
# Optional 3rd party components
|
||||
# ===================================================
|
||||
-DENABLE_DOWNLOAD=$(usex download)
|
||||
-DWITH_QUIRC=OFF # Do not have dependencies
|
||||
-DWITH_1394=$(usex ieee1394)
|
||||
# -DWITH_AVFOUNDATION=OFF # IOS
|
||||
-DWITH_VTK=$(multilib_native_usex vtk)
|
||||
-DWITH_EIGEN=$(usex eigen)
|
||||
-DWITH_VFW=OFF # Video windows support
|
||||
-DWITH_FFMPEG=$(usex ffmpeg)
|
||||
-DWITH_GSTREAMER=$(usex gstreamer)
|
||||
-DWITH_GSTREAMER_0_10=OFF # Don't want this
|
||||
-DWITH_GTK=$(usex gtk3)
|
||||
-DWITH_GTK_2_X=OFF # only want gtk3 nowadays
|
||||
-DWITH_IPP=OFF
|
||||
# Jasper was removed from tree because of security problems.
|
||||
# Upstream were/are making progress. We use openjpeg instead.
|
||||
# bug 734284
|
||||
-DWITH_JASPER=OFF
|
||||
-DWITH_JPEG=$(usex jpeg)
|
||||
-DWITH_OPENJPEG=$(usex jpeg2k)
|
||||
-DWITH_WEBP=$(usex webp)
|
||||
-DWITH_OPENEXR=$(multilib_native_usex openexr)
|
||||
-DWITH_OPENGL=$(usex opengl)
|
||||
-DWITH_OPENVX=OFF
|
||||
-DWITH_OPENNI=OFF # Not packaged
|
||||
-DWITH_OPENNI2=OFF # Not packaged
|
||||
-DWITH_PNG=$(usex png)
|
||||
-DWITH_GDCM=OFF
|
||||
-DWITH_PVAPI=OFF
|
||||
-DWITH_GIGEAPI=OFF
|
||||
-DWITH_ARAVIS=OFF
|
||||
-DWITH_QT=$(multilib_native_usex qt5 5 OFF)
|
||||
-DWITH_WIN32UI=OFF # Windows only
|
||||
# -DWITH_QUICKTIME=OFF
|
||||
# -DWITH_QTKIT=OFF
|
||||
-DWITH_TBB=$(usex threads)
|
||||
-DWITH_OPENMP=$(usex openmp)
|
||||
-DWITH_CSTRIPES=OFF
|
||||
-DWITH_PTHREADS_PF=ON
|
||||
-DWITH_TIFF=$(usex tiff)
|
||||
-DWITH_UNICAP=OFF # Not packaged
|
||||
-DWITH_V4L=$(usex v4l)
|
||||
-DWITH_LIBV4L=$(usex v4l)
|
||||
# -DWITH_DSHOW=ON # direct show supp
|
||||
-DWITH_MSMF=OFF
|
||||
-DWITH_XIMEA=OFF # Windows only
|
||||
-DWITH_XINE=$(multilib_native_usex xine)
|
||||
-DWITH_CLP=OFF
|
||||
-DWITH_OPENCL=$(usex opencl)
|
||||
-DWITH_OPENCL_SVM=OFF
|
||||
-DWITH_OPENCLAMDFFT=$(usex opencl)
|
||||
-DWITH_OPENCLAMDBLAS=$(usex opencl)
|
||||
-DWITH_DIRECTX=OFF
|
||||
-DWITH_INTELPERC=OFF
|
||||
-DWITH_IPP_A=OFF
|
||||
-DWITH_MATLAB=OFF
|
||||
-DWITH_VA=$(usex vaapi)
|
||||
-DWITH_VA_INTEL=$(usex vaapi)
|
||||
-DWITH_GDAL=$(multilib_native_usex gdal)
|
||||
-DWITH_GPHOTO2=$(usex gphoto2)
|
||||
-DWITH_LAPACK=$(multilib_native_usex lapack)
|
||||
-DWITH_ITT=OFF # 3dparty libs itt_notify
|
||||
# ===================================================
|
||||
# CUDA build components: nvidia-cuda-toolkit takes care of GCC version
|
||||
# ===================================================
|
||||
-DWITH_CUDA=$(multilib_native_usex cuda)
|
||||
-DWITH_CUBLAS=$(multilib_native_usex cuda)
|
||||
-DWITH_CUFFT=$(multilib_native_usex cuda)
|
||||
-DWITH_NVCUVID=OFF
|
||||
# -DWITH_NVCUVID=$(usex cuda)
|
||||
-DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "")
|
||||
# ===================================================
|
||||
# OpenCV build components
|
||||
# ===================================================
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DBUILD_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag
|
||||
-DBUILD_ANDROID_EXAMPLES=OFF
|
||||
-DBUILD_opencv_apps=$(usex opencvapps ON OFF)
|
||||
-DBUILD_DOCS=OFF # Doesn't install anyways.
|
||||
-DBUILD_EXAMPLES=$(multilib_native_usex examples)
|
||||
-DBUILD_PERF_TESTS=OFF
|
||||
-DBUILD_TESTS=$(multilib_native_usex testprograms)
|
||||
-DBUILD_WITH_DEBUG_INFO=$(usex debug)
|
||||
# -DBUILD_WITH_STATIC_CRT=OFF
|
||||
-DBUILD_WITH_DYNAMIC_IPP=OFF
|
||||
-DBUILD_FAT_JAVA_LIB=OFF
|
||||
# -DBUILD_ANDROID_SERVICE=OFF
|
||||
-DBUILD_CUDA_STUBS=$(multilib_native_usex cuda)
|
||||
-DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${PV}/modules" "")
|
||||
# ===================================================
|
||||
# OpenCV installation options
|
||||
# ===================================================
|
||||
-DINSTALL_CREATE_DISTRIB=OFF
|
||||
-DINSTALL_C_EXAMPLES=$(multilib_native_usex examples)
|
||||
-DINSTALL_TESTS=$(multilib_native_usex testprograms)
|
||||
-DINSTALL_PYTHON_EXAMPLES=$(multilib_native_usex examples)
|
||||
# -DINSTALL_ANDROID_EXAMPLES=OFF
|
||||
-DINSTALL_TO_MANGLED_PATHS=OFF
|
||||
-DOPENCV_GENERATE_PKGCONFIG=ON
|
||||
# opencv uses both ${CMAKE_INSTALL_LIBDIR} and ${LIB_SUFFIX}
|
||||
# to set its destination libdir
|
||||
-DLIB_SUFFIX=
|
||||
# ===================================================
|
||||
# OpenCV build options
|
||||
# ===================================================
|
||||
-DENABLE_CCACHE=OFF
|
||||
# bug 733796, but PCH is a risky game in CMake anyway
|
||||
-DENABLE_PRECOMPILED_HEADERS=OFF
|
||||
-DENABLE_SOLUTION_FOLDERS=OFF
|
||||
-DENABLE_PROFILING=OFF
|
||||
-DENABLE_COVERAGE=OFF
|
||||
|
||||
-DHAVE_opencv_java=$(multilib_native_usex java YES NO)
|
||||
-DENABLE_NOISY_WARNINGS=OFF
|
||||
-DOPENCV_WARNINGS_ARE_ERRORS=OFF
|
||||
-DENABLE_IMPL_COLLECTION=OFF
|
||||
-DENABLE_INSTRUMENTATION=OFF
|
||||
-DGENERATE_ABI_DESCRIPTOR=OFF
|
||||
-DDOWNLOAD_EXTERNAL_TEST_DATA=OFF
|
||||
-DENABLE_LTO=$(usex lto)
|
||||
# ===================================================
|
||||
# things we want to be hard off or not yet figured out
|
||||
# ===================================================
|
||||
-DBUILD_PACKAGE=OFF
|
||||
# ===================================================
|
||||
# Not building protobuf but update files bug #631418
|
||||
# ===================================================
|
||||
-DBUILD_PROTOBUF=OFF
|
||||
-DPROTOBUF_UPDATE_FILES=ON
|
||||
# ===================================================
|
||||
# things we want to be hard enabled not worth useflag
|
||||
# ===================================================
|
||||
-DCMAKE_SKIP_RPATH=ON
|
||||
-DOPENCV_DOC_INSTALL_PATH=
|
||||
-DBUILD_opencv_features2d=$(usex features2d ON OFF)
|
||||
)
|
||||
|
||||
# ==================================================
|
||||
# cpu flags, should solve 633900
|
||||
#===================================================
|
||||
local CPU_BASELINE=""
|
||||
for i in "${CPU_FEATURES_MAP[@]}" ; do
|
||||
if [[ ${ABI} != x86 || ${i%:*} != "cpu_flags_x86_avx2" ]]; then # workaround for Bug 747163
|
||||
use ${i%:*} && CPU_BASELINE="${CPU_BASELINE}${i#*:};"
|
||||
fi
|
||||
done
|
||||
|
||||
GLOBALCMAKEARGS+=(
|
||||
-DOPENCV_CPU_OPT_IMPLIES_IGNORE=ON
|
||||
-DCPU_BASELINE=${CPU_BASELINE}
|
||||
-DCPU_DISPATCH=
|
||||
)
|
||||
|
||||
# ===================================================
|
||||
# OpenCV Contrib Modules
|
||||
# ===================================================
|
||||
if use contrib; then
|
||||
GLOBALCMAKEARGS+=(
|
||||
-DBUILD_opencv_dnn=$(usex contribdnn ON OFF)
|
||||
-DTINYDNN_ROOT="${WORKDIR}/tiny-dnn-${TINY_DNN_PV}"
|
||||
-DBUILD_opencv_dnns_easily_fooled=OFF
|
||||
-DBUILD_opencv_xfeatures2d=$(usex contribxfeatures2d ON OFF)
|
||||
-DBUILD_opencv_cvv=$(usex contribcvv ON OFF)
|
||||
-DBUILD_opencv_hdf=$(multilib_native_usex contribhdf ON OFF)
|
||||
-DBUILD_opencv_sfm=$(usex contribsfm ON OFF)
|
||||
-DBUILD_opencv_freetype=$(usex contribfreetype ON OFF)
|
||||
-DBUILD_opencv_ovis=$(usex contribovis ON OFF)
|
||||
)
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
GLOBALCMAKEARGS+=(
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=$(usex !tesseract)
|
||||
)
|
||||
else
|
||||
GLOBALCMAKEARGS+=(
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=ON
|
||||
)
|
||||
fi
|
||||
fi
|
||||
|
||||
# workaround for bug 413429
|
||||
tc-export CC CXX
|
||||
|
||||
local mycmakeargs=(
|
||||
${GLOBALCMAKEARGS[@]}
|
||||
-DPYTHON_EXECUTABLE=OFF
|
||||
-DINSTALL_PYTHON_EXAMPLES=OFF
|
||||
-DBUILD_opencv_python2=OFF
|
||||
-DBUILD_opencv_python3=OFF
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
|
||||
# Copy face_land_model to ${CMAKE_BINARY_DIR}/${OPENCV_TEST_DATA_INSTALL_PATH}
|
||||
# TODO patch ocv_download to copy files into destination dirs
|
||||
if use contribdnn; then
|
||||
mkdir -p "${BUILD_DIR}"/share/OpenCV/testdata/cv/face/ || die
|
||||
cp "${WORKDIR}"/face_landmark_model.dat "${BUILD_DIR}"/share/OpenCV/testdata/cv/face/ || die
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
python_module_compile() {
|
||||
local BUILD_DIR="${orig_BUILD_DIR}"
|
||||
local mycmakeargs=( ${GLOBALCMAKEARGS[@]} )
|
||||
|
||||
# Set all python variables to load the correct Gentoo paths
|
||||
mycmakeargs+=(
|
||||
# python_setup alters PATH and sets this as wrapper
|
||||
# to the correct interpreter we are building for
|
||||
-DPYTHON_DEFAULT_EXECUTABLE=${EPYTHON}
|
||||
-DINSTALL_PYTHON_EXAMPLES=$(usex examples)
|
||||
)
|
||||
|
||||
# Regenerate cache file. Can't use rebuild_cache as it won't
|
||||
# have the Gentoo specific options.
|
||||
rm CMakeCache.txt || die "rm failed"
|
||||
cmake_src_configure
|
||||
cmake_src_compile
|
||||
cmake_src_install
|
||||
|
||||
# Remove compiled binary so new version compiles
|
||||
# Avoid conflicts with new module builds as build system doesn't
|
||||
# really support it.
|
||||
rm -r modules/python3 || die "rm failed"
|
||||
|
||||
python_optimize "${ED}"/$(python_get_sitedir)
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
cmake_src_install
|
||||
|
||||
# Build and install the python modules for all targets
|
||||
if multilib_is_native_abi && use python; then
|
||||
local orig_BUILD_DIR="${BUILD_DIR}"
|
||||
python_foreach_impl python_module_compile
|
||||
fi
|
||||
}
|
||||
29
net-libs/grpc/files/grpc-1.57.0-fix-cmake.patch
Normal file
29
net-libs/grpc/files/grpc-1.57.0-fix-cmake.patch
Normal file
@@ -0,0 +1,29 @@
|
||||
https://github.com/grpc/grpc/pull/33361
|
||||
|
||||
From 117dc80eb43021dd5619023ef6d02d0d6ec7ae7a Mon Sep 17 00:00:00 2001
|
||||
From: Carlo Cabrera <30379873+carlocab@users.noreply.github.com>
|
||||
Date: Wed, 7 Jun 2023 13:06:49 +0800
|
||||
Subject: [PATCH] [Build] fix `gRPCConfig.cmake`
|
||||
|
||||
Without this change, calling `find_package(gRPC REQUIRED)` errors out
|
||||
with
|
||||
|
||||
CMake Error at /opt/homebrew/lib/cmake/grpc/gRPCConfig.cmake:8 (find_dependency):
|
||||
Unknown CMake command "find_dependency".
|
||||
|
||||
The issue is that `find_dependency` is provided by the
|
||||
`CMakeFindDependencyMacro` module[^1], so we need to `include` it before
|
||||
use.
|
||||
|
||||
[^1]: https://cmake.org/cmake/help/v3.26/module/CMakeFindDependencyMacro.html
|
||||
--- a/cmake/protobuf.cmake
|
||||
+++ b/cmake/protobuf.cmake
|
||||
@@ -86,6 +86,6 @@ elseif(gRPC_PROTOBUF_PROVIDER STREQUAL "package")
|
||||
set(_gRPC_PROTOBUF_PROTOC_EXECUTABLE ${PROTOBUF_PROTOC_EXECUTABLE})
|
||||
endif()
|
||||
endif()
|
||||
- set(_gRPC_FIND_PROTOBUF "find_dependency(Protobuf CONFIG)")
|
||||
+ set(_gRPC_FIND_PROTOBUF "include(CMakeFindDependencyMacro)\nfind_dependency(Protobuf CONFIG)")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -43,6 +43,10 @@ RESTRICT="test"
|
||||
|
||||
S="${WORKDIR}/${PN}-${MY_PV}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.57.0-fix-cmake.patch
|
||||
)
|
||||
|
||||
soversion_check() {
|
||||
local core_sover cpp_sover
|
||||
# extract quoted number. line we check looks like this: 'set(gRPC_CPP_SOVERSION "1.37")'
|
||||
Reference in New Issue
Block a user