media-video/mkvtoolnix: add 80.0

Closes: https://bugs.gentoo.org/914337
Signed-off-by: Alfred Wingate <parona@protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/33922
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Alfred Wingate
2023-11-19 15:19:13 +02:00
committed by Sam James
parent 601462f68a
commit ebf68d1349
6 changed files with 357 additions and 26 deletions

View File

@@ -1,3 +1,5 @@
DIST mkvtoolnix-72.0.0.tar.xz 10994204 BLAKE2B 2118837c01d8d31644e0147dfdec9fd619d18ffbab5d317e5dd84788a83cdf162ea7d72e98549bbc2ffc7953e0b80a0e23018658d8c5ad529fc719b291589a97 SHA512 dc18c6e63e724181e38753921ec3374752dbb7c4d20650cf0787e9049aaec4f6bb6c744e49b3783921804f192de742fba92826615a1edc8516d2a41621be658c
DIST mkvtoolnix-75.0.0.tar.xz 11009552 BLAKE2B d9c32a453ac1f07e201b99fdcaaa5e553b42c1d17fafdeb1a84808ee572caf00b4b49d04c90d7801564f4856e9b3057a45ef79041e72f76bc829c3b5d9536c58 SHA512 eca45828ec3cbb540c67d12d369f3314246d08812933a018e5c4f69e8bd2fa4e17143a33a1841c5a8da3befbc22509fa508e6688ea858980d13c44aaae4ead08
DIST mkvtoolnix-77.0.tar.xz 11044004 BLAKE2B 5aa43e155c1318dc6c3fd4418fb59ec498ad488a8459cf0aefa0bc0660ff93dd51f2699642ea633695fbf76ae1b4b6cfddddfca1b0e72e16357b579ce8dbee42 SHA512 b310077cfaddef3163c732943f1aaf7e63fb9f7efb19fdb27a35e2d0ad92dfc4536ea29366b44745f3f918703b02e2d52edb63369c23540df1312f3d54c06bb0
DIST mkvtoolnix-80.0.tar.xz 11056764 BLAKE2B 6178b65ce57b1ab897c91a456fa9887499e683619654b2a7f8fbcd8b7d98f04dd831d2c875da85a644357ec8c8de3b408394f7b29def9203f35a28ec19513a0d SHA512 066c10a9112ca0cdb59567235aae70e94ccab25b0e2d6156f4ba1090e102614b07c37eb0116a9ee540b2ed8f4b9d58a699f553b974a3f2636c65241915b3b6bc
DIST mkvtoolnix-80.0.tar.xz.sig 833 BLAKE2B 6c08689419877da7f3f16b8453a44f837792f5e7f3de7fb8574597dee3317ffadf2418cae82949a7585ab53cf1e0a60391ba898fc4607290d678501c3ffd4672 SHA512 47df9f0199275873b300b229fc91d14d5ab93c423e4fb8f31055b84619ae00609850ccb77f6d84c8eb3e4afee76acbe3e0779d03f3041d01d598f462788c618d

View File

@@ -0,0 +1,29 @@
From 246f824a6a0d2bc93ec4ad2ebfde7c92b42c879a Mon Sep 17 00:00:00 2001
From: Alfred Wingate <parona@protonmail.com>
Date: Tue, 21 Nov 2023 01:10:23 +0200
Subject: [PATCH] Fix detection of QtDBus and QtMultimedia
* Sometimes you may have qtdbus and qtmultimedia present at the same
time.
Signed-off-by: Alfred Wingate <parona@protonmail.com>
--- a/ac/qt6.m4
+++ b/ac/qt6.m4
@@ -95,10 +95,12 @@ EOT
if test $result2 != 0; then
continue
- elif test $qt_module = dbus; then
+ fi
+ if test $qt_module = dbus; then
qmake_qt_ui="$qmake_qt_ui dbus"
AC_DEFINE(HAVE_QTDBUS, 1, [Define if QtDBus is present])
- elif test $qt_module = multimedia; then
+ fi
+ if test $qt_module = multimedia; then
qmake_qt_ui="$qmake_qt_ui multimedia"
fi
done
--
2.43.0

View File

@@ -0,0 +1,31 @@
From 196e704d9bd44a5bb7655d8a85b6f270b2165b3c Mon Sep 17 00:00:00 2001
From: Alfred Wingate <parona@protonmail.com>
Date: Mon, 20 Nov 2023 23:41:06 +0200
Subject: [PATCH] Only check for uic in qt5 if gui is enabled
We should only check for UIC (provided by qtwidgets) if we're building the GUI.
Qt (just qtcore) itself is *always* needed to build mkvtoolnix (it's used
for e.g. MIME type detection since 59.0.0), but the rest of Qt
(like qtwidgets) is only needed for the GUI build.
The build system incorrectly unconditionally checks for UIC. We fix it here
to only check for it when doing a GUI build.
https://bugs.gentoo.org/844097
Signed-off-by: Alfred Wingate <parona@protonmail.com>
--- a/ac/qt5.m4
+++ b/ac/qt5.m4
@@ -63,7 +63,7 @@ check_qt5() {
AC_MSG_RESULT(no: could not find the rcc executable)
return
- elif test x"$UIC" = x; then
+ elif test x"$UIC" = x && test x"$enable_gui" = xyes; then
AC_MSG_CHECKING(for Qt 5)
AC_MSG_RESULT(no: could not find the uic executable)
return
--
2.43.0

View File

@@ -0,0 +1,70 @@
From 998cd9baa8edbbc0a02509728c7ff21ddaaaad51 Mon Sep 17 00:00:00 2001
From: Alfred Wingate <parona@protonmail.com>
Date: Mon, 20 Nov 2023 23:18:56 +0200
Subject: [PATCH] Add an option for qtdbus support
Signed-off-by: Alfred Wingate <parona@protonmail.com>
--- a/ac/qt5.m4
+++ b/ac/qt5.m4
@@ -103,11 +103,13 @@ check_qt5() {
return
fi
- if test x"$MINGW" != x1 && ! echo "$host" | grep -q -i apple ; then
- PKG_CHECK_EXISTS([Qt5DBus],[dbus_found=yes],[dbus_found=no])
- if test x"$dbus_found" = xyes; then
- with_qt_pkg_config_modules="$with_qt_pkg_config_modules,Qt5DBus"
- AC_DEFINE(HAVE_QTDBUS, 1, [Define if QtDBus is present])
+ if test x"$enable_dbus" = xyes; then
+ if test x"$MINGW" != x1 && ! echo "$host" | grep -q -i apple ; then
+ PKG_CHECK_EXISTS([Qt5DBus],[dbus_found=yes],[dbus_found=no])
+ if test x"$dbus_found" = xyes; then
+ with_qt_pkg_config_modules="$with_qt_pkg_config_modules,Qt5DBus"
+ AC_DEFINE(HAVE_QTDBUS, 1, [Define if QtDBus is present])
+ fi
fi
fi
@@ -254,6 +256,11 @@ AC_ARG_WITH([qt_pkg_config_modules],
AC_ARG_WITH([qt_pkg_config],
AS_HELP_STRING([--without-qt-pkg-config],[do not use pkg-config for detecting Qt 5; instead rely on QT_CFLAGS/QT_LIBS being set correctly already]),
[ with_qt_pkg_config=${withval} ], [ with_qt_pkg_config=yes ])
+AC_ARG_ENABLE([dbus],
+ AC_HELP_STRING([--enable-dbus],[enable/disable qtdbus/dbus from being included in build (yes)]),
+ [],[enable_dbus=yes])
+
+
have_qt5=no
--- a/ac/qt6.m4
+++ b/ac/qt6.m4
@@ -96,9 +96,12 @@ EOT
if test $result2 != 0; then
continue
fi
- if test $qt_module = dbus; then
- qmake_qt_ui="$qmake_qt_ui dbus"
- AC_DEFINE(HAVE_QTDBUS, 1, [Define if QtDBus is present])
+ if test x"$enable_dbus" = xyes; then
+ PKG_CHECK_EXISTS([Qt6DBus],[dbus_found=yes],[dbus_found=no])
+ if test x"$dbus_found" = xyes; then
+ qmake_qt_ui="$qmake_qt_ui dbus"
+ AC_DEFINE(HAVE_QTDBUS, 1, [Define if QtDBus is present])
+ fi
fi
if test $qt_module = multimedia; then
qmake_qt_ui="$qmake_qt_ui multimedia"
@@ -272,6 +275,9 @@ AC_ARG_ENABLE([gui],
AC_ARG_ENABLE([qt6],
AS_HELP_STRING([--enable-qt6],[compile with Qt 6 (yes)]),
[],[enable_qt6=yes])
+AC_ARG_ENABLE([dbus],
+ AC_HELP_STRING([--enable-dbus],[enable/disable qtdbus/dbus from being included in build (yes)]),
+ [],[enable_dbus=yes])
have_qt6=no
--
2.43.0

View File

@@ -0,0 +1,167 @@
# Copyright 1999-2023 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="dbus debug dvd gui nls qt6 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.4:=
>=dev-libs/libfmt-8.0.1:=
>=dev-libs/pugixml-1.11
media-libs/flac:=
>=media-libs/libmatroska-1.7.1:=
media-libs/libogg
media-libs/libvorbis
sys-libs/zlib
dvd? ( media-libs/libdvdread:= )
!qt6? (
dev-qt/qtcore:5
dbus? ( dev-qt/qtdbus:5 )
gui? (
dev-qt/qtsvg:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtwidgets:5
dev-qt/qtconcurrent:5
dev-qt/qtmultimedia:5
)
)
qt6? (
dev-qt/qtbase:6[dbus?]
gui? (
dev-qt/qtbase:6[concurrent,gui,network,widgets]
dev-qt/qtmultimedia:6
dev-qt/qtsvg: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=(
"${FILESDIR}"/mkvtoolnix-80.0.0-no-uic-qtwidgets.patch
"${FILESDIR}"/mkvtoolnix-80.0.0-fix-qtmultimedia.patch
"${FILESDIR}"/mkvtoolnix-80.0.0-optional-qtdbus.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 dbus)
$(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.
if use qt6; then
myeconfargs+=(
--enable-qt6
--disable-qt5
--with-qmake6="$(qt6_get_bindir)"/qmake
)
else
myeconfargs+=(
--disable-qt6
--enable-qt5
--with-qmake="$(qt5_get_bindir)"/qmake
)
fi
# 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
}

View File

@@ -6,12 +6,20 @@ 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=()
inherit git-r3
else
SRC_URI="https://mkvtoolnix.download/sources/${P}.tar.xz"
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"
@@ -19,34 +27,44 @@ HOMEPAGE="https://mkvtoolnix.download/ https://gitlab.com/mbunkus/mkvtoolnix"
LICENSE="GPL-2"
SLOT="0"
IUSE="dbus debug dvd gui nls pch test"
IUSE="dbus debug dvd gui nls qt6 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.4:=
>=dev-libs/libfmt-8.0.1:=
>=dev-libs/pugixml-1.11:=
>=dev-libs/pugixml-1.11
media-libs/flac:=
>=media-libs/libmatroska-1.7.1:=
media-libs/libogg:=
media-libs/libvorbis:=
media-libs/libogg
media-libs/libvorbis
sys-libs/zlib
dvd? ( media-libs/libdvdread:= )
dev-qt/qtcore:5
gui? (
dev-qt/qtsvg:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtwidgets:5
dev-qt/qtconcurrent:5
dev-qt/qtmultimedia:5
!qt6? (
dev-qt/qtcore:5
dbus? ( dev-qt/qtdbus:5 )
gui? (
dev-qt/qtsvg:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtwidgets:5
dev-qt/qtconcurrent:5
dev-qt/qtmultimedia:5
)
)
qt6? (
dev-qt/qtbase:6[dbus?]
gui? (
dev-qt/qtbase:6[concurrent,gui,network,widgets]
dev-qt/qtmultimedia:6
dev-qt/qtsvg:6
)
)
app-text/cmark:0=
dbus? ( dev-qt/qtdbus:5 )
"
DEPEND="${RDEPEND}
>=dev-cpp/nlohmann_json-3.9.1
@@ -64,9 +82,14 @@ BDEPEND="
)
"
if [[ ${PV} != *9999 ]] ; then
BDEPEND+="verify-sig? ( sec-keys/openpgp-keys-mkvtoolnix )"
fi
PATCHES=(
"${FILESDIR}"/mkvtoolnix-58.0.0-qt5dbus.patch
"${FILESDIR}"/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch
"${FILESDIR}"/mkvtoolnix-80.0.0-no-uic-qtwidgets.patch
"${FILESDIR}"/mkvtoolnix-80.0.0-fix-qtmultimedia.patch
"${FILESDIR}"/mkvtoolnix-80.0.0-optional-qtdbus.patch
)
src_prepare() {
@@ -93,15 +116,7 @@ src_configure() {
$(use_enable debug)
$(usex pch "" --disable-precompiled-headers)
$(use_enable dbus)
# 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.
--disable-qt6
--enable-qt5
$(use_enable gui)
--with-qmake="$(qt5_get_bindir)"/qmake
$(use_with dvd dvdread)
$(use_with nls gettext)
#$(use_with nls po4a)
@@ -111,6 +126,23 @@ src_configure() {
--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.
if use qt6; then
myeconfargs+=(
--enable-qt6
--disable-qt5
--with-qmake6="$(qt6_get_bindir)"/qmake
)
else
myeconfargs+=(
--disable-qt6
--enable-qt5
--with-qmake="$(qt5_get_bindir)"/qmake
)
fi
# Work around bug #904710.
use nls || export ac_cv_path_PO4A=