From acdc4f52dfc9f117fce8acf6cd1f59f25306763e Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Sat, 25 Jul 2020 16:31:56 +0000 Subject: [PATCH] extra/krita to 4.3.0-2 --- extra/krita/PKGBUILD | 10 +- extra/krita/krita-pyqt5-sip5.patch | 22 --- extra/krita/krita-sip5.patch | 254 +++++++++++++++++++++++++++++ 3 files changed, 259 insertions(+), 27 deletions(-) delete mode 100644 extra/krita/krita-pyqt5-sip5.patch create mode 100644 extra/krita/krita-sip5.patch diff --git a/extra/krita/PKGBUILD b/extra/krita/PKGBUILD index 54d351c24..2d50b30de 100644 --- a/extra/krita/PKGBUILD +++ b/extra/krita/PKGBUILD @@ -6,7 +6,7 @@ pkgname=krita _pkgver=4.3.0 pkgver=${_pkgver/-/} -pkgrel=1 +pkgrel=2 pkgdesc="Edit and paint images" arch=(x86_64) url="https://krita.org" @@ -14,19 +14,19 @@ license=(GPL3) depends=(kitemviews kitemmodels ki18n kcompletion kguiaddons kcrash qt5-svg qt5-multimedia quazip gsl libraw exiv2 openexr fftw boost-libs giflib openjpeg2 hicolor-icon-theme) makedepends=(extra-cmake-modules kdoctools boost eigen poppler-qt5 opencolorio python-pyqt5 libheif - qt5-tools sip python-sip) + qt5-tools sip5) optdepends=('poppler-qt5: PDF filter' 'ffmpeg: to save animations' 'opencolorio: for the LUT docker' "krita-plugin-gmic: G'MIC plugin" 'python-pyqt5: for the Python plugins' 'libheif: HEIF filter') conflicts=(calligra-krita krita-l10n) replaces=(calligra-krita krita-l10n) source=("https://download.kde.org/stable/krita/$_pkgver/$pkgname-$_pkgver.tar.gz" - krita-pyqt5-sip5.patch) + krita-sip5.patch) sha256sums=('d071887c73bffbdc179054826b9752f5e5ab43fdcd9ffdd0402e9ab2ceee4bda' - 'ab2f33843d8cad31bc13e0eca7dc732cdbfed054924f25ed61102c0d0971c1d8') + '08076f5e3aa47a34f358efef16d95ae008dd71bcabc6da83a29f9597c1d25453') validpgpkeys=('05D00A8B73A686789E0A156858B9596C722EA3BD') # Boudewijn Rempt prepare() { - patch -d $pkgname-$_pkgver -p1 -i ../krita-pyqt5-sip5.patch # Fix sip include dir when PyQt5 is compiled with SIP 5 + patch -d $pkgname-$_pkgver -p1 -i ../krita-sip5.patch # Fix build with SIP 5 } build() { diff --git a/extra/krita/krita-pyqt5-sip5.patch b/extra/krita/krita-pyqt5-sip5.patch deleted file mode 100644 index 5d88a3b62..000000000 --- a/extra/krita/krita-pyqt5-sip5.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/cmake/modules/FindPyQt5.py b/cmake/modules/FindPyQt5.py -index 5849f40868..a42ba6c624 100644 ---- a/cmake/modules/FindPyQt5.py -+++ b/cmake/modules/FindPyQt5.py -@@ -2,7 +2,7 @@ - # Redistribution and use is allowed according to the terms of the BSD license. - # For details see the accompanying COPYING-CMAKE-SCRIPTS file. - --import sys -+import sys, site - import os - - try: -@@ -41,7 +41,7 @@ except ValueError: - pass - - # FIXME This next line is just a little bit too crude. --pyqt_sip_dir = os.path.join(sys.prefix, "share", "sip", "PyQt5") -+pyqt_sip_dir = os.path.join(site.getsitepackages()[0], "PyQt5", "bindings") - print("pyqt_sip_dir:%s" % pyqt_sip_dir) - - print("pyqt_sip_flags:%s" % PyQt5.QtCore.PYQT_CONFIGURATION["sip_flags"]) diff --git a/extra/krita/krita-sip5.patch b/extra/krita/krita-sip5.patch new file mode 100644 index 000000000..8e0f6f07a --- /dev/null +++ b/extra/krita/krita-sip5.patch @@ -0,0 +1,254 @@ +From 3a7bf8ef22fec548f70c022d401a8a5a46e6f100 Mon Sep 17 00:00:00 2001 +From: Dmitry Shachnev +Date: Sat, 4 Jul 2020 13:01:27 +0300 +Subject: [PATCH 1/4] Update pyqt_sip_dir for pyqt5 compiled with sip5 + +--- + cmake/modules/FindPyQt5.py | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/cmake/modules/FindPyQt5.py b/cmake/modules/FindPyQt5.py +index e0ef9d7bdb..e138ad3107 100644 +--- a/cmake/modules/FindPyQt5.py ++++ b/cmake/modules/FindPyQt5.py +@@ -4,6 +4,7 @@ + + import sys + import os ++from distutils.sysconfig import get_python_lib + + try: + # On Windows and Python 3.8+ python doesn't load module DLL's +@@ -40,8 +41,9 @@ try: + except ValueError: + pass + +-# FIXME This next line is just a little bit too crude. +-pyqt_sip_dir = os.path.join(sys.prefix, "share", "sip", "PyQt5") ++pyqt_sip_dir = os.path.join(get_python_lib(plat_specific=1), "PyQt5", "bindings") ++if not os.path.exists(pyqt_sip_dir): # Fallback for older PyQt5/SIP ++ pyqt_sip_dir = os.path.join(sys.prefix, "share", "sip", "PyQt5") + print("pyqt_sip_dir:%s" % pyqt_sip_dir) + + print("pyqt_sip_flags:%s" % PyQt5.QtCore.PYQT_CONFIGURATION["sip_flags"]) +-- +GitLab + + +From ecc99b3a48c9fa7a80b2fade5a6de2a09c1cca82 Mon Sep 17 00:00:00 2001 +From: Dmitry Shachnev +Date: Sat, 4 Jul 2020 13:02:00 +0300 +Subject: [PATCH 2/4] Find sip executable directly instead of relying on + FindSIP.py + +--- + cmake/modules/FindSIP.cmake | 47 ++++--------------- + cmake/modules/FindSIP.py | 15 ------ + plugins/extensions/pykrita/CMakeLists.txt | 2 +- + plugins/extensions/pykrita/sip/CMakeLists.txt | 4 -- + 4 files changed, 11 insertions(+), 57 deletions(-) + delete mode 100644 cmake/modules/FindSIP.py + +diff --git a/cmake/modules/FindSIP.cmake b/cmake/modules/FindSIP.cmake +index 1ca061ff97..001ac6a11b 100644 +--- a/cmake/modules/FindSIP.cmake ++++ b/cmake/modules/FindSIP.cmake +@@ -8,17 +8,11 @@ + # + # This file defines the following variables: + # +-# SIP_VERSION - The version of SIP found expressed as a 6 digit hex number +-# suitable for comparison as a string. +-# + # SIP_VERSION_STR - The version of SIP found as a human readable string. + # + # SIP_EXECUTABLE - Path and filename of the SIP command line executable. + # +-# SIP_INCLUDE_DIR - Directory holding the SIP C++ header file. +-# +-# SIP_DEFAULT_SIP_DIR - Default directory where .sip files should be installed +-# into. ++# SIP_MODULE_EXECUTABLE - Path and filename of the sip-module executable. + + # Copyright (c) 2007, Simon Edwards + # Redistribution and use is allowed according to the terms of the BSD license. +@@ -26,40 +20,19 @@ + + + +-IF(SIP_VERSION) ++IF(SIP_VERSION_STR) + # Already in cache, be silent + SET(SIP_FOUND TRUE) +-ELSE(SIP_VERSION) ++ELSE(SIP_VERSION_STR) + +- FIND_FILE(_find_sip_py FindSIP.py PATHS ${CMAKE_MODULE_PATH}) +- +- if (WIN32) +- EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${CMAKE_PREFIX_PATH}/lib/krita-python-libs" ${PYTHON_EXECUTABLE} ${_find_sip_py} OUTPUT_VARIABLE sip_config) +- else (WIN32) +- EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_find_sip_py} OUTPUT_VARIABLE sip_config) +- endif (WIN32) +- +- IF(sip_config) +- STRING(REGEX REPLACE "^sip_version:([^\n]+).*$" "\\1" SIP_VERSION ${sip_config}) +- STRING(REGEX REPLACE ".*\nsip_version_str:([^\n]+).*$" "\\1" SIP_VERSION_STR ${sip_config}) +- STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_EXECUTABLE ${sip_config}) +- IF(NOT SIP_DEFAULT_SIP_DIR) +- STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config}) +- ENDIF(NOT SIP_DEFAULT_SIP_DIR) +- STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config}) +- FILE(TO_CMAKE_PATH ${SIP_DEFAULT_SIP_DIR} SIP_DEFAULT_SIP_DIR) +- FILE(TO_CMAKE_PATH ${SIP_INCLUDE_DIR} SIP_INCLUDE_DIR) +- if (WIN32) +- set(SIP_EXECUTABLE ${SIP_EXECUTABLE}.exe) +- endif() +- IF(EXISTS ${SIP_EXECUTABLE}) +- SET(SIP_FOUND TRUE) +- ELSE() +- MESSAGE(STATUS "Found SIP configuration but the sip executable could not be found.") +- ENDIF() +- ENDIF(sip_config) ++ find_program(SIP_EXECUTABLE NAMES sip5 sip) ++ find_program(SIP_MODULE_EXECUTABLE sip-module) ++ macro_bool_to_01(SIP_EXECUTABLE SIP_FOUND) + + IF(SIP_FOUND) ++ execute_process(COMMAND ${SIP_EXECUTABLE} -V OUTPUT_VARIABLE SIP_VERSION_STR ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ + IF(NOT SIP_FIND_QUIETLY) + MESSAGE(STATUS "Found SIP version: ${SIP_VERSION_STR}") + ENDIF(NOT SIP_FIND_QUIETLY) +@@ -69,4 +42,4 @@ ELSE(SIP_VERSION) + ENDIF(SIP_FIND_REQUIRED) + ENDIF(SIP_FOUND) + +-ENDIF(SIP_VERSION) ++ENDIF(SIP_VERSION_STR) +diff --git a/cmake/modules/FindSIP.py b/cmake/modules/FindSIP.py +deleted file mode 100644 +index ecb734f2cc..0000000000 +--- a/cmake/modules/FindSIP.py ++++ /dev/null +@@ -1,15 +0,0 @@ +-# FindSIP.py +-# +-# Copyright (c) 2007, Simon Edwards +-# Redistribution and use is allowed according to the terms of the BSD license. +-# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +- +-import sys +-import sipconfig +- +-sipcfg = sipconfig.Configuration() +-print("sip_version:%06.0x" % sipcfg.sip_version) +-print("sip_version_str:%s" % sipcfg.sip_version_str) +-print("sip_bin:%s" % sipcfg.sip_bin) +-print("default_sip_dir:%s" % sipcfg.default_sip_dir) +-print("sip_inc_dir:%s" % sipcfg.sip_inc_dir) +diff --git a/plugins/extensions/pykrita/CMakeLists.txt b/plugins/extensions/pykrita/CMakeLists.txt +index ee9fe363fb..578d801017 100644 +--- a/plugins/extensions/pykrita/CMakeLists.txt ++++ b/plugins/extensions/pykrita/CMakeLists.txt +@@ -1,6 +1,6 @@ + if (HAVE_PYQT5 AND HAVE_SIP AND HAVE_PYTHONLIBS) + +- include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${SIP_INCLUDE_DIR} ${PYTHON_INCLUDE_PATH}) ++ include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${PYTHON_INCLUDE_PATH}) + + add_subdirectory(sip) + add_subdirectory(plugin) +diff --git a/plugins/extensions/pykrita/sip/CMakeLists.txt b/plugins/extensions/pykrita/sip/CMakeLists.txt +index 49ff5e1717..c8a97b8600 100644 +--- a/plugins/extensions/pykrita/sip/CMakeLists.txt ++++ b/plugins/extensions/pykrita/sip/CMakeLists.txt +@@ -1,13 +1,9 @@ + include(SIPMacros) + +-message( ${SIP_VERSION} " - The version of SIP found expressed as a 6 digit hex number suitable for comparison as a string.") + message( ${SIP_VERSION_STR} " - The version of SIP found as a human readable string.") + message( ${SIP_EXECUTABLE} " - Path and filename of the SIP command line executable.") +-message( ${SIP_INCLUDE_DIR} " - Directory holding the SIP C++ header file.") +-message( ${SIP_DEFAULT_SIP_DIR} " - default SIP dir" ) + + set(SIP_INCLUDES +- ${SIP_DEFAULT_SIP_DIR} + ${PYQT5_SIP_DIR} + ${PYQT_SIP_DIR_OVERRIDE} + ./krita) +-- +GitLab + + +From 5379d14c69e3cea45c0f582e0ff7773cc85ecf6f Mon Sep 17 00:00:00 2001 +From: Dmitry Shachnev +Date: Sat, 4 Jul 2020 13:03:46 +0300 +Subject: [PATCH 3/4] Remove -n from ${PYQT5_SIP_NAME} + +--- + cmake/modules/FindPyQt5.py | 2 +- + plugins/extensions/pykrita/sip/CMakeLists.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cmake/modules/FindPyQt5.py b/cmake/modules/FindPyQt5.py +index e138ad3107..85c662b9ae 100644 +--- a/cmake/modules/FindPyQt5.py ++++ b/cmake/modules/FindPyQt5.py +@@ -36,7 +36,7 @@ print("pyqt_version_tag:%s" % pyqt_version_tag) + + try: + index_n = pyqt_config_list.index('-n') +- pyqt_sip_name = '-n' + pyqt_config_list[index_n + 1] ++ pyqt_sip_name = pyqt_config_list[index_n + 1] + print("pyqt_sip_name:%s" % pyqt_sip_name) + except ValueError: + pass +diff --git a/plugins/extensions/pykrita/sip/CMakeLists.txt b/plugins/extensions/pykrita/sip/CMakeLists.txt +index c8a97b8600..5f9262322a 100644 +--- a/plugins/extensions/pykrita/sip/CMakeLists.txt ++++ b/plugins/extensions/pykrita/sip/CMakeLists.txt +@@ -10,7 +10,7 @@ set(SIP_INCLUDES + + set(SIP_CONCAT_PARTS 1) + set(SIP_TAGS ALL WS_X11 ${PYQT5_VERSION_TAG}) +-set(SIP_EXTRA_OPTIONS -g -o -x PyKDE_QVector ${PYQT5_SIP_NAME}) ++set(SIP_EXTRA_OPTIONS -g -o -x PyKDE_QVector -n ${PYQT5_SIP_NAME}) + + set(PYTHON_SITE_PACKAGES_INSTALL_DIR ${LIB_INSTALL_DIR}/krita-python-libs) + file(GLOB PYKRITA_KRITA_sip_files ./krita/*.sip) +-- +GitLab + + +From 67c6a8642920263d7e1879e3edc28ca8b783742b Mon Sep 17 00:00:00 2001 +From: Dmitry Shachnev +Date: Sat, 4 Jul 2020 13:08:33 +0300 +Subject: [PATCH 4/4] Generate sip.h in ${CMAKE_CURRENT_SIP_OUTPUT_DIR} for SIP + v5 + +--- + cmake/modules/SIPMacros.cmake | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/cmake/modules/SIPMacros.cmake b/cmake/modules/SIPMacros.cmake +index 885d10d0b2..bd60188878 100644 +--- a/cmake/modules/SIPMacros.cmake ++++ b/cmake/modules/SIPMacros.cmake +@@ -99,6 +99,12 @@ MACRO(ADD_SIP_PYTHON_MODULE MODULE_NAME MODULE_SIP) + COMMAND ${SIP_EXECUTABLE} ${_sip_tags} ${_sip_x} ${SIP_EXTRA_OPTIONS} -j ${SIP_CONCAT_PARTS} -c ${CMAKE_CURRENT_SIP_OUTPUT_DIR} ${_sip_includes} ${_abs_module_sip} + DEPENDS ${_abs_module_sip} ${SIP_EXTRA_FILES_DEPEND} + ) ++ IF (SIP_MODULE_EXECUTABLE) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${_sip_output_files} APPEND ++ COMMAND ${SIP_MODULE_EXECUTABLE} --target-dir ${CMAKE_CURRENT_SIP_OUTPUT_DIR} --sip-h ${PYQT5_SIP_NAME} ++ ) ++ ENDIF (SIP_MODULE_EXECUTABLE) + # not sure if type MODULE could be uses anywhere, limit to cygwin for now + IF (WIN32 OR CYGWIN OR APPLE) + ADD_LIBRARY(${_logical_name} MODULE ${_sip_output_files} ) +-- +GitLab +