From a9deb0ccf181018c7c6f8144cfdc05307d6fcdd3 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Sat, 13 Jul 2024 20:45:12 +0200 Subject: media-gfx/krita: enable py3.12, add IUSE media, xsimd; re-add jpeg2k IUSE raw switched back to kde-apps/libkdcraw Upstream commit 02f4f845eaf789d3840805e69bdbb38f131a3cc7 IUSE media w/ media-video/mlt replaces IUSE qtmedia w/ dev-qt/qtmultimedia Upstream commits: 7f976690636071a2387d8ca9c4203edb59489b0d c76debce1c39b337bdd21c5dc2048605dc6d267d New dependency on dev-libs/libunibreak Upstream commit 3d0ba2926f576e9dd059c2bed5264cbd8f6adcf6 Rebase tests-optional.patch on 5.2.3 Upstream commit 2acfac835adf5cb39dd6d9149c739648da060385 Sync with ::gentoo w/ minor sorting fixes, plus: - Pin down kde-apps/libkdcraw to SLOT 5 - Raise minimum dep on dev-cpp/xsimd to 13.0.0 - Drop unnecessary openjpeg patch See also: https://github.com/gentoo/gentoo/pull/34736 Bug: https://bugs.gentoo.org/921972 Signed-off-by: Andreas Sturmlechner --- .../krita/files/krita-4.3.1-tests-optional.patch | 80 ------------------- media-gfx/krita/files/krita-5.2.2-fftw.patch | 18 +++++ .../krita/files/krita-5.2.3-tests-optional.patch | 90 ++++++++++++++++++++++ media-gfx/krita/krita-9999.ebuild | 33 +++++--- media-gfx/krita/metadata.xml | 3 +- 5 files changed, 133 insertions(+), 91 deletions(-) delete mode 100644 media-gfx/krita/files/krita-4.3.1-tests-optional.patch create mode 100644 media-gfx/krita/files/krita-5.2.2-fftw.patch create mode 100644 media-gfx/krita/files/krita-5.2.3-tests-optional.patch diff --git a/media-gfx/krita/files/krita-4.3.1-tests-optional.patch b/media-gfx/krita/files/krita-4.3.1-tests-optional.patch deleted file mode 100644 index 37f2ac50ff..0000000000 --- a/media-gfx/krita/files/krita-4.3.1-tests-optional.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 2e9369281d44a2701ac7364568d381cca0d92ec5 Mon Sep 17 00:00:00 2001 -From: Andreas Sturmlechner -Date: Sun, 12 Jul 2020 18:55:31 +0200 -Subject: [PATCH] KritaAddBrokenUnitTest.cmake, MacroKritaAddBenchmark.cmake: - Skip ecm_add_test early if Qt5::Test is not available - -Signed-off-by: Andreas Sturmlechner ---- - cmake/modules/KritaAddBrokenUnitTest.cmake | 4 ++++ - cmake/modules/MacroKritaAddBenchmark.cmake | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/cmake/modules/KritaAddBrokenUnitTest.cmake b/cmake/modules/KritaAddBrokenUnitTest.cmake -index b7d0e8d852..901a0a1f99 100644 ---- a/cmake/modules/KritaAddBrokenUnitTest.cmake -+++ b/cmake/modules/KritaAddBrokenUnitTest.cmake -@@ -23,6 +23,10 @@ function(KRITA_ADD_BROKEN_UNIT_TEST) - message(FATAL_ERROR "ecm_add_test() called with multiple source files but without setting \"TEST_NAME\"") - endif() - -+ if(NOT TARGET Qt5::Test) -+ return() -+ endif() -+ - set(_testname ${ARG_NAME_PREFIX}${_targetname}) - - # add test to the global list of disabled tests -diff --git a/cmake/modules/MacroKritaAddBenchmark.cmake b/cmake/modules/MacroKritaAddBenchmark.cmake -index c748d8e319..f804d9b8f4 100644 ---- a/cmake/modules/MacroKritaAddBenchmark.cmake -+++ b/cmake/modules/MacroKritaAddBenchmark.cmake -@@ -23,6 +23,10 @@ macro (KRITA_ADD_BENCHMARK _test_NAME) - set(_nogui "NOGUI") - endif() - -+ if(NOT TARGET Qt5::Test) -+ return() -+ endif() -+ - add_executable( ${_test_NAME} ${_srcList} ) - ecm_mark_as_test(${_test_NAME}) - --- -2.27.0 - -From 3c9fe10e25e94bdb1eb5e7b07ac2696635fdc5a3 Mon Sep 17 00:00:00 2001 -From: Andreas Sturmlechner -Date: Wed, 17 Jun 2020 20:18:28 +0200 -Subject: [PATCH] Don't build tests when testing not requested - -Signed-off-by: Andreas Sturmlechner - -diff --git a/libs/flake/CMakeLists.txt b/libs/flake/CMakeLists.txt -index cbdac265d2..1a50c1620a 100644 ---- a/libs/flake/CMakeLists.txt -+++ b/libs/flake/CMakeLists.txt -@@ -9,8 +9,10 @@ include_directories( - ) - - add_subdirectory(styles) --add_subdirectory(tests) --add_subdirectory(resources/tests) -+if(BUILD_TESTING) -+ add_subdirectory(tests) -+ add_subdirectory(resources/tests) -+endif() - - set(kritaflake_SRCS - KoGradientHelper.cpp -diff --git a/libs/image/tiles3/CMakeLists.txt b/libs/image/tiles3/CMakeLists.txt -index 88c0516360..01f2383ddb 100644 ---- a/libs/image/tiles3/CMakeLists.txt -+++ b/libs/image/tiles3/CMakeLists.txt -@@ -1 +1,3 @@ --add_subdirectory(tests) -+if(BUILD_TESTING) -+ add_subdirectory(tests) -+endif() --- -2.27.0 diff --git a/media-gfx/krita/files/krita-5.2.2-fftw.patch b/media-gfx/krita/files/krita-5.2.2-fftw.patch new file mode 100644 index 0000000000..b805be6a21 --- /dev/null +++ b/media-gfx/krita/files/krita-5.2.2-fftw.patch @@ -0,0 +1,18 @@ +Disable the cmake find_package method. It will instead fallback to use pkgconfig. +Without this, it will fail to find fftw3 and error out. + +--- a/cmake/modules/FindFFTW3.cmake 2023-11-24 19:59:45.904059240 +0100 ++++ b/cmake/modules/FindFFTW3.cmake 2023-11-24 20:00:17.029563107 +0100 +@@ -74,9 +74,9 @@ + endforeach() + mark_as_advanced(PKG_FFTW_CONFIG_DIR) + +-find_package(FFTW3 QUIET NO_MODULE +- HINTS ${PKG_FFTW_CONFIG_DIR} /usr/lib/cmake/fftw3 /usr/local/lib/cmake/fftw3 +-) ++#find_package(FFTW3 QUIET NO_MODULE ++# HINTS ${PKG_FFTW_CONFIG_DIR} /usr/lib/cmake/fftw3 /usr/local/lib/cmake/fftw3 ++#) + mark_as_advanced(FFTW3_DIR) + + # if we found the FFTW3 CMake package then we can start diff --git a/media-gfx/krita/files/krita-5.2.3-tests-optional.patch b/media-gfx/krita/files/krita-5.2.3-tests-optional.patch new file mode 100644 index 0000000000..48d9e314a2 --- /dev/null +++ b/media-gfx/krita/files/krita-5.2.3-tests-optional.patch @@ -0,0 +1,90 @@ +From 2e9369281d44a2701ac7364568d381cca0d92ec5 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner +Date: Sun, 12 Jul 2020 18:55:31 +0200 +Subject: [PATCH] KritaAddBrokenUnitTest.cmake, MacroKritaAddBenchmark.cmake: + Skip ecm_add_test early if Qt5::Test is not available + +Signed-off-by: Andreas Sturmlechner +--- + cmake/modules/KritaAddBrokenUnitTest.cmake | 4 ++++ + cmake/modules/MacroKritaAddBenchmark.cmake | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/cmake/modules/KritaAddBrokenUnitTest.cmake b/cmake/modules/KritaAddBrokenUnitTest.cmake +index b7d0e8d852..901a0a1f99 100644 +--- a/cmake/modules/KritaAddBrokenUnitTest.cmake ++++ b/cmake/modules/KritaAddBrokenUnitTest.cmake +@@ -23,6 +23,10 @@ function(KRITA_ADD_BROKEN_UNIT_TEST) + message(FATAL_ERROR "ecm_add_test() called with multiple source files but without setting \"TEST_NAME\"") + endif() + ++ if(NOT TARGET Qt5::Test) ++ return() ++ endif() ++ + set(_testname ${ARG_NAME_PREFIX}${_targetname}) + + # add test to the global list of disabled tests +diff --git a/cmake/modules/MacroKritaAddBenchmark.cmake b/cmake/modules/MacroKritaAddBenchmark.cmake +index c748d8e319..f804d9b8f4 100644 +--- a/cmake/modules/MacroKritaAddBenchmark.cmake ++++ b/cmake/modules/MacroKritaAddBenchmark.cmake +@@ -23,6 +23,10 @@ macro (KRITA_ADD_BENCHMARK _test_NAME) + set(_nogui "NOGUI") + endif() + ++ if(NOT TARGET Qt5::Test) ++ return() ++ endif() ++ + add_executable( ${_test_NAME} ${_srcList} ) + ecm_mark_as_test(${_test_NAME}) + +-- +2.27.0 + +From 3c9fe10e25e94bdb1eb5e7b07ac2696635fdc5a3 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner +Date: Wed, 17 Jun 2020 20:18:28 +0200 +Subject: [PATCH] Don't build tests when testing not requested + +Signed-off-by: Andreas Sturmlechner + +diff --git a/libs/flake/CMakeLists.txt b/libs/flake/CMakeLists.txt +index cbdac265d2..1a50c1620a 100644 +--- a/libs/flake/CMakeLists.txt ++++ b/libs/flake/CMakeLists.txt +@@ -9,8 +9,10 @@ include_directories( + ) + + add_subdirectory(styles) +-add_subdirectory(tests) +-add_subdirectory(resources/tests) ++if(BUILD_TESTING) ++ add_subdirectory(tests) ++ add_subdirectory(resources/tests) ++endif() + + set(kritaflake_SRCS + KoGradientHelper.cpp +diff --git a/libs/image/tiles3/CMakeLists.txt b/libs/image/tiles3/CMakeLists.txt +index 88c0516360..01f2383ddb 100644 +--- a/libs/image/tiles3/CMakeLists.txt ++++ b/libs/image/tiles3/CMakeLists.txt +@@ -1 +1,3 @@ +-add_subdirectory(tests) ++if(BUILD_TESTING) ++ add_subdirectory(tests) ++endif() +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1246,7 +1246,9 @@ + ${CMAKE_CURRENT_BINARY_DIR} + ) + ++if(BUILD_TESTING) + add_subdirectory(sdk/tests) ++endif() + + add_subdirectory(libs) + add_subdirectory(plugins) diff --git a/media-gfx/krita/krita-9999.ebuild b/media-gfx/krita/krita-9999.ebuild index 425c755041..506ff60ab9 100644 --- a/media-gfx/krita/krita-9999.ebuild +++ b/media-gfx/krita/krita-9999.ebuild @@ -4,14 +4,14 @@ EAPI=8 ECM_TEST="forceoptional" -PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_COMPAT=( python3_{10..12} ) KFMIN=5.115.0 QTMIN=5.15.12 inherit ecm kde.org python-single-r1 if [[ ${KDE_BUILD_TYPE} = release ]]; then SRC_URI="mirror://kde/stable/${PN}/${PV}/${P}.tar.xz" - KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="~amd64" fi DESCRIPTION="Free digital painting application. Digital Painting, Creative Freedom!" @@ -19,7 +19,7 @@ HOMEPAGE="https://apps.kde.org/krita/ https://krita.org/en/" LICENSE="GPL-3" SLOT="5" -IUSE="color-management fftw gif +gsl heif jpegxl +mypaint-brush-engine openexr pdf qtmedia +raw webp" +IUSE="color-management fftw gif +gsl heif jpeg2k jpegxl +mypaint-brush-engine openexr pdf media +raw +xsimd webp" REQUIRED_USE="${PYTHON_REQUIRED_USE}" # bug 630508 @@ -27,6 +27,7 @@ RESTRICT="test" RDEPEND="${PYTHON_DEPS} dev-libs/boost:= + dev-libs/libunibreak:= dev-libs/quazip:0=[qt5(+)] $(python_gen_cond_dep ' dev-python/PyQt5[declarative,gui,widgets,${PYTHON_USEDEP}] @@ -68,23 +69,34 @@ RDEPEND="${PYTHON_DEPS} 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[qt5] ) - qtmedia? ( >=dev-qt/qtmultimedia-${QTMIN}:5 ) - raw? ( media-libs/libraw:= ) + raw? ( kde-apps/libkdcraw:5 ) webp? ( >=media-libs/libwebp-1.2.0:= ) + xsimd? ( >=dev-cpp/xsimd-13.0.0 ) + +" +DEPEND="${RDEPEND} + dev-libs/immer + dev-libs/lager + dev-libs/zug " -DEPEND="${RDEPEND}" BDEPEND=" dev-cpp/eigen:3 dev-lang/perl sys-devel/gettext " -PATCHES=( "${FILESDIR}"/${PN}-4.3.1-tests-optional.patch ) +PATCHES=( + # downstream + "${FILESDIR}"/${PN}-5.2.3-tests-optional.patch + "${FILESDIR}"/${PN}-5.2.2-fftw.patch # bug 913518 +) pkg_setup() { python-single-r1_pkg_setup @@ -100,19 +112,20 @@ src_configure() { -DENABLE_UPDATERS=OFF -DKRITA_ENABLE_PCH=OFF # big mess. -DCMAKE_DISABLE_FIND_PACKAGE_KSeExpr=ON # not packaged - -DCMAKE_DISABLE_FIND_PACKAGE_xsimd=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 qtmedia Qt5Multimedia) - $(cmake_use_find_package raw LibRaw) + $(cmake_use_find_package raw KF5KDcraw) $(cmake_use_find_package webp WebP) + $(cmake_use_find_package xsimd xsimd) ) ecm_src_configure diff --git a/media-gfx/krita/metadata.xml b/media-gfx/krita/metadata.xml index ff6c095b3a..82ce837b71 100644 --- a/media-gfx/krita/metadata.xml +++ b/media-gfx/krita/metadata.xml @@ -10,7 +10,8 @@ Enable color management via media-libs/opencolorio + Enable sound support for animations via media-libs/mlt Enable MyPaint brush engine support media-libs/libmypaint - Enable sound support for animations via dev-qt/qtmultimedia + Enable usage of SIMD instructions via dev-cpp/xsimd -- cgit v1.2.3-65-gdbad