summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-video/mkvtoolnix/Manifest1
-rw-r--r--media-video/mkvtoolnix/files/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch76
-rw-r--r--media-video/mkvtoolnix/mkvtoolnix-67.0.0.ebuild126
3 files changed, 203 insertions, 0 deletions
diff --git a/media-video/mkvtoolnix/Manifest b/media-video/mkvtoolnix/Manifest
index 55b203cc0880..696b51f30dc3 100644
--- a/media-video/mkvtoolnix/Manifest
+++ b/media-video/mkvtoolnix/Manifest
@@ -2,3 +2,4 @@ DIST mkvtoolnix-57.0.0.tar.xz 7635780 BLAKE2B e0253dc0f48b0c98ee30590560daecbb7c
DIST mkvtoolnix-60.0.0.tar.xz 7657960 BLAKE2B 094c13ac7e73e79f3cc7eae0768625482c4808a4323239a93de34d1406583bfe676d71855dd1f7eae9a8a0ff0a7badf50c04c71f9d2fbb4afd9ff5f05b9353ea SHA512 90bbb95c3a7a91bd47f76aaec9459a1f6f26a381ff03db1047c0fdb41cb87bdd96160c448152357a2b306adbd26f478112ac5d5e8215ee37331a15fc89fa43c3
DIST mkvtoolnix-61.0.0.tar.xz 7662500 BLAKE2B de9d73658fe779b34b21fded8e6676b76fed5ce5ecd598aeff12e8c4f120353f63413f260bacc30c0a102a4eb6d4b907feaabdd84d80d20469a3ae8341bce5f1 SHA512 9f35b5af8784eb4b92b437f41b5df677aa7fc859827eaef4d0e2d8531ad9908331f70a852c7e6e965a5f8cec47b38c6c91b8fbdbcaee0edca54f8cbb000ba582
DIST mkvtoolnix-64.0.0.tar.xz 7700012 BLAKE2B f0c64786fdc3d05915650a08ca398dc7f5356b9a9ce9cb108fb40a4394a7518dd45143717fde7af1dccd3e7e43d343f81d69633c78f1201670924257529baede SHA512 252fdf0a9497d34f2a407ca0d3e584d1cd5a2f566b793a3a6b9af8473855d89e55ce79a8b4aff71d5a25f7a15ca991f84a3c4441168553af9feffdfe75e19844
+DIST mkvtoolnix-67.0.0.tar.xz 7791720 BLAKE2B 815172f1e120d90ec33cbc6dac1bb3aad793edc0b629f0bab9400a0732d3b692f983d7eca82c61c453ccd245dea948d0950bcb357e3104d2012554871e09c80c SHA512 eed390cb305b5fcaddf11d68a9021f9ddc22a62d1eb95f4c0a34161a7662dd62495c87193a2d951f0fe30fb9a6b5b93f06ed7fedc24ed674da531f2c2317c997
diff --git a/media-video/mkvtoolnix/files/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch b/media-video/mkvtoolnix/files/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch
new file mode 100644
index 000000000000..a5f5fd2009b8
--- /dev/null
+++ b/media-video/mkvtoolnix/files/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch
@@ -0,0 +1,76 @@
+https://bugs.gentoo.org/844097
+
+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.
+
+First hunk (ac/qt5.m4, removing UIC check): Signed-off-by: Duane Robertson duane@duanerobertson.com
+Second hunk (rest, adding UIC check conditional on enable_gui): Signed-off-by: Sam James <sam@gentoo.org>
+--- a/ac/qt5.m4
++++ b/ac/qt5.m4
+@@ -51,7 +51,6 @@ check_qt5() {
+ AC_PATH_PROG(LCONVERT, lconvert,, [$qt_searchpath])
+ AC_PATH_PROG(MOC, moc,, [$qt_searchpath])
+ AC_PATH_PROG(RCC, rcc,, [$qt_searchpath])
+- AC_PATH_PROG(UIC, uic,, [$qt_searchpath])
+
+ if test x"$MOC" = x; then
+ AC_MSG_CHECKING(for Qt 5)
+@@ -62,11 +61,6 @@ check_qt5() {
+ AC_MSG_CHECKING(for Qt 5)
+ AC_MSG_RESULT(no: could not find the rcc executable)
+ return
+-
+- elif test x"$UIC" = x; then
+- AC_MSG_CHECKING(for Qt 5)
+- AC_MSG_RESULT(no: could not find the uic executable)
+- return
+ fi
+
+
+
+--- a/ac/qt_common.m4
++++ b/ac/qt_common.m4
+@@ -5,6 +5,37 @@ fi
+ if test x"$enable_gui" = xyes; then
+ BUILD_GUI=yes
+
++ # Copied from ac/qt6.m4.
++ qmake_properties="`mktemp`"
++
++ "$QMAKE" -query > "$qmake_properties"
++
++ qmake_ver="`$ac_cv_path_EGREP '^QT_VERSION:' "$qmake_properties" | sed 's/^QT_VERSION://'`"
++
++ AC_MSG_CHECKING(for qmake's version)
++ if test -z "qmake_ver"; then
++ AC_MSG_RESULT(unknown; please contact the author)
++ return
++ elif ! check_version $qt_min_ver $qmake_ver; then
++ AC_MSG_RESULT(too old: $qmake_ver, neet at least $qt_mIN-ver)
++ return
++ else
++ AC_MSG_RESULT($qmake_ver)
++ fi
++
++ qt_bindir="`$ac_cv_path_EGREP '^QT_INSTALL_BINS:' "$qmake_properties" | sed 's/^QT_INSTALL_BINS://'`"
++ qt_libexecdir="`$ac_cv_path_EGREP '^QT_INSTALL_LIBEXECS:' "$qmake_properties" | sed 's/^QT_INSTALL_LIBEXECS://'`"
++ qt_searchpath="$qt_libexecdir:$qt_bindir:$PATH"
++
++ rm -f "$qmake_properties"
++
++ AC_PATH_PROG(UIC, uic,, [$qt_searchpath])
++ if test x"$UIC" = x; then
++ AC_MSG_CHECKING(for Qt 5 UIC (qtwidgets))
++ AC_MSG_RESULT(no: could not find the uic executable)
++ exit 1
++ fi
++
+ if test x"$have_qt6" = "xyes" ; then
+ opt_features_yes="$opt_features_yes\n * MKVToolNix GUI (with Qt 6)"
+ else
diff --git a/media-video/mkvtoolnix/mkvtoolnix-67.0.0.ebuild b/media-video/mkvtoolnix/mkvtoolnix-67.0.0.ebuild
new file mode 100644
index 000000000000..e228b9bbe6b3
--- /dev/null
+++ b/media-video/mkvtoolnix/mkvtoolnix-67.0.0.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2022 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
+ EGIT_REPO_URI="https://gitlab.com/mbunkus/mkvtoolnix.git"
+ EGIT_SUBMODULES=()
+ inherit git-r3
+else
+ SRC_URI="https://mkvtoolnix.download/sources/${P}.tar.xz"
+ KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+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 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="
+ >=dev-libs/boost-1.66:=
+ dev-libs/gmp:=
+ >=dev-libs/libebml-1.4.2:=
+ >=dev-libs/libfmt-8.0.1:=
+ >=dev-libs/pugixml-1.11:=
+ media-libs/flac:=
+ >=media-libs/libmatroska-1.6.3:=
+ media-libs/libogg:=
+ media-libs/libvorbis:=
+ sys-libs/zlib
+ dvd? ( media-libs/libdvdread:= )
+ dev-qt/qtcore:5
+ gui? (
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtconcurrent:5
+ dev-qt/qtmultimedia:5
+ )
+ app-text/cmark:0=
+ dbus? ( dev-qt/qtdbus:5 )
+"
+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
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/mkvtoolnix-58.0.0-qt5dbus.patch
+ "${FILESDIR}"/mkvtoolnix-67.0.0-no-uic-qtwidgets.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)
+ --disable-qt6
+ --enable-qt5
+ --with-qmake="$(qt5_get_bindir)"/qmake
+ $(use_with dvd dvdread)
+ $(use_with nls gettext)
+ $(usex nls "" --with-po4a-translate=false)
+ --disable-update-check
+ --disable-optimization
+ --with-boost="${ESYSROOT}"/usr
+ --with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir)
+ )
+
+ 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
+}