diff mbox series

[bug#54261] : Update GTK to 4.6.1.

Message ID 86czi4rtfu.fsf@163.com
State Accepted
Headers show
Series [bug#54261] : Update GTK to 4.6.1. | expand

Commit Message

Zhu Zihao March 30, 2022, 3:45 a.m. UTC
Ludovic Courtès <ludo@gnu.org> writes:
>
> Only Ardour and gtkmm depend on it; are they find after this change?

I've tested ardour, it builds and runs successfully.

Ardour depends on gtkmm-2 (propagates pangomm-2.46) but also add pangomm
to the inputs. I don't know we need pangomm or not.

I also make some minor changes in these patches, Update gtkmm to 4.6.1
and remove atkmm from its propagated-inputs. GTK4 no longer use ATK.

Comments

Ludovic Courtès April 1, 2022, 3:54 p.m. UTC | #1
Hi,

Zhu Zihao <all_but_last@163.com> skribis:

> From 62a640576ae1de9523fba593219fb50ac97b44c6 Mon Sep 17 00:00:00 2001
> From: Zhu Zihao <all_but_last@163.com>
> Date: Mon, 21 Mar 2022 09:16:38 +0800
> Subject: [PATCH 3/4] gnu: Add fcitx5-gtk4.
>
> * gnu/packages/fcitx5.scm (fcitx5-gtk4): New variable.
> ---
>  gnu/packages/fcitx5.scm | 42 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>
> diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
> index 2d5917f3c0..be46a5036c 100644
> --- a/gnu/packages/fcitx5.scm
> +++ b/gnu/packages/fcitx5.scm
> @@ -250,6 +250,48 @@ (define (split-immodule gtk-version output)
>  @end table")
>      (license license:lgpl2.1+)))
>  
> +;; XXX: This package is separated from fcitx5-gtk for following reasons.
> +;; 1. GTK4 has a lot more dependencies, some of which maybe unavailable on
> +;;    platforms other than x86_64. See <https://issues.guix.gnu.org/53648>.
> +;; 2. GTK4 now propagates pango@1.50, it will conflict with GTK3 and GTK2
> +;;    (propagates pango@1.48) if they're all in the inputs of same package.
> +;;    See <https://issues.guix.gnu.org/54261>.
> +(define-public fcitx5-gtk4
> +  (package
> +    (inherit fcitx5-gtk)
> +    (name "fcitx5-gtk4")
> +    (arguments
> +     (list
> +      #:tests? #f                       ;No test
> +      #:configure-flags
> +      #~(list (string-append "-DCMAKE_CXX_FLAGS=-I"
> +                             #$(this-package-input "fcitx5-gtk")
> +                             "/include/Fcitx5/GClient"))

This one fails to build for me:

--8<---------------cut here---------------start------------->8---
-- Looking for shmat - found
-- Checking for module 'gtk+-2.0'
--   No package 'gtk+-2.0' found
CMake Error at /gnu/store/zga679c4nldah9l8dhd5a4hdy820hcyf-cmake-minimal-3.21.4/share/cmake-3.21/Modules/FindPkgConfig.cmake:562 (message):
  A required package was not found
Call Stack (most recent call first):
  /gnu/store/zga679c4nldah9l8dhd5a4hdy820hcyf-cmake-minimal-3.21.4/share/cmake-3.21/Modules/FindPkgConfig.cmake:784 (_pkg_check_modules_internal)
  gtk2/CMakeLists.txt:6 (pkg_check_modules)


-- Configuring incomplete, errors occurred!
See also "/tmp/guix-build-fcitx5-gtk4-5.0.9.drv-0/build/CMakeFiles/CMakeOutput.log".
error: in phase 'configure': uncaught exception:
%exception #<&invoke-error program: "cmake" arguments: ("../fcitx5-gtk-5.0.9" "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DCMAKE_INSTALL_PREFIX=/gnu/store/5z0a2zrr19pmg4swzsb0jm5fwqh03x0y-fcitx5-gtk4-5.0.9" "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE" "-DCMAKE_INSTALL_RPATH=/gnu/store/5z0a2zrr19pmg4swzsb0jm5fwqh03x0y-fcitx5-gtk4-5.0.9/lib" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DCMAKE_CXX_FLAGS=-I/gnu/store/fkq1pgfp1r43f2131f8yvx543n7gb7ww-fcitx5-gtk-5.0.9/include/Fcitx5/GClient") exit-status: 1 term-signal: #f stop-signal: #f> 
phase `configure' failed after 2.9 seconds
command "cmake" "../fcitx5-gtk-5.0.9" "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DCMAKE_INSTALL_PREFIX=/gnu/store/5z0a2zrr19pmg4swzsb0jm5fwqh03x0y-fcitx5-gtk4-5.0.9" "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE" "-DCMAKE_INSTALL_RPATH=/gnu/store/5z0a2zrr19pmg4swzsb0jm5fwqh03x0y-fcitx5-gtk4-5.0.9/lib" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DCMAKE_CXX_FLAGS=-I/gnu/store/fkq1pgfp1r43f2131f8yvx543n7gb7ww-fcitx5-gtk-5.0.9/include/Fcitx5/GClient" failed with status 1
builder for `/gnu/store/p9611ymj4mav45wi92fdyslb2p7854hl-fcitx5-gtk4-5.0.9.drv' failed with exit code 1
@ build-failed /gnu/store/p9611ymj4mav45wi92fdyslb2p7854hl-fcitx5-gtk4-5.0.9.drv - 1 builder for `/gnu/store/p9611ymj4mav45wi92fdyslb2p7854hl-fcitx5-gtk4-5.0.9.drv' failed with exit code 1
derivation '/gnu/store/p9611ymj4mav45wi92fdyslb2p7854hl-fcitx5-gtk4-5.0.9.drv' offloaded to 'localhost' failed: build of `/gnu/store/p9611ymj4mav45wi92fdyslb2p7854hl-fcitx5-gtk4-5.0.9.drv' failed
build of /gnu/store/p9611ymj4mav45wi92fdyslb2p7854hl-fcitx5-gtk4-5.0.9.drv failed
--8<---------------cut here---------------end--------------->8---

Could you take a look and send an updated patch?

Also, I find it surprising that ‘fcitx5-gtk4’ depends on ‘fcitx5-gtk’;
is it avoidable?

The rest LGTM, thanks!

Ludo’.
diff mbox series

Patch

From 78044067d76596736eba95a49cb9ebc8aa6d5424 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Tue, 15 Mar 2022 22:40:27 +0800
Subject: [PATCH 4/4] gnu: gtkmm: Update to 4.6.1.

* gnu/packages/gtk.scm (gtkmm): Update to 4.6.1.
[propagated-inputs]: Remove atkmm because it's no longer needed.
* gnu/packages/gtk.scm (pangomm): Update to 2.50.0.
[propagated-inputs]: Replace 'pango' with 'pango-next'.
---
 gnu/packages/gtk.scm | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 3d7706b9ee..8ec14e7bff 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1627,7 +1627,7 @@  (define-public cairomm-1.14
 (define-public pangomm
   (package
     (name "pangomm")
-    (version "2.48.0")
+    (version "2.50.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1635,7 +1635,7 @@  (define-public pangomm
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0y2vyp6azvhrii6rzs89kr08wg8z1p562awyr812131zqdsd83ly"))))
+                "0nrvvf1fyzlimh7rvxcblnrvn2l9rz8mpn2iwzlzr6kv05zafym2"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -1664,7 +1664,7 @@  (define-public pangomm
        ("python" ,python)
        ("xsltproc" ,libxslt)))
     (propagated-inputs
-     (list cairo cairomm glibmm pango))
+     (list cairo cairomm glibmm pango-next))
     (home-page "https://pango.gnome.org//")
     (synopsis "C++ interface to the Pango text rendering library")
     (description
@@ -1760,7 +1760,7 @@  (define-public atkmm-2.28
 (define-public gtkmm
   (package
     (name "gtkmm")
-    (version "4.4.0")
+    (version "4.6.1")
     (source
      (origin
        (method url-fetch)
@@ -1769,7 +1769,7 @@  (define-public gtkmm
                        (version-major+minor version)  "/"
                        name "-" version ".tar.xz"))
        (sha256
-        (base32 "1nhdf1s437k41af6frbqw2sky46qci0hgkg9h86a9rlnc0r69d1f"))))
+        (base32 "1q6iycd7jfbn6rp4sq6r7ndm96dc21inq8mq1d9xsky6kv5gwphd"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -1809,7 +1809,7 @@  (define-public gtkmm
        ("xsltproc" ,libxslt)
        ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
-     (list atkmm cairomm glibmm gtk pangomm))
+     (list cairomm glibmm gtk pangomm))
     (synopsis "C++ Interfaces for GTK+ and GNOME")
     (description "GTKmm is the official C++ interface for the popular GUI
 library GTK+.  Highlights include typesafe callbacks, and a comprehensive set
-- 
2.34.0