summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfred Wingate <parona@protonmail.com>2024-06-02 14:33:31 +0300
committerJoonas Niilola <juippis@gentoo.org>2024-06-09 09:24:01 +0300
commit6cdacfa91764b6ef1ae7789e64d853c27d92b23d (patch)
tree4a34bb9b70eb50c26e94557f57ad28ef4ae9c169 /media-video
parentmedia-gfx/librecad: add a patch to fix building with clang (diff)
downloadgentoo-6cdacfa91764b6ef1ae7789e64d853c27d92b23d.tar.gz
gentoo-6cdacfa91764b6ef1ae7789e64d853c27d92b23d.tar.bz2
gentoo-6cdacfa91764b6ef1ae7789e64d853c27d92b23d.zip
media-video/mkvtoolnix: fix libcxx incompatibility
Closes: https://bugs.gentoo.org/933417 Signed-off-by: Alfred Wingate <parona@protonmail.com> Closes: https://github.com/gentoo/gentoo/pull/36973 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'media-video')
-rw-r--r--media-video/mkvtoolnix/files/mkvtoolnix-84.0.0-fix-libcxx-c++20.patch44
-rw-r--r--media-video/mkvtoolnix/mkvtoolnix-84.0-r1.ebuild (renamed from media-video/mkvtoolnix/mkvtoolnix-84.0.ebuild)4
2 files changed, 48 insertions, 0 deletions
diff --git a/media-video/mkvtoolnix/files/mkvtoolnix-84.0.0-fix-libcxx-c++20.patch b/media-video/mkvtoolnix/files/mkvtoolnix-84.0.0-fix-libcxx-c++20.patch
new file mode 100644
index 000000000000..9a45aaa9cb9e
--- /dev/null
+++ b/media-video/mkvtoolnix/files/mkvtoolnix-84.0.0-fix-libcxx-c++20.patch
@@ -0,0 +1,44 @@
+https://bugs.gentoo.org/933417
+https://gitlab.com/mbunkus/mkvtoolnix/-/issues/3695
+https://gitlab.com/mbunkus/mkvtoolnix/-/commit/7e1bea9527616ab6ab38425e7290579f05dd9bb1
+
+From 7e1bea9527616ab6ab38425e7290579f05dd9bb1 Mon Sep 17 00:00:00 2001
+From: Moritz Bunkus <mo@bunkus.online>
+Date: Tue, 30 Apr 2024 16:05:35 +0200
+Subject: [PATCH] replace removed `std::result_of` with `std::invoke_result`
+
+`std::result_of` was deprecated in C++17 & removed in C++20. A lot of
+compilers still make it available even when running in C++20 mode,
+while others don't.
+
+Therefore replace it with equivalent use of `std::invoke_result`.
+
+Fixes #3695.
+--- a/NEWS.md
++++ b/NEWS.md
+@@ -1,3 +1,11 @@
++# Version ?
++
++## Bug fixes
++
++* fixed compilation of `src/common/sorting.h` with certain compilers due to
++ the deprecation & removal of `std::result_of<>` in C++20. Fixes #3695.
++
++
+ # Version 84.0 "Sleeper" 2024-04-28
+
+ ## New features and enhancements
+--- a/src/common/sorting.h
++++ b/src/common/sorting.h
+@@ -27,7 +27,7 @@ namespace mtx::sort {
+
+ template< typename Titer
+ , typename Tcriterion_maker
+- , typename Tcriterion = typename std::result_of< Tcriterion_maker(typename std::iterator_traits<Titer>::value_type) >::type
++ , typename Tcriterion = typename std::invoke_result< Tcriterion_maker, typename std::iterator_traits<Titer>::value_type >::type
+ , typename Tcomparator = std::less<Tcriterion>
+ >
+ void
+--
+GitLab
+
diff --git a/media-video/mkvtoolnix/mkvtoolnix-84.0.ebuild b/media-video/mkvtoolnix/mkvtoolnix-84.0-r1.ebuild
index 6731cce63b2d..f5eaf0cade1f 100644
--- a/media-video/mkvtoolnix/mkvtoolnix-84.0.ebuild
+++ b/media-video/mkvtoolnix/mkvtoolnix-84.0-r1.ebuild
@@ -73,6 +73,10 @@ if [[ ${PV} != *9999 ]] ; then
BDEPEND+="verify-sig? ( sec-keys/openpgp-keys-mkvtoolnix )"
fi
+PATCHES=(
+ "${FILESDIR}"/mkvtoolnix-84.0.0-fix-libcxx-c++20.patch
+)
+
src_prepare() {
default