Krita: bump to 5.2.6 (#11182)

This commit is contained in:
kenmays
2024-12-23 00:42:16 -08:00
committed by GitHub
parent 9b7b0af5e3
commit 924aa93d41
3 changed files with 12 additions and 396 deletions

View File

@@ -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 \

View File

@@ -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 <unistd.h>
+#include <sys/types.h>
+#include <signal.h>
+#endif
+
#if defined HAVE_KCRASH
#include <kcrash.h>
#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 <sys/sysinfo.h>
+#elif defined Q_OS_HAIKU
+#include <OS.h>
#elif defined Q_OS_FREEBSD || defined Q_OS_NETBSD || defined Q_OS_OPENBSD
#include <sys/sysctl.h>
#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

View File

@@ -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 <ImfAttribute.h>
#include <ImfChannelList.h>
+#include <ImfFrameBuffer.h>
+#include <ImfHeader.h>
#include <ImfInputFile.h>
#include <ImfOutputFile.h>
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})