diff --git a/media-video/mkvtoolnix/additional-files/mkvtoolnix-gui.rdef.in b/media-video/mkvtoolnix/additional-files/mkvtoolnix-gui.rdef.in new file mode 100644 index 000000000..ac58dc915 --- /dev/null +++ b/media-video/mkvtoolnix/additional-files/mkvtoolnix-gui.rdef.in @@ -0,0 +1,33 @@ + +resource app_flags B_MULTIPLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "MKVToolNix GUI", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource file_types message { + "types" = "video/x-matroska" +}; + +resource vector_icon { + $"6E636966040500020106033C9A71AE8AAC2EB1C93CC28149A1EC4957B500CCCC" + $"FBC7464CC8FF6B82F7020106033C3AEFAE2D6D2E71E03C810B49A1EE49587100" + $"F26878C7BA2839FFD36171010404955E0302044030C34530BC3A30304030BC3A" + $"30C3454050BC3A50C34550504050C34550BC3A00054731C371BB42C0D72A3724" + $"BE6CB42E2C263544323BBC7BC4AF4A5EC041CC79C60ECB2F5049C69FC732C61D" + $"C34504032E34353744343CBD2EC40F3F50070A010100000A0001001001178200" + $"040A000101123FFFB03527CDB527CD3FFFB0BAD084C1959601178212040A0001" + $"0112379F67BEEFA03FFD6D381653C2FFCD4B643801178212040A03010230211F" + $"01178200040A0201000A3DC0000000000000003DC00049500044400020FF0A00" + $"01001A3DC0000000000000003DC00049500044400020FF0117840004" +}; diff --git a/media-video/mkvtoolnix/mkvtoolnix-74.0.0.recipe b/media-video/mkvtoolnix/mkvtoolnix-74.0.0.recipe new file mode 100644 index 000000000..ddf991efe --- /dev/null +++ b/media-video/mkvtoolnix/mkvtoolnix-74.0.0.recipe @@ -0,0 +1,141 @@ +SUMMARY="A Matroska file creator and editor" +DESCRIPTION="MKVToolNix is a set of tools to create, alter and inspect \ +Matroska files. Matroska is a versatile media format which can contain \ +video, audio and subtitles, as well as chapter lists." +HOMEPAGE="https://mkvtoolnix.download" +COPYRIGHT="2003-2023 Moritz Bunkus" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="https://mkvtoolnix.download/sources/mkvtoolnix-$portVersion.tar.xz" +SOURCE_DIR="mkvtoolnix-$portVersion" +CHECKSUM_SHA256="b7dc8be6cb9170030de06b983f256ff3cb21efa3209f0efe8e079656fa3d5643" +PATCHES="mkvtoolnix-$portVersion.patchset" +ADDITIONAL_FILES="mkvtoolnix-gui.rdef.in" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + mkvtoolnix$secondaryArchSuffix = $portVersion + app:MKVToolNixGUI$secondaryArchSuffix = $portVersion + cmd:mkvtoolnix_gui$secondaryArchSuffix = $portVersion + cmd:mkvmerge$secondaryArchSuffix = $portVersion + cmd:mkvextract$secondaryArchSuffix = $portVersion + cmd:mkvinfo$secondaryArchSuffix = $portVersion + cmd:mkvpropedit$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + docbook_xsl_stylesheets + lib:libboost_filesystem$secondaryArchSuffix + lib:libboost_regex$secondaryArchSuffix + lib:libboost_system$secondaryArchSuffix + lib:libcmark$secondaryArchSuffix + lib:libdvdread$secondaryArchSuffix + lib:libebml$secondaryArchSuffix + lib:libflac$secondaryArchSuffix + lib:libfmt$secondaryArchSuffix + lib:libgl$secondaryArchSuffix + lib:libgmpxx$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libmatroska$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libpugixml$secondaryArchSuffix + lib:libQt6Concurrent$secondaryArchSuffix + lib:libQt6Core$secondaryArchSuffix + lib:libQt6Dbus$secondaryArchSuffix + lib:libQt6Gui$secondaryArchSuffix + lib:libQt6Multimedia$secondaryArchSuffix + lib:libQt6Network$secondaryArchSuffix + lib:libQt6Svg$secondaryArchSuffix + lib:libQt6Widgets$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libxslt$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + docbook_xsl_stylesheets + devel:libboost_filesystem$secondaryArchSuffix + devel:libboost_regex$secondaryArchSuffix + devel:libboost_system$secondaryArchSuffix >= 1.69.0 + devel:libcmark$secondaryArchSuffix + devel:libdvdread$secondaryArchSuffix + devel:libflac$secondaryArchSuffix + devel:libfmt$secondaryArchSuffix + devel:libgl$secondaryArchSuffix + devel:libgmpxx$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libpugixml$secondaryArchSuffix + devel:libQt6Concurrent$secondaryArchSuffix + devel:libQt6Core$secondaryArchSuffix + devel:libQt6Dbus$secondaryArchSuffix + devel:libQt6Gui$secondaryArchSuffix + devel:libQt6Multimedia$secondaryArchSuffix + devel:libQt6Network$secondaryArchSuffix + devel:libQt6Svg$secondaryArchSuffix + devel:libQt6Widgets$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libxslt$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:nlohmann_json + libebml${secondaryArchSuffix}_devel >= 1.4.4 + libmatroska${secondaryArchSuffix}_devel >= 1.7.1 + " +BUILD_PREREQUIRES=" + cmd:aclocal + cmd:autoreconf + cmd:gcc$secondaryArchSuffix + cmd:gettext$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + cmd:rake + " + +BUILD() +{ + export BUILDCXX=gcc + export BUILDCXX=g++ + + ./autogen.sh + + runConfigure ./configure \ + --prefix=$appsDir/MKVToolNix \ + --bindir=$appsDir/MKVToolNix \ + --libdir=$appsDir/MKVToolNix/lib \ + --datarootdir=$appsDir/MKVToolNix/data \ + --datadir=$appsDir/MKVToolNix/data \ + --enable-qt6 --disable-qt5 --disable-update-check \ + --with-boost-libdir=$portPackageLinksDir/devel~libboost_system$secondaryArchSuffix/$relativeLibDir \ + --with-qt6-prefix=$portPackageLinksDir/devel~libqt6core$secondaryArchSuffix \ + --with-docbook-datadir=$portPackageLinksDir/docbook_xsl_stylesheets/data + + rake -j $jobs +} + +INSTALL() +{ + rake install + + local APP_SIGNATURE="application/x-vnd.mkvtoolnix-gui" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local LONG_INFO="$SUMMARY" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/mkvtoolnix-gui.rdef.in > mkvtoolnix-gui.rdef + + rm -rf $appsDir/MKVToolNix/data/{applications,icons,metainfo} + + addResourcesToBinaries mkvtoolnix-gui.rdef $appsDir/MKVToolNix/mkvtoolnix-gui + + addAppDeskbarSymlink $appsDir/MKVToolNix/mkvtoolnix-gui "MKVToolNix GUI" +} diff --git a/media-video/mkvtoolnix/patches/mkvtoolnix-74.0.0.patchset b/media-video/mkvtoolnix/patches/mkvtoolnix-74.0.0.patchset new file mode 100644 index 000000000..176328db2 --- /dev/null +++ b/media-video/mkvtoolnix/patches/mkvtoolnix-74.0.0.patchset @@ -0,0 +1,77 @@ +From 3537fb529e7d3821017b9431302815e44fca2ff4 Mon Sep 17 00:00:00 2001 +From: robxnano <89391914+robxnano@users.noreply.github.com> +Date: Mon, 23 Jan 2023 15:58:40 +0000 +Subject: [PATCH] Patch ax_docbook.m4 to support Haiku + +--- + ac/ax_docbook.m4 | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/ac/ax_docbook.m4 b/ac/ax_docbook.m4 +index 869d4b9..ff1c9e4 100644 +--- a/ac/ax_docbook.m4 ++++ b/ac/ax_docbook.m4 +@@ -1,3 +1,7 @@ ++AC_ARG_WITH(docbook_datadir, ++ AS_HELP_STRING([--with-docbook-datadir=dir],[datadir where DocBook XSL stylesheets are installed (default: /usr/share)]), ++ [ DOCBOOK_DATADIR="$with_docbook_datadir" ], [ DOCBOOK_DATADIR="${MINGW_PREFIX:-/usr}/share" ]) ++ + AC_ARG_WITH(docbook_xsl_root, + AS_HELP_STRING([--with-docbook-xsl-root=dir],[use dir as base for DocBook XSL stylesheets instead of looking for it; must contain the "manpages/docbook.xsl" sub-directory and file]), + [ DOCBOOK_ROOT="$with_docbook_xsl_root" ],) +@@ -9,11 +13,10 @@ if ! test -z "$DOCBOOK_ROOT"; then + else + AC_MSG_CHECKING([for DocBook XSL root directory]) + +- PREFIX_FOR_XSL=${MINGW_PREFIX:-/usr} +- for i in `ls -d $PREFIX_FOR_XSL/share/xml/docbook/xsl-stylesheets*-nons 2> /dev/null` \ +- $PREFIX_FOR_XSL/share/xml/docbook/stylesheet/xsl/nwalsh \ +- $PREFIX_FOR_XSL/share/xml/docbook/stylesheet/nwalsh \ +- `ls -d $PREFIX_FOR_XSL/share/sgml/docbook/xsl-stylesheets* $PREFIX_FOR_XSL/share/xml/docbook/xsl-stylesheets* 2> /dev/null` \ ++ for i in `ls -d $DOCBOOK_DATADIR/xml/docbook/xsl-stylesheets*-nons 2> /dev/null` \ ++ $DOCBOOK_DATADIR/xml/docbook/stylesheet/xsl/nwalsh \ ++ $DOCBOOK_DATADIR/xml/docbook/stylesheet/nwalsh \ ++ `ls -d $DOCBOOK_DATADIR/sgml/docbook/xsl-stylesheets* $DOCBOOK_DATADIR/xml/docbook/xsl-stylesheets* 2> /dev/null` \ + ; do + if test -f "$i/manpages/docbook.xsl"; then + DOCBOOK_ROOT="$i" +-- +2.37.3 + +From a0e49d84b6469de100d547b67197c382271b009a Mon Sep 17 00:00:00 2001 +From: robxnano <89391914+robxnano@users.noreply.github.com> +Date: Sat, 11 Feb 2023 18:30:17 +0000 +Subject: [PATCH] Patch qt6.m4 to allow specifying prefix + +--- + ac/qt6.m4 | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/ac/qt6.m4 b/ac/qt6.m4 +index d6ae0aa..dc0ed3b 100644 +--- a/ac/qt6.m4 ++++ b/ac/qt6.m4 +@@ -9,6 +9,10 @@ check_qt6() { + AS_HELP_STRING([--with-qmake6=prog],[use prog instead of looking for qmake6]), + [ QMAKE6="$with_qmake6" ],) + ++ AC_ARG_WITH(qt6-prefix, ++ AS_HELP_STRING([--with-qt6-prefix=prefix],[Qt 6 install path]), ++ [ QT6_PREFIX="$with_qt6_prefix" ],) ++ + if ! test -z "$QMAKE6"; then + AC_MSG_CHECKING(for qmake6) + AC_MSG_RESULT(using supplied $QMAKE6) +@@ -149,6 +153,10 @@ EOT + 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 *= *//'`" + ++ # Fix relative path if prefix is provided, needed for Haiku ++ if ! test -z "${QT6_PREFIX}"; then ++ QT_INCFLAGS="`echo $QT_INCFLAGS | sed -e "s:\(\.\./\)\{1,\}:${QT6_PREFIX}/:g"`" ++ fi + # If under MinGW/MSYS2, fix relative include paths + if ! test -z "${MINGW_PREFIX}"; then + QT_INCFLAGS="`echo $QT_INCFLAGS | sed -e "s:../..${MINGW_PREFIX}:${MINGW_PREFIX}:g"`" +-- +2.37.3