commit:     8de73ec9de78a5fb682033e708171fe98c78aee2
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Thu Mar 21 10:17:28 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Apr  1 07:17:33 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8de73ec9

media-video/mkvtoolnix: add 83.0

Bug: https://bugs.gentoo.org/927380
Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-video/mkvtoolnix/Manifest                    |   2 +
 .../files/mkvtoolnix-83.0.0-fix-disable-gui.patch  |  88 +++++++++++++
 media-video/mkvtoolnix/mkvtoolnix-83.0.ebuild      | 139 +++++++++++++++++++++
 3 files changed, 229 insertions(+)

diff --git a/media-video/mkvtoolnix/Manifest b/media-video/mkvtoolnix/Manifest
index 3f890c6e5ab0..e9d8ebdda53e 100644
--- a/media-video/mkvtoolnix/Manifest
+++ b/media-video/mkvtoolnix/Manifest
@@ -3,3 +3,5 @@ DIST mkvtoolnix-81.0.tar.xz 11067288 BLAKE2B 
64bf3cd1872e3b67c6932ed29527e1dff2f
 DIST mkvtoolnix-81.0.tar.xz.sig 833 BLAKE2B 
37e63e92628d3dcb6e9c9129e09dbef1d1d4e80515a05a9a5684d5d542ef54b024e76f1fac50b242e32172ef24493123b6103ae79fa411eefea7704cd63070d5
 SHA512 
3975c0b217318fdd9eeed23694c0e25536c694fa6cef63560b48ed79db7827be41cbe9a2cd8d8c1d2555beb436a5191a5ad21f0e5e73f93f2ca1c09be13826cb
 DIST mkvtoolnix-82.0.tar.xz 11067168 BLAKE2B 
a910898b4097ee8115f3354653d65d913e28fc0271c2869a72d4b0f70a6a17848b28c33ae0aee4d88b42bb911bf6d825211c723c47f7c1eee0f5204705e12223
 SHA512 
fd384bfc4350e972f44e2b488fb066641cf7e73860f179d4423a548f870521ad8414f53a98f67ad8809f261657fe378c5bed96069620a73be511bcd31dfa933f
 DIST mkvtoolnix-82.0.tar.xz.sig 833 BLAKE2B 
53c96149a41a46892cfeb43ca786cd8c166747e508f3fa2aceca9520652741f738adad5f6e8809f97c5086d678bcd15d4f95f1ca964df5465b450679eb18eb2a
 SHA512 
abea27631ea4f08182e86f99f1a8e38769e0ebc5a5d66426da7024348e6d00c0044644c107a982d902142167805c4771d318cc4ec66e4d9cea115a92806e8e95
+DIST mkvtoolnix-83.0.tar.xz 11278152 BLAKE2B 
f57b398c747d90021f2a13e58df23655e898a0bb68ad7f050f7a3fe0018866570fb81780f2d68a8c9ed06b66882578b5a9144c3be1bb9b79bc5f79e13f06bde5
 SHA512 
e70236249f9f72c4ffeab8222c03cdf373a25643f1b106a1abb695184152be8bb22e3fb5dc67b48e6193d9ac37d0b9b2ea317a31214b92648ac75a82c99f9b5d
+DIST mkvtoolnix-83.0.tar.xz.sig 833 BLAKE2B 
3eddaa4941d84937a7b771bea66be52979437abb54cd178eb6d24b30628db3ee0ad72f23bea7419a7bc13cfd4f84d6d004b46ad63bad0eeeef8fd05f37bcaf4f
 SHA512 
6d3ac46a40139fff67da61c77a802df243764d8c26c55e3b951d407fd3147bcf985f8a62c21b18c12fabe0afdc535a3449a6bfff3f15a5779b2aed1f94fe0ab7

diff --git 
a/media-video/mkvtoolnix/files/mkvtoolnix-83.0.0-fix-disable-gui.patch 
b/media-video/mkvtoolnix/files/mkvtoolnix-83.0.0-fix-disable-gui.patch
new file mode 100644
index 000000000000..015a92fbd78f
--- /dev/null
+++ b/media-video/mkvtoolnix/files/mkvtoolnix-83.0.0-fix-disable-gui.patch
@@ -0,0 +1,88 @@
+https://bugs.gentoo.org/927380
+
+Allow non-gui builds to configure without gui dependencies.
+
+--- a/ac/qt6.m4
++++ b/ac/qt6.m4
+@@ -113,13 +113,15 @@ HEADERS = configure.h
+ SOURCES = configure.cpp
+ EOT
+ 
+-  "$QMAKE6" -makefile -nocache $QMAKE_SPEC configure.pro 2>&5 > /dev/null
+-  result2=$?
++  if test x"$enable_gui" = xyes; then
++    "$QMAKE6" -makefile -nocache $QMAKE_SPEC configure.pro 2>&5 > /dev/null
++    result2=$?
+ 
+-  if test $result2 != 0; then
+-    cd "$old_wd"
+-    AC_MSG_RESULT(no: not all of the required Qt6 modules were found (needed: 
core gui widgets network concurrent svg multimedia))
+-    return
++    if test $result2 != 0; then
++      cd "$old_wd"
++      AC_MSG_RESULT(no: not all of the required Qt6 modules were found 
(needed: core gui widgets network concurrent svg multimedia))
++      return
++    fi
+   fi
+ 
+   if test -f Makefile.Release; then
+@@ -135,7 +137,7 @@ EOT
+ 
+   cd "$old_wd"
+ 
+-  if test $result != 0 -o $result2 != 0 -o $result3 != 0; then
++  if test $result != 0 -o $result3 != 0; then
+     AC_MSG_CHECKING(for Qt 6)
+     AC_MSG_RESULT(no: qmake6 couldn't be run for a dummy project)
+ 
+@@ -169,9 +171,15 @@ EOT
+ 
+   qt_searchpath="$qt_libexecdir:$qt_bindir:$PATH"
+ 
+-  QT_CFLAGS="`$ac_cv_path_EGREP '^DEFINES *=' "$qmake_dir/Makefile" | sed 
's/^DEFINES *= *//'`"
+-  QT_CFLAGS="$QT_CFLAGS `$ac_cv_path_EGREP '^CXXFLAGS *=' 
"$qmake_dir/Makefile" | sed -e 's/^CXXFLAGS *= *//' -e 's/-pipe//g' -e 
's/-O.//g' -e 's/ -f[[a-z]][[^ ]]*//g' -e 's/ -W[[^ ]]*//g' -e 's/-std=[[^ 
]]*//g' -e 's/\$([[^)]]*)//g'`"
+-  QT_INCFLAGS="`$ac_cv_path_EGREP '^INCPATH *=' "$qmake_dir/Makefile" | sed 
-e 's/^INCPATH *= *//'`"
++  if test x"$enable_gui" = xyes; then
++    QT_CFLAGS="`$ac_cv_path_EGREP '^DEFINES *=' "$qmake_dir/Makefile" | sed 
's/^DEFINES *= *//'`"
++    QT_CFLAGS="$QT_CFLAGS `$ac_cv_path_EGREP '^CXXFLAGS *=' 
"$qmake_dir/Makefile" | sed -e 's/^CXXFLAGS *= *//' -e 's/-pipe//g' -e 
's/-O.//g' -e 's/ -f[[a-z]][[^ ]]*//g' -e 's/ -W[[^ ]]*//g' -e 's/-std=[[^ 
]]*//g' -e 's/\$([[^)]]*)//g'`"
++    QT_INCFLAGS="`$ac_cv_path_EGREP '^INCPATH *=' "$qmake_dir/Makefile" | sed 
-e 's/^INCPATH *= *//'`"
++  else
++    QT_CFLAGS="`$ac_cv_path_EGREP '^DEFINES *=' "$qmake_dir/Makefile.non_gui" 
| sed 's/^DEFINES *= *//'`"
++    QT_CFLAGS="$QT_CFLAGS `$ac_cv_path_EGREP '^CXXFLAGS *=' 
"$qmake_dir/Makefile.non_gui" | sed -e 's/^CXXFLAGS *= *//' -e 's/-pipe//g' -e 
's/-O.//g' -e 's/ -f[[a-z]][[^ ]]*//g' -e 's/ -W[[^ ]]*//g' -e 's/-std=[[^ 
]]*//g' -e 's/\$([[^)]]*)//g'`"
++    QT_INCFLAGS="`$ac_cv_path_EGREP '^INCPATH *=' 
"$qmake_dir/Makefile.non_gui" | sed -e 's/^INCPATH *= *//'`"
++  fi
+ 
+   # If under MinGW/MSYS2, fix relative include paths
+   if ! test -z "${MINGW_PREFIX}"; then
+@@ -181,16 +189,18 @@ EOT
+   QT_INCFLAGS="`echo $QT_INCFLAGS | sed -e 's:-I[[^/]][[^ ]]*::g'`"
+   QT_CFLAGS="$QT_CFLAGS $QT_INCFLAGS"
+   QT_CFLAGS="`echo $QT_CFLAGS | sed -e 's/\$(EXPORT_ARCH_ARGS)//'`"
+-  QT_LIBS="`$ac_cv_path_EGREP '^LFLAGS *=' "$qmake_dir/Makefile" | sed -e 
's/^LFLAGS *= *//' -e 's/-Wl,-O[[^ ]]*//g' -e 's/ -f[[a-z]][[^ ]]*//g'`"
+-  QT_LIBS="$QT_LIBS `$ac_cv_path_EGREP '^LIBS *=' "$qmake_dir/Makefile" | sed 
-e 's/^LIBS *= *//' -e 's/\$([[^)]]*)//g' -e 's:-L[[^/]][[^ ]]*::g'`"
+-  QT_LIBS="`echo $QT_LIBS | sed -e 's/\$(EXPORT_ARCH_ARGS)//'`"
++  if test x"$enable_gui" = xyes; then
++    QT_LIBS="`$ac_cv_path_EGREP '^LFLAGS *=' "$qmake_dir/Makefile" | sed -e 
's/^LFLAGS *= *//' -e 's/-Wl,-O[[^ ]]*//g' -e 's/ -f[[a-z]][[^ ]]*//g'`"
++    QT_LIBS="$QT_LIBS `$ac_cv_path_EGREP '^LIBS *=' "$qmake_dir/Makefile" | 
sed -e 's/^LIBS *= *//' -e 's/\$([[^)]]*)//g' -e 's:-L[[^/]][[^ ]]*::g'`"
++    QT_LIBS="`echo $QT_LIBS | sed -e 's/\$(EXPORT_ARCH_ARGS)//'`"
++  fi
+   QT_LIBS_NON_GUI="`$ac_cv_path_EGREP '^LFLAGS *=' 
"$qmake_dir/Makefile.non_gui" | sed -e 's/^LFLAGS *= *//' -e 's/-Wl,-O[[^ 
]]*//g' -e 's/ -f[[a-z]][[^ ]]*//g'`"
+   QT_LIBS_NON_GUI="$QT_LIBS_NON_GUI `$ac_cv_path_EGREP '^LIBS *=' 
"$qmake_dir/Makefile.non_gui" | sed -e 's/^LIBS *= *//' -e 's/\$([[^)]]*)//g' 
-e 's:-L[[^/]][[^ ]]*::g'`"
+   QT_LIBS_NON_GUI="`echo $QT_LIBS_NON_GUI | sed -e 's/\$(EXPORT_ARCH_ARGS)//' 
-e 's/-Wl,-subsystem,windows *//g'`"
+ 
+   rm -rf "$qmake_dir"
+ 
+-  if test x"$QT_CFLAGS" = x -o x"$QT_LIBS" = x -o x"$QT_LIBS_NON_GUI" = x; 
then
++  if test x"$QT_CFLAGS" = x -o [ x"$enable_gui" = xyes -a x"$QT_LIBS" = x ] 
-o x"$QT_LIBS_NON_GUI" = x; then
+     AC_MSG_CHECKING(for Qt 6)
+     AC_MSG_RESULT(no: could not extract one or more compiler flags from 
Makefile generated by qmake6)
+     return
+@@ -223,7 +233,7 @@ EOT
+     ac_save_CXXFLAGS="$CXXFLAGS"
+     ac_save_LIBS="$LIBS"
+     CXXFLAGS="$STD_CXX $CXXFLAGS $QT_CFLAGS -fPIC"
+-    LIBS="$LDFLAGS $QT_LIBS"
++    LIBS="$LDFLAGS $QT_LIBS_NON_GUI"
+     unset ac_cv_qt_compilation
+ 
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[

diff --git a/media-video/mkvtoolnix/mkvtoolnix-83.0.ebuild 
b/media-video/mkvtoolnix/mkvtoolnix-83.0.ebuild
new file mode 100644
index 000000000000..393a62599642
--- /dev/null
+++ b/media-video/mkvtoolnix/mkvtoolnix-83.0.ebuild
@@ -0,0 +1,139 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multiprocessing qmake-utils xdg
+
+if [[ ${PV} == *9999 ]] ; then
+       inherit git-r3
+
+       EGIT_REPO_URI="https://gitlab.com/mbunkus/mkvtoolnix.git";
+       EGIT_SUBMODULES=()
+else
+       inherit verify-sig
+
+       SRC_URI="
+               https://mkvtoolnix.download/sources/${P}.tar.xz
+               verify-sig? ( 
https://mkvtoolnix.download/sources/${P}.tar.xz.sig )
+       "
+       KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+
+       VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/mkvtoolnix.asc"
+fi
+
+DESCRIPTION="Tools to create, alter, and inspect Matroska files"
+HOMEPAGE="https://mkvtoolnix.download/ https://gitlab.com/mbunkus/mkvtoolnix";
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug dvd gui nls pch test"
+RESTRICT="!test? ( test )"
+
+# check NEWS.md for build system changes entries for boost/libebml/libmatroska
+# version requirement updates and other packaging info
+RDEPEND="
+       app-text/cmark:0=
+       dev-libs/boost:=
+       dev-libs/gmp:=
+       >=dev-libs/libebml-1.4.5:=
+       >=dev-libs/libfmt-8.0.1:=
+       >=dev-libs/pugixml-1.11
+       >=dev-qt/qtbase-6.2:6[dbus]
+       media-libs/flac:=
+       >=media-libs/libmatroska-1.7.1:=
+       media-libs/libogg
+       media-libs/libvorbis
+       sys-libs/zlib
+       dvd? ( media-libs/libdvdread:= )
+       gui? (
+               >=dev-qt/qtbase-6.2:6[concurrent,gui,network,widgets]
+               >=dev-qt/qtmultimedia-6.2:6
+               >=dev-qt/qtsvg-6.2:6
+       )
+"
+DEPEND="${RDEPEND}
+       >=dev-cpp/nlohmann_json-3.9.1
+       >=dev-libs/utfcpp-3.1.2
+       test? ( dev-cpp/gtest )
+"
+BDEPEND="
+       app-text/docbook-xsl-stylesheets
+       dev-libs/libxslt
+       dev-ruby/rake
+       virtual/pkgconfig
+       nls? (
+               sys-devel/gettext
+               app-text/po4a
+       )
+"
+
+if [[ ${PV} != *9999 ]] ; then
+       BDEPEND+="verify-sig? ( sec-keys/openpgp-keys-mkvtoolnix )"
+fi
+
+PATCHES=(
+       # https://bugs.gentoo.org/927380
+       "${FILESDIR}"/mkvtoolnix-83.0.0-fix-disable-gui.patch
+)
+
+src_prepare() {
+       default
+
+       if [[ ${PV} == *9999 ]]; then
+               ./autogen.sh || die
+       fi
+
+       # bug #692018
+       sed -i -e 's/pandoc/diSaBlEd/' ac/pandoc.m4 || die
+
+       eautoreconf
+
+       # remove bundled libs
+       rm -r lib/{fmt,libebml,libmatroska,nlohmann-json,pugixml,utf8-cpp} || 
die
+}
+
+src_configure() {
+       # bug #692322, use system dev-libs/utfcpp
+       append-cppflags -I"${ESYSROOT}"/usr/include/utf8cpp
+
+       local myeconfargs=(
+               $(use_enable debug)
+               $(usex pch "" --disable-precompiled-headers)
+               $(use_enable gui)
+               $(use_with dvd dvdread)
+               $(use_with nls gettext)
+               #$(use_with nls po4a)
+               --disable-update-check
+               --disable-optimization
+               --with-boost="${ESYSROOT}"/usr
+               --with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir)
+
+               # Qt (of some version) is always needed, even for non-GUI 
builds,
+               # to do e.g. MIME detection. See e.g. bug #844097.
+               # But most of the Qt deps are conditional on a GUI build.
+               --with-qmake6="$(qt6_get_bindir)"/qmake
+       )
+
+       # Work around bug #904710.
+       use nls || export ac_cv_path_PO4A=
+
+       econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+       rake V=1 -j$(makeopts_jobs) || die
+}
+
+src_test() {
+       rake V=1 -j$(makeopts_jobs) tests:unit || die
+       rake V=1 -j$(makeopts_jobs) tests:run_unit || die
+}
+
+src_install() {
+       DESTDIR="${D}" rake -j$(makeopts_jobs) install || die
+
+       einstalldocs
+       dodoc NEWS.md
+       doman doc/man/*.1
+}

Reply via email to