commit:     6cdacfa91764b6ef1ae7789e64d853c27d92b23d
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Sun Jun  2 11:33:31 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Sun Jun  9 06:24:01 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6cdacfa9

media-video/mkvtoolnix: fix libcxx incompatibility

Closes: https://bugs.gentoo.org/933417
Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/36973
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 .../files/mkvtoolnix-84.0.0-fix-libcxx-c++20.patch | 44 ++++++++++++++++++++++
 ...olnix-84.0.ebuild => mkvtoolnix-84.0-r1.ebuild} |  4 ++
 2 files changed, 48 insertions(+)

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
similarity index 97%
rename from media-video/mkvtoolnix/mkvtoolnix-84.0.ebuild
rename to 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
 

Reply via email to