diff mbox series

[bug#67349] Update Krita to 5.2.1

Message ID 874jh6xb60.fsf@gmail.com
State New
Headers show
Series [bug#67349] Update Krita to 5.2.1 | expand

Commit Message

Mehmet Tekman Nov. 28, 2023, 1:25 p.m. UTC
Ignore previous patches.

Full patch with hotfix included, and sorted inputs.
Dependent on an updated libkdcraw (#67509) and fftw-cmake (#67343)
diff mbox series

Patch

From 1f19bb405174db71b1e041639d3aed24530290e4 Mon Sep 17 00:00:00 2001
Message-ID: <1f19bb405174db71b1e041639d3aed24530290e4.1701176454.git.mtekman89@gmail.com>
In-Reply-To: <82f7a7d8c60e1773565e3655dfd06dda28056924.1701176454.git.mtekman89@gmail.com>
References: <82f7a7d8c60e1773565e3655dfd06dda28056924.1701176454.git.mtekman89@gmail.com>
From: Mehmet Tekman <mtekman89@gmail.com>
Date: Tue, 28 Nov 2023 13:04:07 +0100
Subject: [PATCH 3/3] gnu: krita: Update to 5.2.1

* gnu/packages/kde.scm (krita): Update to 5.2.1

  Due to a missing patch in the upstream libraqm, we cannot depend on
  the existing libraqm library, but must instead use the one embedded
  in the package. It compiles, but needs to be told to use the -fPIC
  flag.

  Dependency fftw also does not provide the required CMake file
  FFTW3Librarydepends.cmake, and only does so when compile via cmake
  and not gnu. Due to the many packages that depend on fftw, a
  seperate fftw-cmake was used.

Change-Id: I956451d05d8499580b909e843fd8e4418e396642
---
 gnu/packages/kde.scm | 60 ++++++++++++++++++++++++++++++++++++++------
 1 file changed, 53 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 20fbb41d73..61e6645411 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -17,6 +17,7 @@ 
 ;;; Copyright © 2021, 2022, 2023 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2023 Mehmet Tekman <mtekman89@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -46,6 +47,7 @@  (define-module (gnu packages kde)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages astronomy)
   #:use-module (gnu packages audio)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
@@ -63,6 +65,7 @@  (define-module (gnu packages kde)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages fribidi)
   #:use-module (gnu packages geo)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
@@ -72,6 +75,7 @@  (define-module (gnu packages kde)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gps)
   #:use-module (gnu packages graphics)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages image-processing)
   #:use-module (gnu packages kde-frameworks)
@@ -92,10 +96,12 @@  (define-module (gnu packages kde)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages samba)
+  #:use-module (gnu packages sdl)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages qt)
+  #:use-module (gnu packages unicode)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xdisorg)
@@ -702,7 +708,7 @@  (define-public kolourpaint
 (define-public krita
   (package
     (name "krita")
-    (version "5.1.5")
+    (version "5.2.1")
     (source
      (origin
        (method url-fetch)
@@ -710,11 +716,28 @@  (define-public krita
              "mirror://kde/stable/krita/" version "/krita-" version
              ".tar.gz"))
        (sha256
-        (base32 "1lx4x4affkbh47b7w5qvahkkr4db0vcw6h24nykak6gpy2z5wxqw"))))
+        (base32 "1kzmn89b1vrasba7z8hp8izyrrskgc7ggnz82zqyyy1v5d8mnri7"))))
     (build-system qt-build-system)
     (arguments
      `(#:tests? #f
-       #:configure-flags (list "-DBUILD_TESTING=OFF")))
+       #:configure-flags (list "-DBUILD_TESTING=OFF -DCMAKE_CXX_FLAGS=-fPIC")
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-raqm
+                    (lambda _
+                      ;; Uncomment the substitute block underneath this once the
+                      ;; libraqm variable is patched upstream. This will force it to
+                      ;; use the Guix provided library.
+                      ;; (substitute* "CMakeLists.txt"
+                      ;; (("add_subdirectory\\(3rdparty_vendor\\)")
+                      ;; "find_package(Raqm 0.10.1 REQUIRED)"))
+                      ;; (delete-file-recursively "3rdparty_vendor"))
+                      ;;
+                      ;; Patch the supplied vendor Raqm library (v0.10.1) to use fPIC
+                      (substitute* "3rdparty_vendor/raqm/CMakeLists.txt"
+                        (("set\\(CMAKE_AUTOMOC OFF\\)")
+                         "set(CMAKE_AUTOMOC OFF)
+set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -fPIC\" )
+set(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -fPIC\" ) ")))))))
     (native-inputs
      (list curl
            eigen
@@ -727,10 +750,19 @@  (define-public krita
     (inputs
      (list boost
            exiv2
-           fftw
+           fontconfig
+           fftw-cmake
+           ;; fftw
+           ;; We use fftw-cmake since fftwm doesn't provide the required
+           ;; CMake files when build with gnu.
+           ;; See: https://bugzilla.redhat.com/show_bug.cgi?id=1729652#c5
+           freetype
+           fribidi
            giflib
            gsl
+           harfbuzz
            imath
+           immer
            karchive
            kcompletion
            kconfig
@@ -745,29 +777,43 @@  (define-public krita
            kwidgetsaddons
            kwindowsystem
            kxmlgui
+           lager
            lcms
-           libjpeg-turbo
            libheif
+           libjpeg-turbo
+           libjxl
+           libkdcraw
            libmypaint
            libpng
+           ;; libraqm
+           ;; We use the provided 3rd_party_vendor library instead of
+           ;; libraqm 0.10.1 with patches until libraqm is patched.
+           ;; See: https://github.com/HOST-Oman/libraqm/issues/191
            libraw
            libtiff
+           libunibreak
            libwebp
            libx11
            libxcb
            libxi
+           mlt
            opencolorio
            openexr
            openjpeg
            perl
            poppler-qt5
+           python-pyqt
+           python-pyqt5-sip
            qtbase-5
            qtdeclarative-5
            qtmultimedia-5
            qtsvg-5
            qtx11extras
            quazip-0
-           zlib))
+           sdl2
+           xsimd
+           zlib
+           zug))
     (home-page "https://krita.org")
     (synopsis "Digital painting application")
     (description
-- 
2.42.1