public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/mkvtoolnix/files/, media-video/mkvtoolnix/
Date: Mon,  1 Apr 2024 07:18:19 +0000 (UTC)	[thread overview]
Message-ID: <1711955853.8de73ec9de78a5fb682033e708171fe98c78aee2.sam@gentoo> (raw)

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	other threads:[~2024-04-01  7:18 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-01  7:18 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-06-09  6:24 [gentoo-commits] repo/gentoo:master commit in: media-video/mkvtoolnix/files/, media-video/mkvtoolnix/ Joonas Niilola
2023-12-14  4:23 Sam James
2022-10-28 18:50 Sam James
2022-05-18  2:07 Sam James
2015-12-28  7:32 Alexis Ballier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1711955853.8de73ec9de78a5fb682033e708171fe98c78aee2.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox