summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Karbowski <slashbeast@gentoo.org>2023-07-10 20:56:22 +0200
committerPiotr Karbowski <slashbeast@gentoo.org>2023-07-10 20:57:04 +0200
commita09ba8ba17ff0c374918d4a7dc6b63ff20a10abe (patch)
treea5f41f7cf4eac3cdc10433bec4fe8d95a47bb0e1
parentgames-util/cartridges: bump to 2.0.4 (diff)
downloadgentoo-a09ba8ba17ff0c374918d4a7dc6b63ff20a10abe.tar.gz
gentoo-a09ba8ba17ff0c374918d4a7dc6b63ff20a10abe.tar.bz2
gentoo-a09ba8ba17ff0c374918d4a7dc6b63ff20a10abe.zip
media-video/makemkv: 1.17.4-r1 revbump with ffmpeg-6 support.
Closes: https://bugs.gentoo.org/909307 Signed-off-by: Piotr Karbowski <slashbeast@gentoo.org>
-rw-r--r--media-video/makemkv/files/makemkv-ffmpeg-6.patch13
-rw-r--r--media-video/makemkv/makemkv-1.17.4-r1.ebuild128
2 files changed, 141 insertions, 0 deletions
diff --git a/media-video/makemkv/files/makemkv-ffmpeg-6.patch b/media-video/makemkv/files/makemkv-ffmpeg-6.patch
new file mode 100644
index 000000000000..684d8186bab5
--- /dev/null
+++ b/media-video/makemkv/files/makemkv-ffmpeg-6.patch
@@ -0,0 +1,13 @@
+diff --git a/libffabi/src/ffabi.c b/libffabi/src/ffabi.c
+index 5dda9e1..2b29b87 100644
+--- a/libffabi/src/ffabi.c
++++ b/libffabi/src/ffabi.c
+@@ -478,7 +478,7 @@ FFM_AudioEncodeContext* __cdecl ffm_audio_encode_init(void* logctx,const char* n
+ #else
+ ctx->frame = av_frame_alloc();
+ if (av_sample_fmt_is_planar(ctx->avctx->sample_fmt)) {
+- ctx->frame_extended_data = av_mallocz_array(ctx->avctx->channels,
++ ctx->frame_extended_data = av_calloc(ctx->avctx->channels,
+ sizeof(*ctx->frame_extended_data));
+ if (!ctx->frame_extended_data) {
+ ffm_audio_encode_close(ctx);
diff --git a/media-video/makemkv/makemkv-1.17.4-r1.ebuild b/media-video/makemkv/makemkv-1.17.4-r1.ebuild
new file mode 100644
index 000000000000..05a97bd1d4f3
--- /dev/null
+++ b/media-video/makemkv/makemkv-1.17.4-r1.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic linux-info xdg
+
+MY_P=makemkv-oss-${PV}
+MY_PB=makemkv-bin-${PV}
+
+DESCRIPTION="Tool for ripping and streaming Blu-ray, HD-DVD and DVD discs"
+HOMEPAGE="http://www.makemkv.com/"
+SRC_URI="http://www.makemkv.com/download/${MY_P}.tar.gz
+ http://www.makemkv.com/download/${MY_PB}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1 MPL-1.1 MakeMKV-EULA openssl"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE="+gui +java"
+RESTRICT="bindist mirror"
+
+QA_PREBUILT="usr/bin/makemkvcon usr/bin/mmdtsdec"
+
+DEPEND="
+ dev-libs/expat
+ dev-libs/openssl:0=[-bindist(-)]
+ >=media-video/ffmpeg-1.0.0:0=
+ sys-libs/glibc
+ sys-libs/zlib
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ java? ( >=virtual/jre-1.8 )
+"
+BDEPEND="
+ virtual/pkgconfig
+ gui? ( dev-qt/qtcore:5 )
+"
+
+CONFIG_CHECK="~CHR_DEV_SG"
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-path.patch
+ "${FILESDIR}"/${PN}-ffmpeg-6.patch
+)
+
+src_prepare() {
+ default
+
+ if ! use java; then
+ rm -v "${WORKDIR}/${MY_PB}"/src/share/blues.* || die
+ fi
+}
+
+src_configure() {
+ # See bug #439380.
+ replace-flags -O* -Os
+
+ econf \
+ --enable-debug \
+ --disable-noec \
+ $(use_enable gui) \
+ $(use_enable gui qt5)
+}
+
+src_install() {
+ local myarch
+ case "${ARCH}" in
+ arm) myarch=armel ;;
+ x86) myarch=i386 ;;
+ *) myarch=${ARCH} ;;
+ esac
+
+ default
+
+ # add missing symlinks for QA
+ dosym libdriveio.so.0 /usr/$(get_libdir)/libdriveio.so.0.${PV}
+ dosym libdriveio.so.0 /usr/$(get_libdir)/libdriveio.so
+ dosym libmakemkv.so.1 /usr/$(get_libdir)/libmakemkv.so.1.${PV}
+ dosym libmakemkv.so.1 /usr/$(get_libdir)/libmakemkv.so
+ dosym libmmbd.so.0 /usr/$(get_libdir)/libmmbd.so
+ dosym libmmbd.so.0 /usr/$(get_libdir)/libmmbd.so.0.${PV}
+
+ cd "${WORKDIR}"/${MY_PB} || die
+
+ # install prebuilt bin
+ dobin bin/"${myarch}"/makemkvcon
+
+ # additional tool is actually part of makemkvcon
+ dosym makemkvcon /usr/bin/sdftool
+
+ # install profiles and locales
+ insinto /usr/share/MakeMKV
+ doins src/share/*
+
+ # install unofficial man page
+ doman "${FILESDIR}"/makemkvcon.1
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ elog "While MakeMKV is in beta mode, upstream has provided a license"
+ elog "to use if you do not want to purchase one."
+ elog ""
+ elog "See this forum thread for more information, including the key:"
+ elog "https://www.makemkv.com/forum/viewtopic.php?f=5&t=1053"
+ elog ""
+ elog "Note that beta license may have an expiration date and you will"
+ elog "need to check for newer licenses/releases. "
+ elog ""
+ elog "We previously said to copy default.mmcp.xml to ~/.MakeMKV/. This"
+ elog "is no longer necessary and you should delete it from there to"
+ elog "avoid warning messages."
+ elog ""
+ elog "MakeMKV can also act as a drop-in replacement for libaacs and"
+ elog "libbdplus, allowing transparent decryption of a wider range of"
+ elog "titles under players like VLC and mplayer. To enable this, set"
+ elog "the following variables when launching the player:"
+ elog "LIBAACS_PATH=libmmbd LIBBDPLUS_PATH=libmmbd"
+}