diff --git a/media-gfx/krita/krita-5.2.2.recipe b/media-gfx/krita/krita-5.2.6.recipe similarity index 94% rename from media-gfx/krita/krita-5.2.2.recipe rename to media-gfx/krita/krita-5.2.6.recipe index babe54aa5..3e1098edf 100644 --- a/media-gfx/krita/krita-5.2.2.recipe +++ b/media-gfx/krita/krita-5.2.6.recipe @@ -4,13 +4,12 @@ for digital painting and animation purposes. It features a low-distract UI, high OpenGL accelerated canvas, color management support, advanced brush engine, non-destructive \ layers and masks, group-based layer management, vector artwork support and switchable customization profiles." HOMEPAGE="https://www.krita.org/" -COPYRIGHT="2010-2023 KDE Organisation" +COPYRIGHT="2010-2024 KDE Organisation" LICENSE="GNU LGPL v2" -REVISION="2" +REVISION="1" SOURCE_URI="https://download.kde.org/stable/krita/$portVersion/krita-$portVersion.tar.xz" -CHECKSUM_SHA256="41515784d65b5bf12919df909f7406dc90f37076587b8c459ef2abd569a71adb" +CHECKSUM_SHA256="7a9be2c782a87b349e2267bda74ecc43381a085b639b5b2b91da1c56f977de59" SOURCE_DIR="krita-$portVersion" -PATCHES="krita-$portVersion.patchset" ADDITIONAL_FILES=" krita.rdef.in icons.zip @@ -47,6 +46,7 @@ REQUIRES=" lib:libintl$secondaryArchSuffix lib:libjpeg$secondaryArchSuffix lib:libjson_c$secondaryArchSuffix + lib:libjxl$secondaryArchSuffix lib:libKF5Archive$secondaryArchSuffix lib:libKF5Auth$secondaryArchSuffix lib:libKF5Bookmarks$secondaryArchSuffix @@ -109,6 +109,9 @@ REQUIRES=" BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel extra_cmake_modules$secondaryArchSuffix + pyqt5$secondaryArchSuffix + pyqt5_python310$secondaryArchSuffix + pyqt5_sip$secondaryArchSuffix devel:eigen$secondaryArchSuffix devel:immer$secondaryArchSuffix devel:lager$secondaryArchSuffix @@ -132,7 +135,9 @@ BUILD_REQUIRES=" devel:libIex_3_0$secondaryArchSuffix devel:libIlmThread_3_0$secondaryArchSuffix devel:libImath_3_0$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix devel:libjson_c$secondaryArchSuffix + devel:libjxl$secondaryArchSuffix devel:libKF5Archive$secondaryArchSuffix devel:libKF5Auth$secondaryArchSuffix devel:libKF5Bookmarks$secondaryArchSuffix @@ -169,12 +174,14 @@ BUILD_REQUIRES=" devel:libOpenColorIO$secondaryArchSuffix devel:libOpenEXR_3_0$secondaryArchSuffix devel:libOpenEXRUtil_3_0$secondaryArchSuffix + devel:libopenjp2$secondaryArchSuffix devel:libpng16$secondaryArchSuffix - devel:libpoppler_qt5$secondaryArchSuffix >= 1.33 + devel:libpoppler_qt5$secondaryArchSuffix devel:libQt5Core$secondaryArchSuffix devel:libquazip5$secondaryArchSuffix devel:libswscale$secondaryArchSuffix devel:libtiff$secondaryArchSuffix + devel:libturbojpeg$secondaryArchSuffix devel:libunibreak$secondaryArchSuffix >= 5 devel:libwebp$secondaryArchSuffix devel:libz$secondaryArchSuffix @@ -200,7 +207,6 @@ BUILD() -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$appsDir/Krita \ -DSHARE_INSTALL_PREFIX=$appsDir/Krita/share \ - -DOPENEXR_INCLUDE_DIR:PATH=/system/$relativeIncludeDir/OpenEXR \ -DECM_DIR=/system/data/cmake/Modules/ECM/cmake \ -DQML_INSTALL_DIR=$dataDir/Qt5/qml \ -DBUILD_TESTING=FALSE \ diff --git a/media-gfx/krita/patches/krita-5.2.2.patchset b/media-gfx/krita/patches/krita-5.2.2.patchset deleted file mode 100644 index 82e21a492..000000000 --- a/media-gfx/krita/patches/krita-5.2.2.patchset +++ /dev/null @@ -1,254 +0,0 @@ -From bb0ce36c42184610b8743d0b029bbb28f3decb7a Mon Sep 17 00:00:00 2001 -From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Thu, 14 Mar 2024 20:31:24 +1000 -Subject: Fix for Haiku - - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8e1b6ff..df1172b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -539,7 +539,7 @@ if (Qt5QuickWidgets_FOUND) - endif() - - --if (NOT WIN32 AND NOT APPLE AND NOT ANDROID) -+if (NOT WIN32 AND NOT APPLE AND NOT ANDROID AND NOT HAIKU) - - find_package(Qt5 ${MIN_QT_VERSION} REQUIRED X11Extras) - -diff --git a/krita/main.cc b/krita/main.cc -index d2965ab..6502078 100644 ---- a/krita/main.cc -+++ b/krita/main.cc -@@ -80,6 +80,12 @@ - #include "libs/macosutils/KisMacosSystemProber.h" - #endif - -+#ifdef Q_OS_HAIKU -+#include -+#include -+#include -+#endif -+ - #if defined HAVE_KCRASH - #include - #elif defined USE_DRMINGW -@@ -423,6 +429,9 @@ extern "C" MAIN_EXPORT int MAIN_FN(int argc, char **argv) - // NOTE: This line helps also fontconfig have a user-accessible location on Android (see the commit). - qputenv("XDG_DATA_DIRS", QFile::encodeName(root + "share") + ":" + originalXdgDataDirs); - } -+#elif defined(Q_OS_HAIKU) -+ qputenv("KRITA_PLUGIN_PATH", QFile::encodeName(root + "lib")); -+ qputenv("XDG_DATA_DIRS", QFile::encodeName(root + "share") + ":" + qgetenv("XDG_DATA_DIRS")); - #else - qputenv("XDG_DATA_DIRS", QFile::encodeName(QDir(root + "share").absolutePath())); - #endif -@@ -774,6 +783,10 @@ extern "C" MAIN_EXPORT int MAIN_FN(int argc, char **argv) - KisUsageLogger::close(); - } - -+#ifdef Q_OS_HAIKU -+ kill(::getpid(), SIGKILL); -+#endif -+ - return state; - } - -diff --git a/libs/image/kis_image_config.cpp b/libs/image/kis_image_config.cpp -index 5df268c..b30bca1 100644 ---- a/libs/image/kis_image_config.cpp -+++ b/libs/image/kis_image_config.cpp -@@ -410,6 +410,8 @@ void KisImageConfig::setAutoKeyModeDuplicate(bool value) - - #if defined Q_OS_LINUX - #include -+#elif defined Q_OS_HAIKU -+#include - #elif defined Q_OS_FREEBSD || defined Q_OS_NETBSD || defined Q_OS_OPENBSD - #include - #elif defined Q_OS_WIN -@@ -432,6 +434,13 @@ int KisImageConfig::totalRAM() - if(!error) { - totalMemory = info.totalram * info.mem_unit / (1UL << 20); - } -+#elif defined Q_OS_HAIKU -+ system_info info; -+ error = get_system_info(&info) == B_OK ? 0 : 1; -+ if (!error) { -+ uint64_t size = (info.max_pages * B_PAGE_SIZE); -+ totalMemory = size >> 20; -+ } - #elif defined Q_OS_FREEBSD || defined Q_OS_NETBSD || defined Q_OS_OPENBSD - u_long physmem; - # if defined HW_PHYSMEM64 // NetBSD only -diff --git a/libs/resources/KoResourcePaths.cpp b/libs/resources/KoResourcePaths.cpp -index cd4343d..553433a 100644 ---- a/libs/resources/KoResourcePaths.cpp -+++ b/libs/resources/KoResourcePaths.cpp -@@ -139,6 +139,8 @@ QString getInstallationPrefix() { - } - - return bundlePath; -+#elif defined(Q_OS_HAIKU) -+ return qApp->applicationDirPath() + "/"; - #elif defined(Q_OS_ANDROID) - // qApp->applicationDirPath() isn't writable and android system won't allow - // any files other than libraries -diff --git a/libs/ui/CMakeLists.txt b/libs/ui/CMakeLists.txt -index 969938a..a0618dc 100644 ---- a/libs/ui/CMakeLists.txt -+++ b/libs/ui/CMakeLists.txt -@@ -711,11 +711,15 @@ if (ANDROID) - target_link_libraries(kritaui PRIVATE Qt5::AndroidExtras) - endif() - --if (NOT WIN32 AND NOT APPLE AND NOT ANDROID) -+if (NOT WIN32 AND NOT APPLE AND NOT ANDROID AND NOT HAIKU) - target_link_libraries(kritaui PRIVATE ${X11_X11_LIB} - ${X11_Xinput_LIB}) - endif() - -+if (HAIKU) -+ target_link_libraries(kritaui PRIVATE network expat iconv intl) -+endif() -+ - if(APPLE) - target_link_libraries(kritaui - PUBLIC -@@ -732,7 +736,7 @@ if(OpenEXR_FOUND) - endif() - - # Add VSync disable workaround --if(NOT WIN32 AND NOT APPLE AND NOT ANDROID) -+if(NOT WIN32 AND NOT APPLE AND NOT ANDROID AND NOT HAIKU) - target_link_libraries(kritaui PRIVATE ${CMAKE_DL_LIBS} Qt5::X11Extras) - endif() - -diff --git a/libs/ui/KisApplication.cpp b/libs/ui/KisApplication.cpp -index 5395bac..1ba9abb 100644 ---- a/libs/ui/KisApplication.cpp -+++ b/libs/ui/KisApplication.cpp -@@ -209,7 +209,7 @@ KisApplication::KisApplication(const QString &key, int &argc, char **argv) - setWindowIcon(KisIconUtils::loadIcon("krita-branding")); - - if (qgetenv("KRITA_NO_STYLE_OVERRIDE").isEmpty()) { -- QStringList styles = QStringList() << "macintosh" << "breeze" << "fusion"; -+ QStringList styles = QStringList() << "haiku" << "macintosh" << "breeze" << "fusion"; - if (!styles.contains(style()->objectName().toLower())) { - Q_FOREACH (const QString & style, styles) { - if (!setStyle(style)) { -@@ -450,9 +450,10 @@ bool KisApplication::start(const KisApplicationArguments &args) - } - - KConfigGroup group(KSharedConfig::openConfig(), "theme"); -+#ifndef Q_OS_HAIKU - Digikam::ThemeManager themeManager; - themeManager.setCurrentTheme(group.readEntry("Theme", "Krita dark")); -- -+#endif - - ResetStarting resetStarting(d->splashScreen, args.filenames().count()); // remove the splash when done - Q_UNUSED(resetStarting); -diff --git a/libs/ui/KisMainWindow.cpp b/libs/ui/KisMainWindow.cpp -index a65d2d4..27b4a4b 100644 ---- a/libs/ui/KisMainWindow.cpp -+++ b/libs/ui/KisMainWindow.cpp -@@ -282,9 +282,9 @@ public: - KoToolDocker *toolOptionsDocker {nullptr}; - - QCloseEvent *deferredClosingEvent {nullptr}; -- -+#ifndef Q_OS_HAIKU - Digikam::ThemeManager *themeManager {nullptr}; -- -+#endif - QScrollArea *welcomeScroller {nullptr}; - KisWelcomePageWidget *welcomePage {nullptr}; - -@@ -352,8 +352,9 @@ KisMainWindow::KisMainWindow(QUuid uuid) - - d->viewManager = new KisViewManager(this, actionCollection()); - KConfigGroup group( KSharedConfig::openConfig(), "theme"); -+#ifndef Q_OS_HAIKU - d->themeManager = new Digikam::ThemeManager(group.readEntry("Theme", "Krita dark"), this); -- -+#endif - d->windowStateConfig = KSharedConfig::openConfig()->group("MainWindow"); - - setStandardToolBarMenuEnabled(true); -@@ -879,12 +880,12 @@ void KisMainWindow::updateTheme() - void KisMainWindow::slotThemeChanged() - { - KConfigGroup group(KSharedConfig::openConfig(), "theme"); -- -+#ifndef Q_OS_HAIKU - if (group.readEntry("Theme", "") == d->themeManager->currentThemeName()) return; - - // save theme changes instantly - group.writeEntry("Theme", d->themeManager->currentThemeName()); -- -+#endif - updateTheme(); - - // Make the other top level windows update as well -@@ -2761,7 +2762,9 @@ void KisMainWindow::configChanged() - #endif - - KConfigGroup group( KSharedConfig::openConfig(), "theme"); -+#ifndef Q_OS_HAIKU - d->themeManager->setCurrentTheme(group.readEntry("Theme", "Krita dark")); -+#endif - d->actionManager()->updateGUI(); - - QString s = cfg.getMDIBackgroundColor(); -@@ -2949,11 +2952,12 @@ void KisMainWindow::createActions() - intends to show data this entry should not have a trailing ellipses (...). */ - d->showDocumentInfo = actionManager->createAction("file_documentinfo"); - connect(d->showDocumentInfo, SIGNAL(triggered(bool)), this, SLOT(slotDocumentInfo())); -- -+#ifndef Q_OS_HAIKU - d->themeManager->setThemeMenuAction(new KActionMenu(i18nc("@action:inmenu", "&Themes"), this)); - d->themeManager->registerThemeActions(actionCollection()); - connect(d->themeManager, SIGNAL(signalThemeChanged()), this, SLOT(slotThemeChanged()), Qt::QueuedConnection); - connect(this, SIGNAL(themeChanged()), d->welcomePage, SLOT(slotUpdateThemeColors()), Qt::UniqueConnection); -+#endif - d->toggleDockers = actionManager->createAction("view_toggledockers"); - - -diff --git a/libs/ui/widgets/kis_floating_message.cpp b/libs/ui/widgets/kis_floating_message.cpp -index 693a0f3..460722c 100644 ---- a/libs/ui/widgets/kis_floating_message.cpp -+++ b/libs/ui/widgets/kis_floating_message.cpp -@@ -88,6 +88,7 @@ void KisFloatingMessage::tryOverrideMessage(const QString message, - KisFloatingMessage::Priority priority, - int alignment) - { -+#ifndef Q_OS_HAIKU - if ((int)priority > (int)m_priority) return; - - m_message = message; -@@ -98,6 +99,7 @@ void KisFloatingMessage::tryOverrideMessage(const QString message, - m_alignment = alignment; - showMessage(); - update(); -+#endif - } - - void KisFloatingMessage::showMessage() -diff --git a/plugins/dockers/CMakeLists.txt b/plugins/dockers/CMakeLists.txt -index fd3d0bd..5ae73be 100644 ---- a/plugins/dockers/CMakeLists.txt -+++ b/plugins/dockers/CMakeLists.txt -@@ -14,7 +14,7 @@ add_subdirectory(compositiondocker) - add_subdirectory(patterndocker) - add_subdirectory(griddocker) - add_subdirectory(arrangedocker) --if(HAVE_OCIO) -+if(HAVE_OCIO AND NOT HAIKU) - add_subdirectory(lut) - endif() - add_subdirectory(overview) --- -2.43.2 - diff --git a/media-gfx/krita/patches/krita-openexr3.patch b/media-gfx/krita/patches/krita-openexr3.patch deleted file mode 100644 index 31efb8308..000000000 --- a/media-gfx/krita/patches/krita-openexr3.patch +++ /dev/null @@ -1,136 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4e8f456492..9a3ae863ec 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -649,15 +649,20 @@ set_package_properties(ZLIB PROPERTIES - PURPOSE "Optionally used by the G'Mic and the PSD plugins") - macro_bool_to_01(ZLIB_FOUND HAVE_ZLIB) - --find_package(OpenEXR) -+find_package(OpenEXR 3.0 CONFIG QUIET) -+if(TARGET OpenEXR::OpenEXR) -+ set(OPENEXR_LIBRARIES OpenEXR::OpenEXR) -+else() -+ find_package(OpenEXR) -+endif() - set_package_properties(OpenEXR PROPERTIES - DESCRIPTION "High dynamic-range (HDR) image file format" - URL "https://www.openexr.com" - TYPE OPTIONAL - PURPOSE "Required by the Krita OpenEXR filter") --macro_bool_to_01(OPENEXR_FOUND HAVE_OPENEXR) -+macro_bool_to_01(OpenEXR_FOUND HAVE_OPENEXR) - set(LINK_OPENEXR_LIB) --if(OPENEXR_FOUND) -+if(OpenEXR_FOUND) - include_directories(SYSTEM ${OPENEXR_INCLUDE_DIRS}) - set(LINK_OPENEXR_LIB ${OPENEXR_LIBRARIES}) - add_definitions(${OPENEXR_DEFINITIONS}) -diff --git a/libs/image/CMakeLists.txt b/libs/image/CMakeLists.txt -index e9ff363df3..59e567fa04 100644 ---- a/libs/image/CMakeLists.txt -+++ b/libs/image/CMakeLists.txt -@@ -367,7 +367,7 @@ if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB) - endif() - endif() - --if(OPENEXR_FOUND) -+if(OpenEXR_FOUND) - target_link_libraries(kritaimage PUBLIC ${OPENEXR_LIBRARIES}) - endif() - -diff --git a/libs/pigment/CMakeLists.txt b/libs/pigment/CMakeLists.txt -index 3e8bcf9e25..d55fd8714f 100644 ---- a/libs/pigment/CMakeLists.txt -+++ b/libs/pigment/CMakeLists.txt -@@ -14,7 +14,7 @@ include_directories( - - set(FILE_OPENEXR_SOURCES) - set(LINK_OPENEXR_LIB) --if(OPENEXR_FOUND) -+if(OpenEXR_FOUND) - include_directories(SYSTEM ${OPENEXR_INCLUDE_DIRS}) - set(LINK_OPENEXR_LIB ${OPENEXR_LIBRARIES}) - add_definitions(${OPENEXR_DEFINITIONS}) -diff --git a/plugins/color/lcms2engine/CMakeLists.txt b/plugins/color/lcms2engine/CMakeLists.txt -index 86b83710dc..801783c1f3 100644 ---- a/plugins/color/lcms2engine/CMakeLists.txt -+++ b/plugins/color/lcms2engine/CMakeLists.txt -@@ -28,7 +28,7 @@ include_directories( - ${CMAKE_CURRENT_SOURCE_DIR}/colorprofiles - ) - --if (HAVE_LCMS24 AND OPENEXR_FOUND) -+if (HAVE_LCMS24 AND OpenEXR_FOUND) - include_directories( - ${CMAKE_CURRENT_SOURCE_DIR}/colorspaces/gray_f16 - ${CMAKE_CURRENT_SOURCE_DIR}/colorspaces/rgb_f16 -@@ -38,7 +38,7 @@ endif () - - set(FILE_OPENEXR_SOURCES) - set(LINK_OPENEXR_LIB) --if(OPENEXR_FOUND) -+if(OpenEXR_FOUND) - include_directories(SYSTEM ${OPENEXR_INCLUDE_DIRS}) - set(LINK_OPENEXR_LIB ${OPENEXR_LIBRARIES}) - add_definitions(${OPENEXR_DEFINITIONS}) -@@ -77,7 +77,7 @@ set ( lcmsengine_SRCS - LcmsEnginePlugin.cpp - ) - --if (HAVE_LCMS24 AND OPENEXR_FOUND) -+if (HAVE_LCMS24 AND OpenEXR_FOUND) - set ( lcmsengine_SRCS - ${lcmsengine_SRCS} - colorspaces/gray_f16/GrayF16ColorSpace.cpp -diff --git a/plugins/color/lcms2engine/tests/CMakeLists.txt b/plugins/color/lcms2engine/tests/CMakeLists.txt -index ae69220698..8c5fe5d061 100644 ---- a/plugins/color/lcms2engine/tests/CMakeLists.txt -+++ b/plugins/color/lcms2engine/tests/CMakeLists.txt -@@ -11,7 +11,7 @@ include_directories( ../colorspaces/cmyk_u16 - ../colorprofiles - .. - ) --if(OPENEXR_FOUND) -+if(OpenEXR_FOUND) - include_directories(SYSTEM ${OPENEXR_INCLUDE_DIRS}) - endif() - include_directories( ${LCMS2_INCLUDE_DIR} ) -diff --git a/plugins/impex/CMakeLists.txt b/plugins/impex/CMakeLists.txt -index 63df1fd69a..c94674b381 100644 ---- a/plugins/impex/CMakeLists.txt -+++ b/plugins/impex/CMakeLists.txt -@@ -19,7 +19,7 @@ if(PNG_FOUND) - add_subdirectory(csv) - endif() - --if(OPENEXR_FOUND) -+if(OpenEXR_FOUND) - add_subdirectory(exr) - endif() - -diff --git a/plugins/impex/exr/exr_converter.cc b/plugins/impex/exr/exr_converter.cc -index f63ab73cd9..d620062594 100644 ---- a/plugins/impex/exr/exr_converter.cc -+++ b/plugins/impex/exr/exr_converter.cc -@@ -11,6 +11,8 @@ - - #include - #include -+#include -+#include - #include - #include - -diff --git a/plugins/impex/raw/CMakeLists.txt b/plugins/impex/raw/CMakeLists.txt -index 71cb5b355c..f65bc770a5 100644 ---- a/plugins/impex/raw/CMakeLists.txt -+++ b/plugins/impex/raw/CMakeLists.txt -@@ -1,6 +1,6 @@ - add_subdirectory(tests) - --if(OPENEXR_FOUND) -+if(OpenEXR_FOUND) - include_directories(${OPENEXR_INCLUDE_DIRS}) - endif() - include_directories(${LibRaw_INCLUDE_DIR})