commit:     f540e45e45c69b1ea77737aaeae82338c7cae4b6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jul  8 07:27:47 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jul  8 07:41:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f540e45e

media-video/mkvtoolnix: fix build with newer fmt; add missing qtsvg dep

Closes: https://bugs.gentoo.org/856700
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../mkvtoolnix/files/mkvtoolnix-68.0.0-fmt-9.patch | 293 +++++++++++++++++++++
 ...x-68.0.0.ebuild => mkvtoolnix-68.0.0-r1.ebuild} |   2 +
 2 files changed, 295 insertions(+)

diff --git a/media-video/mkvtoolnix/files/mkvtoolnix-68.0.0-fmt-9.patch 
b/media-video/mkvtoolnix/files/mkvtoolnix-68.0.0-fmt-9.patch
new file mode 100644
index 000000000000..a0e3c1780db9
--- /dev/null
+++ b/media-video/mkvtoolnix/files/mkvtoolnix-68.0.0-fmt-9.patch
@@ -0,0 +1,293 @@
+https://gitlab.com/mbunkus/mkvtoolnix/-/commit/1e1076e43fe8f38e33246fff3ce8651a93c371d9
+https://bugs.gentoo.org/856700
+
+From: Moritz Bunkus <[email protected]>
+Date: Thu, 7 Jul 2022 13:11:34 +0200
+Subject: [PATCH] fix compilation with fmt v9.0.0
+
+Prior to v9 all types that were outputtable via `operator<<` to
+`std::ostream` could be formatted. v9 changed that to require explicit
+tagging of those types that should work this way. This commit adds
+those tags for the types that are currently formatted via fmt.
+
+Fixes #3366.
+--- a/src/common/aac.h
++++ b/src/common/aac.h
+@@ -221,3 +221,7 @@ protected:
+ using parser_cptr = std::shared_ptr<parser_c>;
+ 
+ } // namespace mtx::aac
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<mtx::aac::header_c> : ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/common/bcp47.h
++++ b/src/common/bcp47.h
+@@ -176,3 +176,8 @@ struct hash<mtx::bcp47::language_c> {
+ };
+ 
+ } // namespace mtx::bcp47
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<mtx::bcp47::language_c::extension_t> : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::bcp47::language_c>              : 
ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/common/bluray/track_chapter_names.cpp
++++ b/src/common/bluray/track_chapter_names.cpp
+@@ -18,6 +18,7 @@
+ #include "common/bluray/track_chapter_names.h"
+ #include "common/bluray/util.h"
+ #include "common/debugging.h"
++#include "common/path.h"
+ #include "common/qt.h"
+ #include "common/xml/xml.h"
+ 
+--- a/src/common/error.h
++++ b/src/common/error.h
+@@ -45,3 +45,7 @@ operator <<(std::ostream &out,
+ }
+ 
+ }
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<mtx::exception> : ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/common/fourcc.h
++++ b/src/common/fourcc.h
+@@ -83,3 +83,7 @@ operator <<(std::ostream &out,
+   out << fourcc.str();
+   return out;
+ }
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<fourcc_c> : ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/common/kax_analyzer.h
++++ b/src/common/kax_analyzer.h
+@@ -239,3 +239,7 @@ public:
+   virtual void debug_abort_process();
+ };
+ using console_kax_analyzer_cptr = std::shared_ptr<console_kax_analyzer_c>;
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<mtx::kax_analyzer_x> : ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/common/math_fwd.h
++++ b/src/common/math_fwd.h
+@@ -18,6 +18,11 @@
+ using mtx_mp_rational_t = 
boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, 
boost::multiprecision::et_off>;
+ using mtx_mp_int_t      = 
boost::multiprecision::number<boost::multiprecision::backends::gmp_int,      
boost::multiprecision::et_off>;
+ 
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<mtx_mp_rational_t> : ostream_formatter {};
++template <> struct fmt::formatter<mtx_mp_int_t>      : ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
++
+ namespace mtx {
+ 
+ // This conversion function exists to work around incomplete
+--- a/src/common/mm_io_x.h
++++ b/src/common/mm_io_x.h
+@@ -155,3 +155,16 @@ operator <<(std::ostream &out,
+ }
+ 
+ }}
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<mtx::mm_io::exception>                : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::mm_io::end_of_file_x>            : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::mm_io::seek_x>                   : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::mm_io::read_write_x>             : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::mm_io::open_x>                   : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::mm_io::wrong_read_write_access_x>: 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::mm_io::insufficient_space_x>     : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::mm_io::create_directory_x>       : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::mm_io::text::exception>          : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::mm_io::text::invalid_utf8_char_x>: 
ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/common/opus.h
++++ b/src/common/opus.h
+@@ -91,3 +91,9 @@ operator <<(std::ostream &out,
+ }
+ 
+ }
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<mtx::opus::decode_error> : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::opus::id_header_t>  : 
ostream_formatter {};
++template <> struct fmt::formatter<mtx::opus::toc_t>        : 
ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/common/path.h
++++ b/src/common/path.h
+@@ -36,3 +36,7 @@ std::filesystem::path absolute(std::filesystem::path const 
&p);
+ void create_directories(std::filesystem::path const &path, std::error_code 
&error_code);
+ 
+ } // namespace mtx::fs
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<std::filesystem::path> : ostream_formatter 
{};
++#endif  // FMT_VERSION >= 90000
+--- a/src/common/qt.h
++++ b/src/common/qt.h
+@@ -102,3 +102,7 @@ operator <<(std::wostream &out,
+   out << string.toStdWString();
+   return out;
+ }
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<QString> : ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/common/strings/formatting.h
++++ b/src/common/strings/formatting.h
+@@ -129,3 +129,7 @@ operator <<(std::ostream &out,
+   out << mtx::string::format_timestamp(timestamp);
+   return out;
+ }
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<basic_timestamp_c<int64_t>> : 
ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/common/translation.h
++++ b/src/common/translation.h
+@@ -80,4 +80,8 @@ operator <<(std::ostream &out,
+   return out;
+ }
+ 
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<translatable_string_c> : ostream_formatter 
{};
++#endif
++
+ void init_locales(std::string locale = "");
+--- a/src/input/r_flac.cpp
++++ b/src/input/r_flac.cpp
+@@ -240,7 +240,7 @@ 
flac_reader_c::handle_picture_metadata(FLAC__StreamMetadata const *metadata) {
+   mxdebug_if(m_debug, fmt::format("flac_reader:   MIME type:   {0}\n", 
attachment->mime_type));
+   mxdebug_if(m_debug, fmt::format("flac_reader:   data length: {0}\n", 
picture.data_length));
+   mxdebug_if(m_debug, fmt::format("flac_reader:   ID:          {0}\n", 
m_attachment_id));
+-  mxdebug_if(m_debug, fmt::format("flac_reader:   mode:        {0}\n", 
attach_mode));
++  mxdebug_if(m_debug, fmt::format("flac_reader:   mode:        {0}\n", 
static_cast<unsigned int>(attach_mode)));
+ 
+   if (attachment->mime_type.empty() || attachment->name.empty())
+     return;
+@@ -276,7 +276,7 @@ flac_reader_c::flac_metadata_cb(const FLAC__StreamMetadata 
*metadata) {
+                              : metadata->type == 
FLAC__METADATA_TYPE_VORBIS_COMMENT ? "VORBIS COMMENT"
+                              : metadata->type == FLAC__METADATA_TYPE_CUESHEET 
      ? "CUESHEET"
+                              :                                                
        "UNDEFINED",
+-                             metadata->type, metadata->length));
++                             static_cast<unsigned int>(metadata->type), 
metadata->length));
+       break;
+   }
+ }
+--- a/src/input/r_flv.h
++++ b/src/input/r_flv.h
+@@ -173,3 +173,8 @@ protected:
+ 
+   unsigned int add_track(char type);
+ };
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<flv_header_t> : ostream_formatter {};
++template <> struct fmt::formatter<flv_tag_c>    : ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/input/r_mpeg_ps.h
++++ b/src/input/r_mpeg_ps.h
+@@ -244,3 +244,8 @@ private:
+   void sort_tracks();
+   void calculate_global_timestamp_offset();
+ };
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<mpeg_ps_id_t>     : ostream_formatter {};
++template <> struct fmt::formatter<mpeg_ps_packet_c> : ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/input/r_ogm_flac.cpp
++++ b/src/input/r_ogm_flac.cpp
+@@ -104,7 +104,7 @@ fhe_metadata_cb(const FLAC__StreamDecoder *,
+                              : metadata->type == 
FLAC__METADATA_TYPE_VORBIS_COMMENT ? "VORBIS COMMENT"
+                              : metadata->type == FLAC__METADATA_TYPE_CUESHEET 
      ? "CUESHEET"
+                              :                                                
        "UNDEFINED",
+-                             metadata->type, metadata->length));
++                             static_cast<unsigned int>(metadata->type), 
metadata->length));
+       break;
+   }
+ }
+--- a/src/input/r_qtmp4.h
++++ b/src/input/r_qtmp4.h
+@@ -590,3 +590,7 @@ protected:
+ 
+   virtual void process_atom(qt_atom_t const &parent, int level, 
std::function<void(qt_atom_t const &)> const &handler);
+ };
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<qt_atom_t> : ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/merge/item_selector.h
++++ b/src/merge/item_selector.h
+@@ -139,3 +139,7 @@ operator <<(std::ostream &out,
+ 
+   return out;
+ }
++
++#if FMT_VERSION >= 90000
++template <typename T> struct fmt::formatter<item_selector_c<T>> : 
ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/propedit/attachment_target.cpp
++++ b/src/propedit/attachment_target.cpp
+@@ -83,14 +83,14 @@ attachment_target_c::dump_info()
+                      "    selector_num_arg: {6}\n"
+                      "    selector_string_arg: {7}\n",
+                      m_file_name,
+-                     m_command,
++                     static_cast<unsigned int>(m_command),
+                        ac_add     == m_command ? "add"
+                      : ac_delete  == m_command ? "delete"
+                      : ac_replace == m_command ? "replace"
+                      : ac_update  == m_command ? "update"
+                      :                           "unknown",
+                      m_options,
+-                     m_selector_type,
++                     static_cast<unsigned int>(m_selector_type),
+                        st_id        == m_selector_type ? "ID"
+                      : st_uid       == m_selector_type ? "UID"
+                      : st_name      == m_selector_type ? "name"
+--- a/src/propedit/attachment_target.h
++++ b/src/propedit/attachment_target.h
+@@ -130,3 +130,7 @@ operator <<(std::ostream &out,
+ 
+   return out;
+ }
++
++#if FMT_VERSION >= 90000
++template <> struct fmt::formatter<attachment_target_c::options_t> : 
ostream_formatter {};
++#endif  // FMT_VERSION >= 90000
+--- a/src/propedit/tag_target.cpp
++++ b/src/propedit/tag_target.cpp
+@@ -104,10 +104,10 @@ tag_target_c::dump_info()
+                      "    selection_track_type: {3}\n"
+                      "    track_uid:            {4}\n"
+                      "    file_name:            {5}\n",
+-                     static_cast<int>(m_operation_mode),
+-                     static_cast<int>(m_selection_mode),
++                     static_cast<unsigned int>(m_operation_mode),
++                     static_cast<unsigned int>(m_selection_mode),
+                      m_selection_param,
+-                     m_selection_track_type,
++                     static_cast<unsigned int>(m_selection_track_type),
+                      m_track_uid,
+                      m_file_name));
+ 
+--- a/src/propedit/track_target.cpp
++++ b/src/propedit/track_target.cpp
+@@ -78,9 +78,9 @@ track_target_c::dump_info()
+                      "    selection_track_type: {2}\n"
+                      "    track_uid:            {3}\n"
+                      "    file_name:            {4}\n",
+-                     static_cast<int>(m_selection_mode),
++                     static_cast<unsigned int>(m_selection_mode),
+                      m_selection_param,
+-                     m_selection_track_type,
++                     static_cast<unsigned int>(m_selection_track_type),
+                      m_track_uid,
+                      m_file_name));
+ 
+GitLab

diff --git a/media-video/mkvtoolnix/mkvtoolnix-68.0.0.ebuild 
b/media-video/mkvtoolnix/mkvtoolnix-68.0.0-r1.ebuild
similarity index 98%
rename from media-video/mkvtoolnix/mkvtoolnix-68.0.0.ebuild
rename to media-video/mkvtoolnix/mkvtoolnix-68.0.0-r1.ebuild
index cc6409014b5c..1f997ac7d980 100644
--- a/media-video/mkvtoolnix/mkvtoolnix-68.0.0.ebuild
+++ b/media-video/mkvtoolnix/mkvtoolnix-68.0.0-r1.ebuild
@@ -38,6 +38,7 @@ RDEPEND="
        sys-libs/zlib
        dvd? ( media-libs/libdvdread:= )
        dev-qt/qtcore:5
+       dev-qt/qtsvg:5
        gui? (
                dev-qt/qtgui:5
                dev-qt/qtnetwork:5
@@ -67,6 +68,7 @@ BDEPEND="
 PATCHES=(
        "${FILESDIR}"/mkvtoolnix-58.0.0-qt5dbus.patch
        "${FILESDIR}"/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch
+       "${FILESDIR}"/${P}-fmt-9.patch
 )
 
 src_prepare() {

Reply via email to