diff --git a/media-video/shotcut/patches/shotcut-19.12.31.patchset b/media-video/shotcut/patches/shotcut-19.12.31.patchset new file mode 100644 index 000000000..955a4eaf2 --- /dev/null +++ b/media-video/shotcut/patches/shotcut-19.12.31.patchset @@ -0,0 +1,110 @@ +From 91e3e861a7cc81c3c039611d664c7479e310a2d4 Mon Sep 17 00:00:00 2001 +From: TURX +Date: Mon, 20 Jan 2020 01:32:19 +0800 +Subject: [PATCH] fix Haiku support + +--- + src/jobs/meltjob.cpp | 2 ++ + src/main.cpp | 11 +++++++++++ + src/mainwindow.cpp | 14 +++++++++++++- + src/src.pro | 6 ++++-- + 4 files changed, 30 insertions(+), 3 deletions(-) + +diff --git a/src/jobs/meltjob.cpp b/src/jobs/meltjob.cpp +index 10156782..5b11a0b6 100644 +--- a/src/jobs/meltjob.cpp ++++ b/src/jobs/meltjob.cpp +@@ -87,6 +87,8 @@ void MeltJob::start() + QString shotcutPath = qApp->applicationDirPath(); + #ifdef Q_OS_WIN + QFileInfo meltPath(shotcutPath, "qmelt.exe"); ++#elif defined(Q_OS_HAIKU) ++ QFileInfo meltPath(shotcutPath, "melt"); + #else + QFileInfo meltPath(shotcutPath, "qmelt"); + #endif +diff --git a/src/main.cpp b/src/main.cpp +index 6d0d18fe..b2216f6d 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -44,6 +44,10 @@ extern "C" + } + #endif + ++#ifdef Q_OS_HAIKU ++#include ++#endif ++ + static void mlt_log_handler(void *service, int mlt_level, const char *format, va_list args) + { + if (mlt_level > mlt_log_get_level()) +@@ -182,7 +186,14 @@ public: + resourceArg = parser.positionalArguments(); + + // Startup logging. ++#if !defined(Q_OS_HAIKU) + dir = Settings.appDataLocation(); ++#else ++ char buffer[B_PATH_NAME_LENGTH + B_FILE_NAME_LENGTH]; ++ find_directory(B_USER_LOG_DIRECTORY, -1, false, buffer, sizeof(buffer)); ++ QString path = QString::fromUtf8(buffer); ++ dir = path; ++#endif + if (!dir.exists()) dir.mkpath(dir.path()); + const QString logFileName = dir.filePath("shotcut-log.txt"); + QFile::remove(logFileName); +diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp +index a170be4e..a3de57da 100644 +--- a/src/mainwindow.cpp ++++ b/src/mainwindow.cpp +@@ -90,6 +90,10 @@ + #include + #include + ++#ifdef Q_OS_HAIKU ++#include ++#endif ++ + static bool eventDebugCallback(void **data) + { + QEvent *event = reinterpret_cast(data[1]); +@@ -3657,7 +3661,15 @@ void MainWindow::onDrawingMethodTriggered(QAction *action) + void MainWindow::on_actionApplicationLog_triggered() + { + TextViewerDialog dialog(this); +- QDir dir = Settings.appDataLocation(); ++ QDir dir; ++#if !defined(Q_OS_HAIKU) ++ dir = Settings.appDataLocation(); ++#else ++ char buffer[B_PATH_NAME_LENGTH + B_FILE_NAME_LENGTH]; ++ find_directory(B_USER_LOG_DIRECTORY, -1, false, buffer, sizeof(buffer)); ++ QString path = QString::fromUtf8(buffer); ++ dir = path; ++#endif + QFile logFile(dir.filePath("shotcut-log.txt")); + logFile.open(QIODevice::ReadOnly | QIODevice::Text); + dialog.setText(logFile.readAll()); +diff --git a/src/src.pro b/src/src.pro +index 8d7294da..9030c5f3 100644 +--- a/src/src.pro ++++ b/src/src.pro +@@ -365,11 +365,13 @@ win32 { + } + RC_FILE = ../packaging/windows/shotcut.rc + } +-unix:!mac { ++unix:!mac:!haiku { + QT += x11extras ++ LIBS += -lX11 ++} ++unix:!mac { + CONFIG += link_pkgconfig + PKGCONFIG += mlt++ +- LIBS += -lX11 + } + + unix:!mac:isEmpty(PREFIX) { +-- +2.20.1 + diff --git a/media-video/shotcut/shotcut-19.12.31.recipe b/media-video/shotcut/shotcut-19.12.31.recipe new file mode 100644 index 000000000..4da1f775d --- /dev/null +++ b/media-video/shotcut/shotcut-19.12.31.recipe @@ -0,0 +1,92 @@ +SUMMARY="A free, open source, cross-platform video editor" +DESCRIPTION="Major features include support for a wide range of formats." +HOMEPAGE="https://shotcut.org/" +COPYRIGHT="2011-2019 by Meltytech, LLC." +LICENSE="GNU GPL v3" +REVISION="1" +SOURCE_URI="https://github.com/mltframework/shotcut/archive/v$portVersion.tar.gz" +CHECKSUM_SHA256="d7017d605edb581cb47de4844827bd627c159c810614381f4586ef35e8c3d97a" +SOURCE_DIR="shotcut-$portVersion" +PATCHES="shotcut-$portVersion.patchset" + +ARCHITECTURES="?x86_64" +SECONDARY_ARCHITECTURES="?x86" + +PROVIDES=" + shotcut$secondaryArchSuffix = $portVersion + app:shotcut + " +REQUIRES=" + haiku$secondaryArchSuffix + cmd:ffmpeg + cmd:melt + frei0r$secondaryArchSuffix + ladspa_sdk$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libmlt++$secondaryArchSuffix + lib:libmlt$secondaryArchSuffix + lib:libQt5$secondaryArchSuffix + lib:libQt5Core$secondaryArchSuffix + lib:libQt5Designer$secondaryArchSuffix + lib:libQt5Gui$secondaryArchSuffix + lib:libQt5Network$secondaryArchSuffix + lib:libQt5Quick$secondaryArchSuffix + lib:libQt5Sql$secondaryArchSuffix + lib:libQt5Test$secondaryArchSuffix + lib:libQt5WebKitWidgets$secondaryArchSuffix + lib:libQt5Xml$secondaryArchSuffix + lib:libsdl2_2.0$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libwebm$secondaryArchSuffix + lib:libx264$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + frei0r${secondaryArchSuffix}_devel + ladspa_sdk${secondaryArchSuffix}_devel + devel:libGL$secondaryArchSuffix + devel:libmlt++$secondaryArchSuffix + devel:libmlt$secondaryArchSuffix + devel:libQt5$secondaryArchSuffix + devel:libQt5Core$secondaryArchSuffix + devel:libQt5Designer$secondaryArchSuffix + devel:libQt5Gui$secondaryArchSuffix + devel:libQt5Network$secondaryArchSuffix + devel:libQt5Quick$secondaryArchSuffix + devel:libQt5Sql$secondaryArchSuffix + devel:libQt5Test$secondaryArchSuffix + devel:libQt5WebKitWidgets$secondaryArchSuffix + devel:libQt5Xml$secondaryArchSuffix + devel:libwebm$secondaryArchSuffix + devel:libx264$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:getconf + cmd:lrelease$secondaryArchSuffix >= 5 + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:qmake$secondaryArchSuffix >= 5 + " + +BUILD() +{ + qmake PREFIX=$prefix + make $jobArgs +} + +INSTALL() +{ + make install + + mkdir -p $appsDir $dataDir + mv $prefix/share/man/man1 $manDir + mv $prefix/share/metainfo $dataDir + mv $prefix/share/mime/packages $dataDir + mv $prefix/share/shotcut $dataDir + rm -rf $prefix/share + + mv $prefix/bin/shotcut $appsDir/Shotcut + addAppDeskbarSymlink $appsDir/Shotcut +}