commit: cd9dab049a84ebea8246693f270e564e8183e057 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Mon Oct 20 11:39:20 2025 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Mon Oct 20 15:33:34 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cd9dab04
media-gfx/krita: add 6.0.0_alpha_pre20251020 Fixes build with Qt 6.10, boost-1.89, eigen-5. Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> media-gfx/krita/Manifest | 1 + .../krita-6.0.0_alpha_pre20251020-qt6.10.patch | 131 +++++++++++++++++++++ .../krita/krita-6.0.0_alpha_pre20251020.ebuild | 128 ++++++++++++++++++++ 3 files changed, 260 insertions(+) diff --git a/media-gfx/krita/Manifest b/media-gfx/krita/Manifest index 41ee2fefd2a7..cc0b1dfc4454 100644 --- a/media-gfx/krita/Manifest +++ b/media-gfx/krita/Manifest @@ -1,2 +1,3 @@ DIST krita-5.2.13.tar.xz 191046020 BLAKE2B 243027d0dde4a58da335ba182d700d9f351b1aaa6d1806bd0d41725fe4fbb6f6939ce9ca06592621cc8083a3ab4b1f2545bc72330623bd8e3bb5a276e670a21f SHA512 71900f653b4534bf4c5d62a5c5aa523b8cc484eaabd5a92562b420fc5d2d670cc11203be93450557345c35c1d249def308b1913e1952b570eeaba4f48cab3a24 DIST krita-6.0.0_alpha_pre20250902-cec72dd2.tar.gz 284205558 BLAKE2B 7b907b18c650c843b5c28af33dbe99ca023f470bdb8ea1fc9ab51768f00d214664af24d7289eec09deb5e942879738b31088486f0b63ff15f3a142e607e28577 SHA512 2854047e27bf654b955a585b4ba7b0903a20cc01b8b37f068fc7021f7085ab45f890e50b868843de0c44742a4bf094550a10ef3c933310f423342c2efbffdb54 +DIST krita-6.0.0_alpha_pre20251020-87f39a5e.tar.gz 280088596 BLAKE2B 0b8a5b9ca77448e9f8cf9d2c6011513fbd13cb18e34e01180dfc52da4e36e8c96b9bb4c5811be1c4f4ad83134d5723f7bcbcdef34423764e5cd09a61ae939df1 SHA512 e480f83f725c15d52c626adf2be88249bb80ee5d7631910edaf138d4a4ebf1a0a6ca2812dc21dddcdb7b9eaf49d0cc7a8b7a48b267b93a8ae7ab8473cc83e7cf diff --git a/media-gfx/krita/files/krita-6.0.0_alpha_pre20251020-qt6.10.patch b/media-gfx/krita/files/krita-6.0.0_alpha_pre20251020-qt6.10.patch new file mode 100644 index 000000000000..b8c4e2b264af --- /dev/null +++ b/media-gfx/krita/files/krita-6.0.0_alpha_pre20251020-qt6.10.patch @@ -0,0 +1,131 @@ +Source: https://invent.kde.org/graphics/krita/-/merge_requests/2386 + +From c2bcea11d461729c6c156d43452d289d895d200b Mon Sep 17 00:00:00 2001 +From: Joshua Goins <[email protected]> +Date: Sat, 11 Oct 2025 22:10:29 -0400 +Subject: [PATCH 1/2] Manually define Qt6Gui_PRIVATE_INCLUDE_DIRS CMake + variable + +Previously Krita was dependent on an implementation detail of Qt's CMake +module, which has a history of breaking. For reference, Krita no longer +builds on Qt dev because they shuffled things around again! + +Most notably, the variable Krita used isn't available anymore - so we +need to manually re-create it so the other parts of the CMakeLists +will work. The more correct and reliable solution would be to use the +Qt6Private target itself, but Krita needs to selectively use the private +headers for compilation speed reasons, so I decided to add a workaround +for now. +--- + CMakeLists.txt | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b0f27a21ce8..c822d86b62e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -543,12 +543,33 @@ if (QT_MAJOR_VERSION STREQUAL "6") + REQUIRED COMPONENTS + ColorScheme + ) ++ ++ # Qt 6.10 has split this into it's own CMake module, it's no longer included with Gui ++ if (Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0") ++ find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) ++ get_target_property(Qt6Gui_PRIVATE_INCLUDE_DIRS Qt6::GuiPrivate INTERFACE_INCLUDE_DIRECTORIES) ++ ++ # QtGui depends on private headers form QtCore as well ++ find_package(Qt6CorePrivate ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) ++ get_target_property(Qt6Core_PRIVATE_INCLUDE_DIRS Qt6::CorePrivate INTERFACE_INCLUDE_DIRECTORIES) ++ ++ # Currently we depend on the Qt6Gui_PRIVATE_INCLUDE_DIRS variable to selectively include ++ # the needed headers, but it will fail to compile in 6.10 since the private headers exist ++ # in separate directories. So we'll just shove them into the variable we expect for now. ++ list(APPEND Qt6Gui_PRIVATE_INCLUDE_DIRS ${Qt6Core_PRIVATE_INCLUDE_DIRS}) ++ endif() + endif() + + set(HAVE_WAYLAND FALSE) + if (TARGET Qt::WaylandClient) + message(STATUS "Found Qt::WaylandClient, enabling kritawayland platform") + set(HAVE_WAYLAND TRUE) ++ ++ # Qt 6.10 has split the private module, see above for a better explanation ++ if (Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0") ++ find_package(Qt6WaylandClientPrivate ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) ++ get_target_property(Qt6WaylandClient_PRIVATE_INCLUDE_DIRS Qt6::WaylandClientPrivate INTERFACE_INCLUDE_DIRECTORIES) ++ endif() + endif() + + option(KRITA_USE_SURFACE_COLOR_MANAGEMENT_API "Use per-surface color management API (e.g. when using Wayland)" ${HAVE_WAYLAND}) +-- +GitLab + + +From 64a665a1917657c8b0ad5238ccd0539192111bad Mon Sep 17 00:00:00 2001 +From: Joshua Goins <[email protected]> +Date: Sat, 11 Oct 2025 22:10:41 -0400 +Subject: [PATCH 2/2] Add missing QElapsedTimer includes in tests + +Some upstream header that previously included QElapsedTimer no longer +does in Qt 6.10, so I had to add these to get the full build to +complete. +--- + benchmarks/KisAnimationRenderingBenchmark.cpp | 1 + + benchmarks/kis_painter_benchmark.cpp | 1 + + libs/image/tests/KisOverlayPaintDeviceWrapperTest.cpp | 2 ++ + sdk/tests/stroke_testing_utils.cpp | 1 + + 4 files changed, 5 insertions(+) + +diff --git a/benchmarks/KisAnimationRenderingBenchmark.cpp b/benchmarks/KisAnimationRenderingBenchmark.cpp +index 808561dac07..bf21a736730 100644 +--- a/benchmarks/KisAnimationRenderingBenchmark.cpp ++++ b/benchmarks/KisAnimationRenderingBenchmark.cpp +@@ -6,6 +6,7 @@ + + #include "KisAnimationRenderingBenchmark.h" + ++#include <QElapsedTimer> + #include <QThread> + #include <simpletest.h> + +diff --git a/benchmarks/kis_painter_benchmark.cpp b/benchmarks/kis_painter_benchmark.cpp +index b1a71bbfb29..ebc78092180 100644 +--- a/benchmarks/kis_painter_benchmark.cpp ++++ b/benchmarks/kis_painter_benchmark.cpp +@@ -16,6 +16,7 @@ inline double drand48() + #include <simpletest.h> + + #include <QtMath> ++#include <QElapsedTimer> + #include <QImage> + #include <kis_debug.h> + +diff --git a/libs/image/tests/KisOverlayPaintDeviceWrapperTest.cpp b/libs/image/tests/KisOverlayPaintDeviceWrapperTest.cpp +index 33795764645..e91cc7197ea 100644 +--- a/libs/image/tests/KisOverlayPaintDeviceWrapperTest.cpp ++++ b/libs/image/tests/KisOverlayPaintDeviceWrapperTest.cpp +@@ -11,6 +11,8 @@ + #include <kis_paint_device.h> + #include "kistest.h" + ++#include <QElapsedTimer> ++ + #include <KoColor.h> + + #include <kis_paint_device_debug_utils.h> +diff --git a/sdk/tests/stroke_testing_utils.cpp b/sdk/tests/stroke_testing_utils.cpp +index de71601ff46..b037e218293 100644 +--- a/sdk/tests/stroke_testing_utils.cpp ++++ b/sdk/tests/stroke_testing_utils.cpp +@@ -9,6 +9,7 @@ + #include <simpletest.h> + + #include <QDir> ++#include <QElapsedTimer> + #include <KoColor.h> + #include <KoColorSpace.h> + #include <KoColorSpaceRegistry.h> +-- +GitLab + diff --git a/media-gfx/krita/krita-6.0.0_alpha_pre20251020.ebuild b/media-gfx/krita/krita-6.0.0_alpha_pre20251020.ebuild new file mode 100644 index 000000000000..5957fad541c8 --- /dev/null +++ b/media-gfx/krita/krita-6.0.0_alpha_pre20251020.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_TEST="forceoptional" +KDE_ORG_COMMIT=87f39a5e846493df94cef498413f85b70f282e6d +PYTHON_COMPAT=( python3_{11..13} ) +KFMIN=6.9.0 +QTMIN=6.8.0 +inherit ecm kde.org python-single-r1 xdg + +DESCRIPTION="Free digital painting application. Digital Painting, Creative Freedom!" +HOMEPAGE="https://apps.kde.org/krita/ https://krita.org/en/" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="" +IUSE="color-management fftw gif +gsl heif jpeg2k jpegxl +mypaint-brush-engine openexr pdf media +raw webp" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +# bug 630508 +RESTRICT="test" + +COMMON_DEPEND="${PYTHON_DEPS} + >=dev-cpp/xsimd-13.0.0 + dev-libs/boost:= + dev-libs/libunibreak:= + >=dev-libs/quazip-1.3-r2:0=[qt6(+)] + $(python_gen_cond_dep ' + dev-python/pyqt6[gui,qml,widgets,${PYTHON_USEDEP}] + dev-python/sip:=[${PYTHON_USEDEP}] + ') + >=dev-qt/qt5compat-${QTMIN}:6 + >=dev-qt/qtbase-${QTMIN}:6=[concurrent,dbus,-gles2-only,gui,network,opengl,sql,wayland,widgets,X,xml] + >=dev-qt/qtdeclarative-${QTMIN}:6 + >=dev-qt/qtsvg-${QTMIN}:6 + >=kde-frameworks/kcolorscheme-${KFMIN}:6 + >=kde-frameworks/kcompletion-${KFMIN}:6 + >=kde-frameworks/kconfig-${KFMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/kcrash-${KFMIN}:6 + >=kde-frameworks/kguiaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kiconthemes-${KFMIN}:6 + >=kde-frameworks/kitemmodels-${KFMIN}:6 + >=kde-frameworks/kitemviews-${KFMIN}:6 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:6 + >=kde-frameworks/kwindowsystem-${KFMIN}:6 + >=kde-frameworks/kxmlgui-${KFMIN}:6 + media-gfx/exiv2:= + media-libs/lcms + media-libs/libjpeg-turbo:= + media-libs/libpng:= + media-libs/tiff:= + sys-libs/zlib + virtual/opengl + x11-libs/libX11 + x11-libs/libXi + color-management? ( >=media-libs/opencolorio-2.0.0 ) + fftw? ( sci-libs/fftw:3.0= ) + gif? ( media-libs/giflib ) + gsl? ( sci-libs/gsl:= ) + jpeg2k? ( media-libs/openjpeg:= ) + jpegxl? ( >=media-libs/libjxl-0.7.0_pre20220825:= ) + heif? ( >=media-libs/libheif-1.11:=[x265] ) + media? ( media-libs/mlt:= ) + mypaint-brush-engine? ( media-libs/libmypaint:= ) + openexr? ( media-libs/openexr:= ) + pdf? ( app-text/poppler[qt6(-)] ) + raw? ( kde-apps/libkdcraw:6 ) + webp? ( >=media-libs/libwebp-1.2.0:= ) + +" +RDEPEND="${COMMON_DEPEND} + !${CATEGORY}/${PN}:5 +" +RDEPEND+=" || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 )" +DEPEND="${COMMON_DEPEND} + dev-libs/immer + dev-libs/lager + dev-libs/zug +" +BDEPEND=" + dev-cpp/eigen:3 + dev-lang/perl + sys-devel/gettext +" + +PATCHES=( + # downstream + "${FILESDIR}"/${PN}-5.3.0-tests-optional.patch + "${FILESDIR}"/${PN}-5.2.2-fftw.patch # bug 913518 + # pending upstream + "${FILESDIR}"/${P}-qt6.10.patch +) + +src_prepare() { + rm -r packaging || die # unused and too low CMake minimum + ecm_src_prepare +} + +src_configure() { + # Prevent sandbox violation from FindPyQt5.py module + # See Gentoo-bug 655918 + addpredict /dev/dri + + local mycmakeargs=( + -DBUILD_WITH_QT6=ON + -DENABLE_UPDATERS=OFF + -DKRITA_ENABLE_PCH=OFF # big mess. + -DCMAKE_DISABLE_FIND_PACKAGE_KSeExpr=ON # not packaged + $(cmake_use_find_package color-management OpenColorIO) + $(cmake_use_find_package fftw FFTW3) + $(cmake_use_find_package gif GIF) + $(cmake_use_find_package gsl GSL) + $(cmake_use_find_package heif HEIF) + $(cmake_use_find_package jpeg2k OpenJPEG) + $(cmake_use_find_package jpegxl JPEGXL) + $(cmake_use_find_package media Mlt7) + $(cmake_use_find_package mypaint-brush-engine LibMyPaint) + $(cmake_use_find_package openexr OpenEXR) + $(cmake_use_find_package pdf Poppler) + $(cmake_use_find_package raw KDcrawQt6) + $(cmake_use_find_package webp WebP) + ) + ecm_src_configure +}
