[bug#54261] : Update GTK to 4.6.1.
Commit Message
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
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’.
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(-)
@@ -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