summaryrefslogtreecommitdiff
path: root/dev-cpp/glog
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
commitbfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch)
tree0d7a74b4463ee387f9cf9368ceb1b757f694f72a /dev-cpp/glog
parentf716a9fe6455d39eef01e718aae68dae61c19704 (diff)
downloadbaldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'dev-cpp/glog')
-rw-r--r--dev-cpp/glog/Manifest3
-rw-r--r--dev-cpp/glog/files/glog-0.5.0-IsGoogleLoggingInitialized_public.patch106
-rw-r--r--dev-cpp/glog/files/glog-0.5.0-vmodule_levels_changeability.patch171
-rw-r--r--dev-cpp/glog/files/glog-0.6.0-cmake-4.patch18
-rw-r--r--dev-cpp/glog/files/glog-0.6.0-disable-symbolize-test.patch30
-rw-r--r--dev-cpp/glog/files/glog-0.6.0-try-fix-logging-test.patch36
-rw-r--r--dev-cpp/glog/glog-0.5.0.ebuild61
-rw-r--r--dev-cpp/glog/glog-0.6.0-r1.ebuild64
-rw-r--r--dev-cpp/glog/glog-0.6.0.ebuild56
-rw-r--r--dev-cpp/glog/glog-0.7.1.ebuild60
-rw-r--r--dev-cpp/glog/metadata.xml15
11 files changed, 620 insertions, 0 deletions
diff --git a/dev-cpp/glog/Manifest b/dev-cpp/glog/Manifest
new file mode 100644
index 000000000000..62d3e0cef14c
--- /dev/null
+++ b/dev-cpp/glog/Manifest
@@ -0,0 +1,3 @@
+DIST glog-0.5.0.tar.gz 183346 BLAKE2B 9109a9a4bd3c74ba5d4c1d9ed44ffe0e16d5d3b9b12bf9dd5d31c6e728292ea50f39b4e1b96d55fbb35653a448af4dc8a978e266a2b0f34261c5108099e90845 SHA512 445e4338f3d81cd0b065f2da9c6ce343c243263ca144cea424ef97531a4e9e09c06ffd6942ac01c5213a8003c75cfbbede3c4028d12f0134f23ff29314769c1a
+DIST glog-0.6.0.tar.gz 193267 BLAKE2B b42112cdfd54280ce7a9592c3af6b6e10dcb854fe9dbe0db7445c60801d1c12a240c4b3709b45e41aedeb8876d2e08fc3368296e088be6a66126858888cc274e SHA512 fd2c42583d0dd72c790a8cf888f328a64447c5fb9d99b2e2a3833d70c102cb0eb9ae874632c2732424cc86216c8a076a3e24b23a793eaddb5da8a1dc52ba9226
+DIST glog-0.7.1.tar.gz 182681 BLAKE2B d8bf2d4285e3be17a151d1f6f63dedbac9d5dd6667983d37e4b591be49751b6982abff7802dcd2c42651360d354c6c8ab1cc03c216ed1a3f7ba5cfb6a1a60dbf SHA512 2dabac87d44e4fe58beceb31b22be732b47df84c22f1af8c0e7d0f262de939889de1f16025c1256539f2833ef3393bc92034e983aa2886752bb8705801a68630
diff --git a/dev-cpp/glog/files/glog-0.5.0-IsGoogleLoggingInitialized_public.patch b/dev-cpp/glog/files/glog-0.5.0-IsGoogleLoggingInitialized_public.patch
new file mode 100644
index 000000000000..d08e4b17882f
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.5.0-IsGoogleLoggingInitialized_public.patch
@@ -0,0 +1,106 @@
+https://github.com/google/glog/issues/125
+https://github.com/google/glog/pull/651
+https://github.com/google/glog/commit/81e0d616edeb73cbd06d6c40bc4f90593ac0c5d1
+
+--- a/src/glog/logging.h.in
++++ b/src/glog/logging.h.in
+@@ -594,6 +594,9 @@
+ void* prefix_callback_data = NULL);
+ #endif
+
++// Check if google's logging library has been initialized.
++GOOGLE_GLOG_DLL_DECL bool IsGoogleLoggingInitialized();
++
+ // Shutdown google's logging library.
+ GOOGLE_GLOG_DLL_DECL void ShutdownGoogleLogging();
+
+--- a/src/logging_custom_prefix_unittest.cc
++++ b/src/logging_custom_prefix_unittest.cc
+@@ -221,11 +221,15 @@
+ LogWithLevels(0, 0, 0, 0); // simulate "before global c-tors"
+ const string early_stderr = GetCapturedTestStderr();
+
++ EXPECT_FALSE(IsGoogleLoggingInitialized());
++
+ // Setting a custom prefix generator (it will use the default format so that
+ // the golden outputs can be reused):
+ string prefix_attacher_data = "good data";
+ InitGoogleLogging(argv[0], &PrefixAttacher, static_cast<void*>(&prefix_attacher_data));
+
++ EXPECT_TRUE(IsGoogleLoggingInitialized());
++
+ RunSpecifiedBenchmarks();
+
+ FLAGS_logtostderr = true;
+@@ -992,8 +996,10 @@
+ base::SetLogger(GLOG_INFO,
+ new RecordDeletionLogger(&custom_logger_deleted,
+ base::GetLogger(GLOG_INFO)));
++ EXPECT_TRUE(IsGoogleLoggingInitialized());
+ ShutdownGoogleLogging();
+ EXPECT_TRUE(custom_logger_deleted);
++ EXPECT_FALSE(IsGoogleLoggingInitialized());
+ }
+
+ _START_GOOGLE_NAMESPACE_
+--- a/src/logging_unittest.cc
++++ b/src/logging_unittest.cc
+@@ -197,8 +197,12 @@
+ LogWithLevels(0, 0, 0, 0); // simulate "before global c-tors"
+ const string early_stderr = GetCapturedTestStderr();
+
++ EXPECT_FALSE(IsGoogleLoggingInitialized());
++
+ InitGoogleLogging(argv[0]);
+
++ EXPECT_TRUE(IsGoogleLoggingInitialized());
++
+ RunSpecifiedBenchmarks();
+
+ FLAGS_logtostderr = true;
+@@ -965,8 +969,10 @@
+ base::SetLogger(GLOG_INFO,
+ new RecordDeletionLogger(&custom_logger_deleted,
+ base::GetLogger(GLOG_INFO)));
++ EXPECT_TRUE(IsGoogleLoggingInitialized());
+ ShutdownGoogleLogging();
+ EXPECT_TRUE(custom_logger_deleted);
++ EXPECT_FALSE(IsGoogleLoggingInitialized());
+ }
+
+ _START_GOOGLE_NAMESPACE_
+--- a/src/utilities.cc
++++ b/src/utilities.cc
+@@ -62,6 +62,10 @@
+
+ static const char* g_program_invocation_short_name = NULL;
+
++bool IsGoogleLoggingInitialized() {
++ return g_program_invocation_short_name != NULL;
++}
++
+ _END_GOOGLE_NAMESPACE_
+
+ // The following APIs are all internal.
+@@ -176,10 +180,6 @@
+ }
+ }
+
+-bool IsGoogleLoggingInitialized() {
+- return g_program_invocation_short_name != NULL;
+-}
+-
+ #ifdef OS_WINDOWS
+ struct timeval {
+ long tv_sec, tv_usec;
+--- a/src/utilities.h
++++ b/src/utilities.h
+@@ -163,8 +163,6 @@
+
+ const char* ProgramInvocationShortName();
+
+-bool IsGoogleLoggingInitialized();
+-
+ int64 CycleClock_Now();
+
+ int64 UsecToCycles(int64 usec);
diff --git a/dev-cpp/glog/files/glog-0.5.0-vmodule_levels_changeability.patch b/dev-cpp/glog/files/glog-0.5.0-vmodule_levels_changeability.patch
new file mode 100644
index 000000000000..ed1f6a17d8df
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.5.0-vmodule_levels_changeability.patch
@@ -0,0 +1,171 @@
+https://github.com/google/glog/issues/649
+https://github.com/google/glog/pull/650
+https://github.com/google/glog/commit/86fea1ab254c463cbb72e5ce8bcc6855bc4e1e9c
+
+--- a/src/glog/vlog_is_on.h.in
++++ b/src/glog/vlog_is_on.h.in
+@@ -81,10 +81,10 @@
+ // parsing of --vmodule flag and/or SetVLOGLevel calls.
+ #define VLOG_IS_ON(verboselevel) \
+ __extension__ \
+- ({ static @ac_google_namespace@::int32* vlocal__ = NULL; \
++ ({ static @ac_google_namespace@::SiteFlag vlocal__{NULL, NULL, 0, NULL}; \
+ @ac_google_namespace@::int32 verbose_level__ = (verboselevel); \
+- (vlocal__ == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &FLAGS_v, \
+- __FILE__, verbose_level__) : *vlocal__ >= verbose_level__); \
++ (vlocal__.level == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &FLAGS_v, \
++ __FILE__, verbose_level__) : *vlocal__.level >= verbose_level__); \
+ })
+ #else
+ // GNU extensions not available, so we do not support --vmodule.
+@@ -105,6 +105,13 @@
+
+ // Various declarations needed for VLOG_IS_ON above: =========================
+
++struct SiteFlag {
++ @ac_google_namespace@::int32* level;
++ const char* base_name;
++ size_t base_len;
++ SiteFlag* next;
++};
++
+ // Helper routine which determines the logging info for a particalur VLOG site.
+ // site_flag is the address of the site-local pointer to the controlling
+ // verbosity level
+@@ -114,7 +121,7 @@
+ // We will return the return value for VLOG_IS_ON
+ // and if possible set *site_flag appropriately.
+ extern GOOGLE_GLOG_DLL_DECL bool InitVLOG3__(
+- @ac_google_namespace@::int32** site_flag,
++ @ac_google_namespace@::SiteFlag* site_flag,
+ @ac_google_namespace@::int32* site_default,
+ const char* fname,
+ @ac_google_namespace@::int32 verbose_level);
+--- a/src/logging_unittest.cc
++++ b/src/logging_unittest.cc
+@@ -98,6 +98,7 @@
+ static void TestRawLogging();
+ static void LogWithLevels(int v, int severity, bool err, bool alsoerr);
+ static void TestLoggingLevels();
++static void TestVLogModule();
+ static void TestLogString();
+ static void TestLogSink();
+ static void TestLogToString();
+@@ -223,6 +224,7 @@
+ TestLogging(true);
+ TestRawLogging();
+ TestLoggingLevels();
++ TestVLogModule();
+ TestLogString();
+ TestLogSink();
+ TestLogToString();
+@@ -453,6 +455,24 @@
+ LogWithLevels(1, GLOG_FATAL, false, true);
+ }
+
++int TestVlogHelper() {
++ if (VLOG_IS_ON(1)) {
++ return 1;
++ }
++ return 0;
++}
++
++void TestVLogModule() {
++ int c = TestVlogHelper();
++ EXPECT_EQ(0, c);
++
++#if defined(__GNUC__)
++ EXPECT_EQ(0, SetVLOGLevel("logging_unittest", 1));
++ c = TestVlogHelper();
++ EXPECT_EQ(1, c);
++#endif
++}
++
+ TEST(DeathRawCHECK, logging) {
+ ASSERT_DEATH(RAW_CHECK(false, "failure 1"),
+ "RAW: Check false failed: failure 1");
+--- a/src/vlog_is_on.cc
++++ b/src/vlog_is_on.cc
+@@ -125,6 +125,8 @@
+ // Pointer to head of the VModuleInfo list.
+ // It's a map from module pattern to logging level for those module(s).
+ static VModuleInfo* vmodule_list = 0;
++static SiteFlag* cached_site_list = 0;
++
+ // Boolean initialization flag.
+ static bool inited_vmodule = false;
+
+@@ -190,6 +192,23 @@
+ info->vlog_level = log_level;
+ info->next = vmodule_list;
+ vmodule_list = info;
++
++ SiteFlag** item_ptr = &cached_site_list;
++ SiteFlag* item = cached_site_list;
++
++ // We traverse the list fully because the pattern can match several items
++ // from the list.
++ while (item) {
++ if (SafeFNMatch_(module_pattern, pattern_len, item->base_name,
++ item->base_len)) {
++ // Redirect the cached value to its module override.
++ item->level = &info->vlog_level;
++ *item_ptr = item->next; // Remove the item from the list.
++ } else {
++ item_ptr = &item->next;
++ }
++ item = *item_ptr;
++ }
+ }
+ }
+ RAW_VLOG(1, "Set VLOG level for \"%s\" to %d", module_pattern, log_level);
+@@ -198,7 +217,7 @@
+
+ // NOTE: Individual VLOG statements cache the integer log level pointers.
+ // NOTE: This function must not allocate memory or require any locks.
+-bool InitVLOG3__(int32** site_flag, int32* site_default,
++bool InitVLOG3__(SiteFlag* site_flag, int32* level_default,
+ const char* fname, int32 verbose_level) {
+ MutexLock l(&vmodule_lock);
+ bool read_vmodule_flag = inited_vmodule;
+@@ -211,10 +230,17 @@
+ int old_errno = errno;
+
+ // site_default normally points to FLAGS_v
+- int32* site_flag_value = site_default;
++ int32* site_flag_value = level_default;
+
+ // Get basename for file
+ const char* base = strrchr(fname, '/');
++
++#ifdef _WIN32
++ if (!base) {
++ base = strrchr(fname, '\\');
++ }
++#endif
++
+ base = base ? (base+1) : fname;
+ const char* base_end = strchr(base, '.');
+ size_t base_length = base_end ? size_t(base_end - base) : strlen(base);
+@@ -244,7 +270,20 @@
+ ANNOTATE_BENIGN_RACE(site_flag,
+ "*site_flag may be written by several threads,"
+ " but the value will be the same");
+- if (read_vmodule_flag) *site_flag = site_flag_value;
++ if (read_vmodule_flag) {
++ site_flag->level = site_flag_value;
++ // If VLOG flag has been cached to the default site pointer,
++ // we want to add to the cached list in order to invalidate in case
++ // SetVModule is called afterwards with new modules.
++ // The performance penalty here is neglible, because InitVLOG3__ is called
++ // once per site.
++ if (site_flag_value == level_default && !site_flag->base_name) {
++ site_flag->base_name = base;
++ site_flag->base_len = base_length;
++ site_flag->next = cached_site_list;
++ cached_site_list = site_flag;
++ }
++ }
+
+ // restore the errno in case something recoverable went wrong during
+ // the initialization of the VLOG mechanism (see above note "protect the..")
diff --git a/dev-cpp/glog/files/glog-0.6.0-cmake-4.patch b/dev-cpp/glog/files/glog-0.6.0-cmake-4.patch
new file mode 100644
index 000000000000..0f17e373e2e3
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.6.0-cmake-4.patch
@@ -0,0 +1,18 @@
+https://bugs.gentoo.org/954083
+https://github.com/google/glog/commit/3411d58669fe07e70335b252299432a00d1e7c6c
+
+From 3411d58669fe07e70335b252299432a00d1e7c6c Mon Sep 17 00:00:00 2001
+From: Sergiu Deitsch <sergiu.deitsch@gmail.com>
+Date: Thu, 5 Oct 2023 00:48:10 +0200
+Subject: [PATCH] cmake: eliminate deprecation warning
+
+--- a/cmake/GetCacheVariables.cmake
++++ b/cmake/GetCacheVariables.cmake
+@@ -1,5 +1,5 @@
+ cmake_policy (PUSH)
+-cmake_policy (VERSION 3.3)
++cmake_policy (VERSION 3.16...3.27)
+
+ include (CMakeParseArguments)
+
+
diff --git a/dev-cpp/glog/files/glog-0.6.0-disable-symbolize-test.patch b/dev-cpp/glog/files/glog-0.6.0-disable-symbolize-test.patch
new file mode 100644
index 000000000000..8e9abc0ecd62
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.6.0-disable-symbolize-test.patch
@@ -0,0 +1,30 @@
+From 9ad08ac6cc7899947deb934a695d150f0ae360d0 Mon Sep 17 00:00:00 2001
+From: Rodrigo Queiro <rodrigoq@google.com>
+Date: Tue, 13 Sep 2022 11:53:24 +0200
+Subject: [PATCH] Remove symbolize Bazel test
+
+It is broken on Windows CI (#859) in a way that I don't understand.
+
+* asturmlechner 2024-11-28: backported to cmake
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/CMakeLists.txt 2022-04-05 00:03:27.000000000 +0200
++++ b/CMakeLists.txt 2024-11-28 22:58:18.584982147 +0100
+@@ -804,13 +804,13 @@
+ GLOG_STL_LOGGING_FOR_EXT_SLIST)
+ endif (HAVE_EXT_SLIST)
+
+- if (HAVE_SYMBOLIZE)
++ if (0)
+ add_executable (symbolize_unittest
+ src/symbolize_unittest.cc
+ )
+
+ target_link_libraries (symbolize_unittest PRIVATE ${_GLOG_TEST_LIBS})
+- endif (HAVE_SYMBOLIZE)
++ endif ()
+
+ add_executable (demangle_unittest
+ src/demangle_unittest.cc
diff --git a/dev-cpp/glog/files/glog-0.6.0-try-fix-logging-test.patch b/dev-cpp/glog/files/glog-0.6.0-try-fix-logging-test.patch
new file mode 100644
index 000000000000..b3bec4801f28
--- /dev/null
+++ b/dev-cpp/glog/files/glog-0.6.0-try-fix-logging-test.patch
@@ -0,0 +1,36 @@
+From 45d7978dafceca8200fa4434d762f62642dc7cb4 Mon Sep 17 00:00:00 2001
+From: Sergiu Deitsch <sergiud@users.noreply.github.com>
+Date: Tue, 2 Jan 2024 13:01:42 +0100
+Subject: [PATCH] fix(tests): prevent clang from optimizing new away (#1017)
+
+---
+ src/logging_unittest.cc | 13 +++++++++++--
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/src/logging_unittest.cc b/src/logging_unittest.cc
+index cb1c657e7..40da9a44d 100644
+--- a/src/logging_unittest.cc
++++ b/src/logging_unittest.cc
+@@ -355,12 +355,19 @@ struct NewHook {
+ }
+ };
+
++namespace {
++int* allocInt() { return new int; }
++} // namespace
++
+ TEST(DeathNoAllocNewHook, logging) {
+ // tests that NewHook used below works
+ NewHook new_hook;
+- ASSERT_DEATH({
+- new int;
+- }, "unexpected new");
++ // Avoid unused warnings under MinGW
++ //
++ // NOTE MSVC produces warning C4551 here if we do not take the address of the
++ // function explicitly.
++ (void)&allocInt;
++ ASSERT_DEATH({ allocInt(); }, "unexpected new");
+ }
+
+ void TestRawLogging() {
diff --git a/dev-cpp/glog/glog-0.5.0.ebuild b/dev-cpp/glog/glog-0.5.0.ebuild
new file mode 100644
index 000000000000..a77fce16b22e
--- /dev/null
+++ b/dev-cpp/glog/glog-0.5.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 2011-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+inherit cmake-multilib
+
+if [[ "${PV}" == "9999" ]]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/google/glog"
+fi
+
+DESCRIPTION="Google Logging library"
+HOMEPAGE="https://github.com/google/glog"
+if [[ "${PV}" == "9999" ]]; then
+ SRC_URI=""
+else
+ SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="gflags +libunwind llvm-libunwind test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="gflags? ( dev-cpp/gflags:0=[${MULTILIB_USEDEP}] )
+ libunwind? (
+ llvm-libunwind? ( llvm-runtimes/libunwind:0=[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:0=[${MULTILIB_USEDEP}] )
+ )"
+DEPEND="${RDEPEND}
+ test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-IsGoogleLoggingInitialized_public.patch"
+ "${FILESDIR}/${P}-vmodule_levels_changeability.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_TESTING=$(usex test ON OFF)
+ -DWITH_CUSTOM_PREFIX=ON
+ -DWITH_GFLAGS=$(usex gflags ON OFF)
+ -DWITH_GTEST=$(usex test ON OFF)
+ -DWITH_UNWIND=$(usex libunwind ON OFF)
+ )
+ if use libunwind; then
+ mycmakeargs+=(
+ -DUnwind_PLATFORM_LIBRARY="${ESYSROOT}/usr/$(get_libdir)/libunwind.so"
+ )
+ fi
+
+ cmake-multilib_src_configure
+}
+
+src_test() {
+ # See bug #832355
+ cmake-multilib_src_test -j1
+}
diff --git a/dev-cpp/glog/glog-0.6.0-r1.ebuild b/dev-cpp/glog/glog-0.6.0-r1.ebuild
new file mode 100644
index 000000000000..ee9f161d6d89
--- /dev/null
+++ b/dev-cpp/glog/glog-0.6.0-r1.ebuild
@@ -0,0 +1,64 @@
+# Copyright 2011-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib
+
+DESCRIPTION="Google Logging library"
+HOMEPAGE="https://github.com/google/glog"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/google/glog"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+ KEYWORDS="amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+fi
+
+LICENSE="BSD"
+SLOT="0/1"
+IUSE="gflags +libunwind llvm-libunwind test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ gflags? ( dev-cpp/gflags:=[${MULTILIB_USEDEP}] )
+ libunwind? (
+ llvm-libunwind? ( llvm-runtimes/libunwind:=[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.6.0-cmake-4.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_TESTING=$(usex test ON OFF)
+ -DWITH_GFLAGS=$(usex gflags ON OFF)
+ -DWITH_GTEST=$(usex test ON OFF)
+ -DWITH_UNWIND=$(usex libunwind ON OFF)
+ )
+
+ cmake-multilib_src_configure
+}
+
+src_test() {
+ # Tests have a history of being brittle: bug #863599
+ CMAKE_SKIP_TESTS=(
+ logging
+ stacktrace
+ symbolize
+ log_severity_conversion
+ includes_vlog_is_on
+ includes_raw_logging
+ )
+
+ cmake-multilib_src_test -j1
+}
diff --git a/dev-cpp/glog/glog-0.6.0.ebuild b/dev-cpp/glog/glog-0.6.0.ebuild
new file mode 100644
index 000000000000..259c361ffcf9
--- /dev/null
+++ b/dev-cpp/glog/glog-0.6.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2011-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+inherit cmake-multilib
+
+if [[ "${PV}" == "9999" ]]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/google/glog"
+fi
+
+DESCRIPTION="Google Logging library"
+HOMEPAGE="https://github.com/google/glog"
+if [[ "${PV}" == "9999" ]]; then
+ SRC_URI=""
+else
+ SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+LICENSE="BSD"
+SLOT="0/1"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="gflags +libunwind llvm-libunwind test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="gflags? ( dev-cpp/gflags:0=[${MULTILIB_USEDEP}] )
+ libunwind? (
+ llvm-libunwind? ( llvm-runtimes/libunwind:0=[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:0=[${MULTILIB_USEDEP}] )
+ )
+"
+DEPEND="${RDEPEND}
+ test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-disable-symbolize-test.patch" # bug 863599
+ "${FILESDIR}/${P}-try-fix-logging-test.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_TESTING=$(usex test ON OFF)
+ -DWITH_GFLAGS=$(usex gflags ON OFF)
+ -DWITH_GTEST=$(usex test ON OFF)
+ -DWITH_UNWIND=$(usex libunwind ON OFF)
+ )
+
+ cmake-multilib_src_configure
+}
+
+src_test() {
+ cmake-multilib_src_test -j1
+}
diff --git a/dev-cpp/glog/glog-0.7.1.ebuild b/dev-cpp/glog/glog-0.7.1.ebuild
new file mode 100644
index 000000000000..51cde4ee2d29
--- /dev/null
+++ b/dev-cpp/glog/glog-0.7.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 2011-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib
+
+DESCRIPTION="Google Logging library"
+HOMEPAGE="https://github.com/google/glog"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/google/glog"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0/2"
+IUSE="gflags +libunwind llvm-libunwind test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ gflags? ( dev-cpp/gflags:=[${MULTILIB_USEDEP}] )
+ libunwind? (
+ llvm-libunwind? ( llvm-runtimes/libunwind:=[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )
+"
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_TESTING=$(usex test ON OFF)
+ -DWITH_GFLAGS=$(usex gflags ON OFF)
+ -DWITH_GTEST=$(usex test ON OFF)
+ -DWITH_UNWIND=$(usex libunwind ON OFF)
+ )
+
+ cmake-multilib_src_configure
+}
+
+src_test() {
+ # Tests have a history of being brittle: bug #863599
+ CMAKE_SKIP_TESTS=(
+ logging
+ stacktrace
+ symbolize
+ log_severity_conversion
+ includes_vlog_is_on
+ includes_raw_logging
+ )
+
+ cmake-multilib_src_test -j1
+}
diff --git a/dev-cpp/glog/metadata.xml b/dev-cpp/glog/metadata.xml
new file mode 100644
index 000000000000..bbbd4c7947cd
--- /dev/null
+++ b/dev-cpp/glog/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>cjk@gentoo.org</email>
+ <name>Cjk</name>
+ </maintainer>
+ <use>
+ <flag name="gflags">Use <pkg>dev-cpp/gflags</pkg> for flag parsing</flag>
+ <flag name="libunwind">Use libunwind library (<pkg>sys-libs/libunwind</pkg> or <pkg>llvm-runtimes/libunwind</pkg>) instead of built-in fallback implementation for stack unwinding</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">google/glog</remote-id>
+ </upstream>
+</pkgmetadata>