summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-video/mkvtoolnix/files/mkvtoolnix-68.0.0-fmt-9.patch293
-rw-r--r--media-video/mkvtoolnix/mkvtoolnix-68.0.0-r1.ebuild (renamed from media-video/mkvtoolnix/mkvtoolnix-68.0.0.ebuild)2
2 files changed, 295 insertions, 0 deletions
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 <mo@bunkus.online>
+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
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() {