diff --git a/media-video/shotcut/additional-files/shotcut.rdef.in b/media-video/shotcut/additional-files/shotcut.rdef.in new file mode 100644 index 000000000..4df3e9b05 --- /dev/null +++ b/media-video/shotcut/additional-files/shotcut.rdef.in @@ -0,0 +1,77 @@ +resource app_flags B_SINGLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "@APP_NAME@", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon { + $"6E6369660D0400FD01000203F703115C7703C3D6DC03FAFBFC03F1F5F703F7F9" + $"FA03F9FAFB03EEF3F503F3F7F803195F7A0393B5C1038DB0BD0F020AB2F5B2F5" + $"B2F5B2F5B553B2F5BA0DB2F5B7B0B2F5BA0DBB75BA0DCC75BA0DC3F5B7B0CC75" + $"B2F5CC75B553CC75B2F5CC24B2F5CB81B2F5CBD2B501CB81B918CB81B70CCB81" + $"B918C3A4B918B3EAB918BBC7B70CB3EAB2F5B3EAB501B3EAB2F5B399B2F5B2F5" + $"B2F5B347B2F5B2F5B2F5B2F5B2F5B2F5B2F5B2F5020ABAEDB2F5BAEDB2F5C0C5" + $"B2F5CC75B2F5C69DB2F5CC75B347CC75B3EACC75B399C6F6B3EABBF7B3EAC176" + $"B3EABBF7BBC7BBF7CB81BBF7C3A4C176CB81CC75CB81C6F6CB81CC75CBD2CC75" + $"CC75CC75CC24C69DCC75BAEDCC75C0C5CC75BAEDC3F5BAEDB2F5BAEDBB75BAED" + $"B2F5BAEDB2F5BAEDB2F5BAEDB2F50606FF07B2F5B3EAB2F5B3EAB501B3EAB918" + $"B3EAB70CB3EAB918BBC7B918CB81B918C3A4B70CCB81B2F5CB81B501CB81B2F5" + $"C3A4B2F5B3EAB2F5BBC7B2F5B3EAB3EA0606FF07CC75B3EACC75B3EACC75BBC7" + $"CC75CB81CC75C3A4C6F6CB81BBF7CB81C176CB81BBF7C3A4BBF7B3EABBF7BBC7" + $"C176B3EACC75B3EAC6F6B3EACC75B3EAB3EA020DBFDEB5D4BFDEB5D4BFD8B5E4" + $"40B5FDBFCEB5F1BFB5B597BFB5B4CBBFB2B531BFA1B4CBBF78B4CBBF8DB4CBBF" + $"78B5CDBF78B7D2BF78B6CFBF8DB7D2BFB5B7D2BFA1B7D2BFAFB75ABFCAB677BF" + $"B6B6E7BFCAB6F1BFCAB7E6BFCAB76CBFA8B7E6BF64B7E6BF86B7E6BF64B6D6BF" + $"64B4B6BF64B5C6BF86B4B6BFCAB4B6BFA8B4B6BFC3B519BFDEB5D4BFCAB579BF" + $"DEB5D4BFDEB5D4BFDEB5D4BFDEB5D4020EBFDEB5D4BFDEB5D4C059B57CC12FB5" + $"FDC0C9B58AC139B699C139B7D2C13CB735C11EB7D2C0E7B7D2C102B7D2C0EBB7" + $"43C0DDB625C0E7B6B4C07FB5D0BFD4B63A41B5D6BFCAB64DBFCAB677BFC7B661" + $"BFB6B6E7BFB5B7D2BFAFB75ABFA1B7D2BF78B7D2BF8DB7D2BF78B6CFBF78B4CB" + $"BF78B5CDBF8DB4CBBFB5B4CBBFA1B4CBBFB2B53140B5FDBFB5B597BFCEB5F1BF" + $"DEB5D4BFD8B5E4BFDEB5D4BFDEB5D4BFDEB5D4BFDEB5D40210BDA3B4DFBDA3B4" + $"DFBDE7B4DCBE6FB4E9BE2BB4DFBE92B4F4BEC1B526BEADB508BEBEB540BE98B5" + $"59BEB1B551BE3AB528BD84B559BDDEB528BD56B59DBDA3B607BD60B5D7BE12B6" + $"2EBECBB6B4BE74B667BEEFB788BDB7B7E6BE93B7EEBD7FB7E5BD142CBD49B7DB" + $"BCFBB7A9BD14B76CBCFBB78ABD69B791BE1DB78A3BB79CBE87B75FBE5BB6BEBE" + $"9CB71BBE00B699BD51B644BDA8B671BD18B600BD1EB559BD07B5B2BD3DB520BD" + $"A3B4DFBD69B4F7BDA3B4DFBDA3B4DFBDA3B4DFBDA3B4DF020EC47DB76CC47DB7" + $"6CC47DB6EBC47DB5E8C47DB669C462B5E8C42CB5E8C447B5E8C431B5BEC473B5" + $"97C449B5A3C46EB551C4CFB531C48CB52FC4CFB559C4CFB5ABC4CFB582C505B5" + $"ABC572B5ABC53CB5ABC572B5BFC572B5E8C572B5D4C53CB5E8C4CFB5E8C505B5" + $"E8C4CCB669C4D9B76CC4CFB6EBC505B790C572B795C538B79EC56DB7D1C50CB7" + $"E6C54BB7ECC4B7B7E8C47DB76CC487B7BFC47DB76CC47DB76CC47DB76CC47DB7" + $"6C020ECA77B76CCA77B76CCA77B6EBCA77B5E8CA77B669CA5CB5E8CA26B5E8CA" + $"41B5E8CA56B5BECA8CB545CA78B587CA9DB533CAC9B531CAB1B52CCAC9B559CA" + $"C9B5ABCAC9B582CAFFB5ABCB6CB5ABCB36B5ABCB6CB5BFCB6CB5E8CB6CB5D4CB" + $"36B5E8CAC9B5E8CAFFB5E8CAC6B669CAD3B76CCAC9B6EBCAFFB790CB6CB795CB" + $"32B79ECB67B7D1CB06B7E6CB45B7ECCAB1B7E8CA77B76CCA81B7BFCA77B76CCA" + $"77B76CCA77B76CCA77B76C0606FF07C294B597C294B597C38DB59FC3D0B71AC3" + $"F7B620C39AB7BCC27FB7DCC329B7FCC1F2B790C1D2B677C1B8B719C1EDB609C2" + $"94B597C22EB5BEC294B597B5970609FFFF01C67BB597C67BB597C6CDB58EC75C" + $"27C718B59F53B5E1C729B5FDC741B5F2C68227C62AB6B4C62DB607C62CB789C7" + $"5CB780C692B7CDC75CB79BC75CB7D2C75CB7B7C628B809C5CEB64EC5A3B788C5" + $"F0B5F9C67BB597C62AB5BCC67BB597B597020CC7D6B5ABC7D6B5ABC7F8B5ABC8" + $"3CB5ABC81AB5ABC839B641C846B76CC83CB6D6C89CB7A5C93BB757C8EDB79EC9" + $"57B6CAC95AB5ABC962B63CC975B5ABC9ABB5ABC990B5ABC9ABB663C9ABB7D2C9" + $"ABB71AC990B7D2C95AB7D2C975B7D2C95BB788C91D2CC946B784C8ACB7FCC7F5" + $"B795C84AB7EBC7D8B6F3C7D6B5ABC7CEB650C7D6B5ABC7D6B5ABC7D6B5ABC7D6" + $"B5AB0605FF01C294B5E8C294B5E8C35CB5EDC36AB71AC3A3B653C338B793C26B" + $"B776C2E3B7B2C20EB6E3C294B5E8C21CB65EC294B5E8B5E80606FF07C42CB5E8" + $"C42CB5E8C447B5E8C47DB5E8C462B5E8C47DB669C47DB76CC47DB6EBC469B6F5" + $"C469B5FDC462B67BC44FB601C42CB5E8C43AB5FBC42CB5E8B5E80606FF07CA26" + $"B5E8CA26B5E8CA41B5E8CA77B5E8CA5CB5E8CA77B669CA77B76CCA77B6EBCA63" + $"B6F5CA63B5FDCA5CB67BCA49B601CA26B5E8CA34B5FBCA26B5E8B5E80F0A0001" + $"00000A010101000A020102000A020103000A030104000A040105000A05010600" + $"0A060107000A070108000A080109000A08010A000A09010B000A0A010C000A0B" + $"010D000A0C010E00" +}; diff --git a/media-video/shotcut/patches/shotcut-23.06.14.patchset b/media-video/shotcut/patches/shotcut-24.11.17.patchset similarity index 53% rename from media-video/shotcut/patches/shotcut-23.06.14.patchset rename to media-video/shotcut/patches/shotcut-24.11.17.patchset index ee56df227..5c8ef9a59 100644 --- a/media-video/shotcut/patches/shotcut-23.06.14.patchset +++ b/media-video/shotcut/patches/shotcut-24.11.17.patchset @@ -1,14 +1,14 @@ -From 2db13fa56889ec77ab1ac9e8ff48d429c82d277e Mon Sep 17 00:00:00 2001 +From 9216ba4b743499f973896f79ec6055b1a92db943 Mon Sep 17 00:00:00 2001 From: Begasus Date: Tue, 18 Apr 2023 13:13:07 +0200 Subject: Haiku build fixes diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp -index c784a2a..e810489 100644 +index 0c1443c..3bea528 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp -@@ -135,7 +135,7 @@ MainWindow::MainWindow() +@@ -140,7 +140,7 @@ MainWindow::MainWindow() , m_upgradeUrl("https://www.shotcut.org/download/") , m_keyframesDock(0) { @@ -75,31 +75,31 @@ index 3bceef7..bdce17e 100644 # include #elif defined(__FreeBSD__) -- -2.37.3 +2.45.2 -From cb7d9bba2fcac2a3da819339b4fb835345d28bd7 Mon Sep 17 00:00:00 2001 +From d2474f8865f33203974f0a4ef683b2a8cbef57dd Mon Sep 17 00:00:00 2001 From: TURX Date: Mon, 20 Jan 2020 01:32:19 +0800 Subject: fix Haiku support diff --git a/src/main.cpp b/src/main.cpp -index 7c15047..44c89be 100644 +index e293442..8bd0f9e 100644 --- a/src/main.cpp +++ b/src/main.cpp -@@ -48,6 +48,10 @@ extern "C" - - static const int kMaxCacheCount = 5000; +@@ -34,6 +34,10 @@ + #include "macos.h" + #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()) -@@ -193,7 +197,14 @@ public: + #ifdef Q_OS_WIN + #include + #if defined(QT_DEBUG) && !defined(__ARM_ARCH) +@@ -221,7 +225,14 @@ public: resourceArg = parser.positionalArguments(); // Startup logging. @@ -112,14 +112,14 @@ index 7c15047..44c89be 100644 + dir.setPath(path); +#endif if (!dir.exists()) dir.mkpath(dir.path()); - const QString logFileName = dir.filePath("shotcut-log.txt"); - QFile::remove(logFileName); + auto previousLogName = dir.filePath("shotcut-log.bak"); + QFile::remove(previousLogName); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp -index e810489..d358edd 100644 +index 3bea528..c4822af 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp -@@ -103,6 +103,10 @@ - #include +@@ -105,6 +105,10 @@ + #include #include +#ifdef Q_OS_HAIKU @@ -129,7 +129,24 @@ index e810489..d358edd 100644 #define SHOTCUT_THEME static bool eventDebugCallback(void **data) -@@ -3742,7 +3746,15 @@ void MainWindow::onDrawingMethodTriggered(QAction *action) +@@ -1513,7 +1517,15 @@ void MainWindow::setFullScreen(bool isFullScreen) + + QString MainWindow::untitledFileName() const + { +- 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 + if (!dir.exists()) dir.mkpath(dir.path()); + return dir.filePath("__untitled__.mlt"); + } +@@ -4234,7 +4246,15 @@ void MainWindow::on_actionResources_triggered() void MainWindow::on_actionApplicationLog_triggered() { TextViewerDialog dialog(this); @@ -147,5 +164,79 @@ index e810489..d358edd 100644 logFile.open(QIODevice::ReadOnly | QIODevice::Text); dialog.setText(logFile.readAll()); -- -2.37.3 +2.45.2 + + +From 9587c648458b26c85406700407fbdc6a632626b1 Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Sat, 28 Dec 2024 18:50:41 +0100 +Subject: Haiku fixes(?) + + +diff --git a/src/docks/subtitlesdock.cpp b/src/docks/subtitlesdock.cpp +index a06114d..2535d2f 100644 +--- a/src/docks/subtitlesdock.cpp ++++ b/src/docks/subtitlesdock.cpp +@@ -1084,6 +1084,8 @@ void SubtitlesDock::burnInOnTimeline() + filter.set("family", "Verdana"); + #elif defined(Q_OS_MAC) + filter.set("family", "Helvetica"); ++#elif defined(Q_OS_HAIKU) ++ filter.set("family", "NotoSerif "); + #endif + filter.set("fgcolour", "#ffffffff"); + filter.set("bgcolour", "#00000000"); +@@ -1128,6 +1130,8 @@ void SubtitlesDock::generateTextOnTimeline() + filter.set("family", "Verdana"); + #elif defined(Q_OS_MAC) + filter.set("family", "Helvetica"); ++#elif defined(Q_OS_HAIKU) ++ filter.set("family", "NotoSerif "); + #endif + filter.set("fgcolour", "#ffffffff"); + filter.set("bgcolour", "#00000000"); +diff --git a/src/qmltypes/qmlapplication.cpp b/src/qmltypes/qmlapplication.cpp +index 066f04e..a2e2796 100644 +--- a/src/qmltypes/qmlapplication.cpp ++++ b/src/qmltypes/qmlapplication.cpp +@@ -92,6 +92,8 @@ QString QmlApplication::OS() + return "UNIX"; + #elif defined(Q_OS_WIN) + return "Windows"; ++#elif defined(Q_OS_HAIKU) ++ return "Haiku"; + #else + return ""; + #endif +@@ -231,10 +233,12 @@ QDir QmlApplication::dataDir() + #if defined(Q_OS_MAC) + dir.cdUp(); + dir.cd("Resources"); +-#else +-#if defined(Q_OS_UNIX) || (defined(Q_OS_WIN) && defined(NODEPLOY)) ++#elif defined(Q_OS_HAIKU) + dir.cdUp(); +-#endif ++ dir.cd("data"); ++#elif defined(Q_OS_UNIX) && !defined(Q_OS_HAIKU) || (defined(Q_OS_WIN) && defined(NODEPLOY)) ++ dir.cdUp(); ++#else + dir.cd("share"); + #endif + return dir; +diff --git a/src/util.cpp b/src/util.cpp +index eb5ff76..883ff77 100644 +--- a/src/util.cpp ++++ b/src/util.cpp +@@ -541,6 +541,8 @@ bool Util::isMemoryLow() + meminfo.close(); + LOG_INFO() << "available RAM = " << availableKB << "KB"; + return availableKB < kLowMemoryThresholdKB; ++#elif defined(Q_OS_HAIKU) ++ return false; + #endif + } + +-- +2.45.2 diff --git a/media-video/shotcut/shotcut-23.06.14.recipe b/media-video/shotcut/shotcut-24.11.17.recipe similarity index 63% rename from media-video/shotcut/shotcut-23.06.14.recipe rename to media-video/shotcut/shotcut-24.11.17.recipe index 89587323d..ca0850123 100644 --- a/media-video/shotcut/shotcut-23.06.14.recipe +++ b/media-video/shotcut/shotcut-24.11.17.recipe @@ -1,89 +1,77 @@ 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." +COPYRIGHT="2011-2024 by Meltytech, LLC." LICENSE="GNU GPL v3" REVISION="1" SOURCE_URI="https://github.com/mltframework/shotcut/archive/v$portVersion.tar.gz" -CHECKSUM_SHA256="d342c6a0224d13daa06f99123fdeb7aa5f899e06e886f12e5bd6ecad98a345d6" +CHECKSUM_SHA256="cb6a3a819b3ae56325406665273347328ae973250c02a832fce609ee6c0f6b13" PATCHES="shotcut-$portVersion.patchset" +ADDITIONAL_FILES="shotcut.rdef.in" ARCHITECTURES="?all !x86_gcc2" -SECONDARY_ARCHITECTURES="?x86" +SECONDARY_ARCHITECTURES="!x86" PROVIDES=" shotcut$secondaryArchSuffix = $portVersion - app:Shotcut + cmd:shotcut lib:libcutelogger$secondaryArchSuffix " REQUIRES=" haiku$secondaryArchSuffix cmd:ffmpeg cmd:melt - frei0r$secondaryArchSuffix - ladspa_sdk$secondaryArchSuffix lib:libfftw3$secondaryArchSuffix lib:libGL$secondaryArchSuffix lib:libmlt++_7$secondaryArchSuffix lib:libmlt_7$secondaryArchSuffix lib:libopenal$secondaryArchSuffix lib:libQt6Core$secondaryArchSuffix + lib:libQt6Charts$secondaryArchSuffix lib:libQt6Gui$secondaryArchSuffix lib:libQt6Multimedia$secondaryArchSuffix lib:libQt6Network$secondaryArchSuffix lib:libQt6OpenGL$secondaryArchSuffix lib:libQt6Qml$secondaryArchSuffix - lib:libQt6Quick$secondaryArchSuffix lib:libQt6Sql$secondaryArchSuffix lib:libQt6Widgets$secondaryArchSuffix lib:libQt6Xml$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 + qt6_tools${secondaryArchSuffix}_devel devel:libfftw3$secondaryArchSuffix - devel:libGL$secondaryArchSuffix devel:libmlt++_7$secondaryArchSuffix devel:libmlt_7$secondaryArchSuffix - devel:libopenal$secondaryArchSuffix devel:libQt6Core$secondaryArchSuffix + devel:libQt6Charts$secondaryArchSuffix devel:libQt6DBus$secondaryArchSuffix devel:libQt6Gui$secondaryArchSuffix devel:libQt6Multimedia$secondaryArchSuffix - devel:libQt6Network$secondaryArchSuffix devel:libQt6OpenGL$secondaryArchSuffix devel:libQt6Qml$secondaryArchSuffix - devel:libQt6Quick$secondaryArchSuffix - devel:libQt6Sql$secondaryArchSuffix - devel:libqt6uitools$secondaryArchSuffix devel:libQt6Widgets$secondaryArchSuffix - devel:libQt6Xml$secondaryArchSuffix - devel:libSDL2_2.0$secondaryArchSuffix - devel:libwebm$secondaryArchSuffix - devel:libx264$secondaryArchSuffix " BUILD_PREREQUIRES=" cmd:cmake cmd:gcc$secondaryArchSuffix cmd:getconf - cmd:lrelease$secondaryArchSuffix >= 5 cmd:make cmd:pkg_config$secondaryArchSuffix cmd:qmake6$secondaryArchSuffix " +defineDebugInfoPackage shotcut$secondaryArchSuffix \ + $binDir/shotcut + BUILD() { export CXXFLAGS+=" -DSHOTCUT_NOUPGRADE" - cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=Release \ + cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=RelWithDebInfo \ $cmakeDirArgs \ -DSHOTCUT_VERSION=$portVersion + make -C build $jobArgs } @@ -93,8 +81,22 @@ INSTALL() rm -rf $dataDir/{applications,icons,metainfo} - mkdir -p $appsDir - mv $binDir/shotcut $appsDir/Shotcut + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local APP_NAME="Shotcut" + local LONG_INFO="$SUMMARY" + local APP_SIGNATURE="application/x-vnd.shotcut" + sed \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + -e "s|@APP_NAME@|$APP_NAME|" \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + $portDir/additional-files/shotcut.rdef.in > shotcut.rdef - addAppDeskbarSymlink $appsDir/Shotcut + addResourcesToBinaries shotcut.rdef $binDir/shotcut + + addAppDeskbarSymlink $binDir/shotcut Shotcut }