summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Pronin <dannftk@yandex.ru>2024-11-29 10:51:58 +0300
committerSam James <sam@gentoo.org>2024-12-12 05:39:18 +0000
commitb8cca5206e08045a5aae0dd807962abcb3c28533 (patch)
tree3ec892d86b3d9ac37373afe784e0594f1fccd04b /dev-cpp/glibmm
parentdev-util/conan: add a new package version 2.10.1 (diff)
downloadgentoo-b8cca5206e08045a5aae0dd807962abcb3c28533.tar.gz
gentoo-b8cca5206e08045a5aae0dd807962abcb3c28533.tar.bz2
gentoo-b8cca5206e08045a5aae0dd807962abcb3c28533.zip
dev-cpp/glibmm: remove method that is not used any where
Closes: https://bugs.gentoo.org/945375 Signed-off-by: Denis Pronin <dannftk@yandex.ru> Closes: https://github.com/gentoo/gentoo/pull/39525 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-cpp/glibmm')
-rw-r--r--dev-cpp/glibmm/files/glibmm-2.78.1-libcxx-fix.patch52
-rw-r--r--dev-cpp/glibmm/glibmm-2.78.1.ebuild2
2 files changed, 54 insertions, 0 deletions
diff --git a/dev-cpp/glibmm/files/glibmm-2.78.1-libcxx-fix.patch b/dev-cpp/glibmm/files/glibmm-2.78.1-libcxx-fix.patch
new file mode 100644
index 000000000000..0b7cc7ee28d4
--- /dev/null
+++ b/dev-cpp/glibmm/files/glibmm-2.78.1-libcxx-fix.patch
@@ -0,0 +1,52 @@
+# This patch is fetched from the upstream and dedicated to making compiling with clang-19 possible
+# Bug related https://bugs.gentoo.org/945375
+# The patch is added by Denis Pronin <dannftk@yandex.ru>
+
+From 72c5ad98d858fa4fc0183a5ec1a61bb48ef5bd95 Mon Sep 17 00:00:00 2001
+From: Kjell Ahlstedt <kjellahlstedt@gmail.com>
+Date: Fri, 22 Mar 2024 10:32:45 +0100
+Subject: [PATCH] Gio::content_type_guess(): Remove most of an unneccesary
+ overload
+
+clang 19.0.0 does not like the overload that takes a
+const std::basic_string<guchar>&. This overload should have been removed
+16 years ago by commit 84135b93a20e6c9fe652849959d3ff90474c99bb.
+It can't be removed completely now, because that would break ABI.
+Remove as much as possible.
+Fixes #118
+---
+ gio/giomm/contenttype.cc | 15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/gio/giomm/contenttype.cc b/gio/giomm/contenttype.cc
+index abe67337..8eb1bd71 100644
+--- a/gio/giomm/contenttype.cc
++++ b/gio/giomm/contenttype.cc
+@@ -84,15 +84,18 @@ content_type_from_mime_type(const Glib::ustring& mime_type)
+ g_content_type_from_mime_type(mime_type.c_str()));
+ }
+
++//TODO: When we can break ABI, remove this content_type_guess() overload.
++// Commit https://gitlab.gnome.org/GNOME/glibmm/-/commit/84135b93a20e6c9fe652849959d3ff90474c99bb
++// removed it from contenttype.h, but not from contenttype.cc.
++// For the time being, it's replaced by a function that does almost nothing.
++// clang 19.0.0 does not like a complete version.
++// See issue https://gitlab.gnome.org/GNOME/glibmm/-/issues/118
+ Glib::ustring
+ content_type_guess(
+- const std::string& filename, const std::basic_string<guchar>& data, bool& result_uncertain)
++ const std::string& /*filename*/, const std::basic_string<guchar>& /*data*/, bool& result_uncertain)
+ {
+- gboolean c_result_uncertain = FALSE;
+- const gchar* c_filename = filename.empty() ? nullptr : filename.c_str();
+- gchar* cresult = g_content_type_guess(c_filename, data.c_str(), data.size(), &c_result_uncertain);
+- result_uncertain = c_result_uncertain;
+- return Glib::convert_return_gchar_ptr_to_ustring(cresult);
++ result_uncertain = true;
++ return Glib::ustring();
+ }
+
+ Glib::ustring
+--
+2.45.2
+
diff --git a/dev-cpp/glibmm/glibmm-2.78.1.ebuild b/dev-cpp/glibmm/glibmm-2.78.1.ebuild
index a8e3d22a6aa2..b5b3c5c985a0 100644
--- a/dev-cpp/glibmm/glibmm-2.78.1.ebuild
+++ b/dev-cpp/glibmm/glibmm-2.78.1.ebuild
@@ -29,6 +29,8 @@ BDEPEND="
)
"
+PATCHES=( "${FILESDIR}"/${P}-libcxx-fix.patch )
+
src_prepare() {
default