* [bug#54261] [PATCH]: Update GTK to 4.6.1. @ 2022-03-05 15:00 Zhu Zihao [not found] ` <handler.54261.B.164649346324787.ack@debbugs.gnu.org> 0 siblings, 1 reply; 29+ messages in thread From: Zhu Zihao @ 2022-03-05 15:00 UTC (permalink / raw) To: 54261 [-- Attachment #1.1: Type: text/plain, Size: 214 bytes --] These patches add pango 1.50.4 and update GTK to 4.6.1. I've test the celluloid and gnome-todo and they builts successfully(depends on GTK4). I also want to update libadwaita to 1.0.2, but it breaks gnome-todo. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] [-- Attachment #2: 0001-gnu-pango-Add-version-1.50.4.patch --] [-- Type: text/x-patch, Size: 1639 bytes --] From cdad10dfd07b2007d5b2d76098a4a36ab62ce3ec Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 21:36:25 +0800 Subject: [PATCH 1/2] gnu: pango: Add version 1.50.4. * gnu/packages/gtk.scm(pango-1.50): New variable. --- gnu/packages/gtk.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 29302051c1..b9f8bc324f 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com> +;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -409,6 +410,22 @@ (define-public pango (home-page "https://pango.gnome.org/") (license license:lgpl2.0+))) +;; TODO: Make this the default package next in release cycle. +(define-public pango-1.50 + (package + (inherit pango) + (name "pango") + (version "1.50.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/pango/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (patches (search-patches "pango-skip-libthai-test.patch")) + (sha256 + (base32 + "0qn1a7ccs3p5vc6swbqm6hdzka879l0gp9220lq4bcf2gpl67bgl")))))) + (define-public pango-1.42 (package (inherit pango) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-gtk-Update-to-4.6.1.patch --] [-- Type: text/x-patch, Size: 5414 bytes --] From b542dce1f2a7b7eea7a254d1f1a05df26367b5ac Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 22:40:46 +0800 Subject: [PATCH 2/2] gnu: gtk: Update to 4.6.1. * gnu/local.mk (dist_patch_DATA): Remove gtk-introspection-test.patch. * gnu/packages/patches/gtk-introspection-test.patch: Remove. * gnu/packages/gtk.scm (gtk): Update to 4.6.1. [source]: Remove stale patch. [arguments]<phases>: Add 'patch-rst2man' phase, correct the binary name of rst2man to 'rst2man.py' [inputs]: Add libjpeg-turbo, libpng, libtiff. [native-inputs]: Add python-docutils. [propagated-inputs]: Use pango-1.50. --- gnu/local.mk | 1 - gnu/packages/gtk.scm | 17 +++++++++----- .../patches/gtk-introspection-test.patch | 22 ------------------- 3 files changed, 12 insertions(+), 28 deletions(-) delete mode 100644 gnu/packages/patches/gtk-introspection-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index c8026a1ec1..1e0bb0c00c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1244,7 +1244,6 @@ dist_patch_DATA = \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk-doc-respect-xml-catalog.patch \ - %D%/packages/patches/gtk-introspection-test.patch \ %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/gtksourceview-2-add-default-directory.patch \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index b9f8bc324f..11c99fb71b 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1076,7 +1076,7 @@ (define-public gtk+ (define-public gtk (package (name "gtk") - (version "4.4.1") + (version "4.6.1") (source (origin (method url-fetch) @@ -1084,10 +1084,9 @@ (define-public gtk (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1x6xlc063nqp7cg6py4kq1kpw9pkq49ifk5kki0brc667ncdmahg")) + (base32 "0pzcs24j67f90kjcp6apgn6rffynxksjm1m7d3an7kdv3k90hmfq")) (patches - (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch" - "gtk-introspection-test.patch")))) + (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")))) (build-system meson-build-system) (outputs '("out" "bin" "doc")) (arguments @@ -1117,6 +1116,10 @@ (define-public gtk (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file (assoc-ref glib-or-gtk:%standard-phases 'generate-gdk-pixbuf-loaders-cache-file)) + (add-after 'unpack 'patch-rst2man + (lambda _ + (substitute* "docs/reference/gtk/meson.build" + (("find_program\\('rst2man'") "find_program('rst2man.py'")))) (add-after 'unpack 'patch (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) ;; Correct DTD resources of docbook. @@ -1194,6 +1197,7 @@ (define-public gtk ("pkg-config" ,pkg-config) ("python-pygobject" ,python-pygobject) ;; These python modules are required for building documentation. + ("python-docutils" ,python-docutils) ("python-jinja2" ,python-jinja2) ("python-markdown" ,python-markdown) ("python-markupsafe" ,python-markupsafe) @@ -1216,7 +1220,10 @@ (define-public gtk iso-codes json-glib libcloudproviders ;for cloud-providers support + libjpeg-turbo + libpng librsvg + libtiff python rest tracker)) ;for filechooser search support @@ -1239,7 +1246,7 @@ (define-public gtk ("libxkbcommon" ,libxkbcommon) ("libxrandr" ,libxrandr) ("libxrender" ,libxrender) - ("pango" ,pango) + ("pango" ,pango-1.50) ("vulkan-headers" ,vulkan-headers) ("vulkan-loader" ,vulkan-loader) ;for vulkan graphics API support ("wayland" ,wayland) ;for wayland display-backend diff --git a/gnu/packages/patches/gtk-introspection-test.patch b/gnu/packages/patches/gtk-introspection-test.patch deleted file mode 100644 index 570ea806a9..0000000000 --- a/gnu/packages/patches/gtk-introspection-test.patch +++ /dev/null @@ -1,22 +0,0 @@ -# Extend rather than stomp environment variables. -# Upstream status: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4268 -diff --git a/testsuite/introspection/meson.build b/testsuite/introspection/meson.build -index 6202fb7446..b59191eb0f 100644 ---- a/testsuite/introspection/meson.build -+++ b/testsuite/introspection/meson.build -@@ -1,9 +1,10 @@ -+env = environment() -+env.prepend('GI_TYPELIB_PATH', -+ join_paths(project_build_root, 'gtk'), -+ gi_dep.get_pkgconfig_variable('typelibdir')) -+env.prepend('LD_PRELOAD', join_paths(project_build_root, 'gtk', 'libgtk-4.so')) - - test('api', - find_program('api.py', dirs: meson.current_source_dir()), - suite: ['introspection'], -- env: [ -- 'GI_TYPELIB_PATH=@0@/gtk:@1@'.format(project_build_root, -- gi_dep.get_pkgconfig_variable('typelibdir')), -- 'LD_PRELOAD=@0@/gtk/libgtk-4.so'.format(project_build_root), -- ]) -+ env: env) -- 2.34.0 [-- Attachment #4: Type: text/plain, Size: 100 bytes --] -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao ^ permalink raw reply related [flat|nested] 29+ messages in thread
[parent not found: <handler.54261.B.164649346324787.ack@debbugs.gnu.org>]
* [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) [not found] ` <handler.54261.B.164649346324787.ack@debbugs.gnu.org> @ 2022-03-05 15:55 ` Zhu Zihao 2022-03-11 15:15 ` Zhu Zihao 0 siblings, 1 reply; 29+ messages in thread From: Zhu Zihao @ 2022-03-05 15:55 UTC (permalink / raw) To: 54261 [-- Attachment #1: Type: text/plain, Size: 201 bytes --] Typo: next in release cycle -> in next release cyle. Maybe call pango-1.50 'pango-next'? -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-05 15:55 ` [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) Zhu Zihao @ 2022-03-11 15:15 ` Zhu Zihao 2022-03-11 15:59 ` Maxime Devos ` (3 more replies) 0 siblings, 4 replies; 29+ messages in thread From: Zhu Zihao @ 2022-03-11 15:15 UTC (permalink / raw) To: 54261 [-- Attachment #1.1: Type: text/plain, Size: 8 bytes --] ping. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] [-- Attachment #2: 0001-gnu-pango-Add-version-1.50.4.patch --] [-- Type: text/x-patch, Size: 1639 bytes --] From bd53ac3a162c1f5b53363126c125d826a5cb6a6e Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 21:36:25 +0800 Subject: [PATCH 1/2] gnu: pango: Add version 1.50.4. * gnu/packages/gtk.scm(pango-next): New variable. --- gnu/packages/gtk.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 29302051c1..bc7b388a88 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com> +;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -409,6 +410,22 @@ (define-public pango (home-page "https://pango.gnome.org/") (license license:lgpl2.0+))) +;; TODO: Make this the default package in next release cycle. +(define-public pango-next + (package + (inherit pango) + (name "pango") + (version "1.50.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/pango/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (patches (search-patches "pango-skip-libthai-test.patch")) + (sha256 + (base32 + "0qn1a7ccs3p5vc6swbqm6hdzka879l0gp9220lq4bcf2gpl67bgl")))))) + (define-public pango-1.42 (package (inherit pango) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-gtk-Update-to-4.6.1.patch --] [-- Type: text/x-patch, Size: 5414 bytes --] From 0c22cbd070d47b8c3b534caceb3eb05c8f7f6d41 Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 22:40:46 +0800 Subject: [PATCH 2/2] gnu: gtk: Update to 4.6.1. * gnu/local.mk (dist_patch_DATA): Remove gtk-introspection-test.patch. * gnu/packages/patches/gtk-introspection-test.patch: Remove. * gnu/packages/gtk.scm (gtk): Update to 4.6.1. [source]: Remove stale patch. [arguments]<phases>: Add 'patch-rst2man' phase, correct the binary name of rst2man to 'rst2man.py' [inputs]: Add libjpeg-turbo, libpng, libtiff. [native-inputs]: Add python-docutils. [propagated-inputs]: Use pango-next. --- gnu/local.mk | 1 - gnu/packages/gtk.scm | 17 +++++++++----- .../patches/gtk-introspection-test.patch | 22 ------------------- 3 files changed, 12 insertions(+), 28 deletions(-) delete mode 100644 gnu/packages/patches/gtk-introspection-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index c8026a1ec1..1e0bb0c00c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1244,7 +1244,6 @@ dist_patch_DATA = \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk-doc-respect-xml-catalog.patch \ - %D%/packages/patches/gtk-introspection-test.patch \ %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/gtksourceview-2-add-default-directory.patch \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index bc7b388a88..3d7706b9ee 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1076,7 +1076,7 @@ (define-public gtk+ (define-public gtk (package (name "gtk") - (version "4.4.1") + (version "4.6.1") (source (origin (method url-fetch) @@ -1084,10 +1084,9 @@ (define-public gtk (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1x6xlc063nqp7cg6py4kq1kpw9pkq49ifk5kki0brc667ncdmahg")) + (base32 "0pzcs24j67f90kjcp6apgn6rffynxksjm1m7d3an7kdv3k90hmfq")) (patches - (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch" - "gtk-introspection-test.patch")))) + (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")))) (build-system meson-build-system) (outputs '("out" "bin" "doc")) (arguments @@ -1117,6 +1116,10 @@ (define-public gtk (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file (assoc-ref glib-or-gtk:%standard-phases 'generate-gdk-pixbuf-loaders-cache-file)) + (add-after 'unpack 'patch-rst2man + (lambda _ + (substitute* "docs/reference/gtk/meson.build" + (("find_program\\('rst2man'") "find_program('rst2man.py'")))) (add-after 'unpack 'patch (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) ;; Correct DTD resources of docbook. @@ -1194,6 +1197,7 @@ (define-public gtk ("pkg-config" ,pkg-config) ("python-pygobject" ,python-pygobject) ;; These python modules are required for building documentation. + ("python-docutils" ,python-docutils) ("python-jinja2" ,python-jinja2) ("python-markdown" ,python-markdown) ("python-markupsafe" ,python-markupsafe) @@ -1216,7 +1220,10 @@ (define-public gtk iso-codes json-glib libcloudproviders ;for cloud-providers support + libjpeg-turbo + libpng librsvg + libtiff python rest tracker)) ;for filechooser search support @@ -1239,7 +1246,7 @@ (define-public gtk ("libxkbcommon" ,libxkbcommon) ("libxrandr" ,libxrandr) ("libxrender" ,libxrender) - ("pango" ,pango) + ("pango" ,pango-next) ("vulkan-headers" ,vulkan-headers) ("vulkan-loader" ,vulkan-loader) ;for vulkan graphics API support ("wayland" ,wayland) ;for wayland display-backend diff --git a/gnu/packages/patches/gtk-introspection-test.patch b/gnu/packages/patches/gtk-introspection-test.patch deleted file mode 100644 index 570ea806a9..0000000000 --- a/gnu/packages/patches/gtk-introspection-test.patch +++ /dev/null @@ -1,22 +0,0 @@ -# Extend rather than stomp environment variables. -# Upstream status: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4268 -diff --git a/testsuite/introspection/meson.build b/testsuite/introspection/meson.build -index 6202fb7446..b59191eb0f 100644 ---- a/testsuite/introspection/meson.build -+++ b/testsuite/introspection/meson.build -@@ -1,9 +1,10 @@ -+env = environment() -+env.prepend('GI_TYPELIB_PATH', -+ join_paths(project_build_root, 'gtk'), -+ gi_dep.get_pkgconfig_variable('typelibdir')) -+env.prepend('LD_PRELOAD', join_paths(project_build_root, 'gtk', 'libgtk-4.so')) - - test('api', - find_program('api.py', dirs: meson.current_source_dir()), - suite: ['introspection'], -- env: [ -- 'GI_TYPELIB_PATH=@0@/gtk:@1@'.format(project_build_root, -- gi_dep.get_pkgconfig_variable('typelibdir')), -- 'LD_PRELOAD=@0@/gtk/libgtk-4.so'.format(project_build_root), -- ]) -+ env: env) -- 2.34.0 [-- Attachment #4: Type: text/plain, Size: 101 bytes --] -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-11 15:15 ` Zhu Zihao @ 2022-03-11 15:59 ` Maxime Devos 2022-03-11 16:01 ` Maxime Devos ` (2 subsequent siblings) 3 siblings, 0 replies; 29+ messages in thread From: Maxime Devos @ 2022-03-11 15:59 UTC (permalink / raw) To: Zhu Zihao, 54261 [-- Attachment #1: Type: text/plain, Size: 213 bytes --] Zhu Zihao schreef op vr 11-03-2022 om 23:15 [+0800]: > +;; TODO: Make this the default package in next release cycle. > +(define-public pango-next Did you mean core-updates cycle here? Greetings, Maxime [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-11 15:15 ` Zhu Zihao 2022-03-11 15:59 ` Maxime Devos @ 2022-03-11 16:01 ` Maxime Devos 2022-03-12 2:38 ` Zhu Zihao 2022-03-11 16:03 ` Maxime Devos 2022-03-15 15:42 ` Zhu Zihao 3 siblings, 1 reply; 29+ messages in thread From: Maxime Devos @ 2022-03-11 16:01 UTC (permalink / raw) To: Zhu Zihao, 54261 [-- Attachment #1: Type: text/plain, Size: 459 bytes --] Zhu Zihao schreef op vr 11-03-2022 om 23:15 [+0800]: > +(define-public pango-next > + (package > + (inherit pango) > + (name "pango") > + (version "1.50.4") Due to pkg-config requiring propagation (*), this can probably unfortunately often cause profile collisions. Greetings, Maxime (*) Could be avoided by symlinking pkg-config files into the pkg-config directories of their dependent libraries, as suggested by lilyp. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-11 16:01 ` Maxime Devos @ 2022-03-12 2:38 ` Zhu Zihao 2022-03-12 9:17 ` Maxime Devos 2022-03-12 9:32 ` Maxime Devos 0 siblings, 2 replies; 29+ messages in thread From: Zhu Zihao @ 2022-03-12 2:38 UTC (permalink / raw) To: Maxime Devos; +Cc: 54261 [-- Attachment #1: Type: text/plain, Size: 1555 bytes --] Yes, so many packages depend on pango, we'd better to update it in 'core-updates'. Maxime Devos <maximedevos@telenet.be> writes: > [[PGP Signed Part:Undecided]] > Zhu Zihao schreef op vr 11-03-2022 om 23:15 [+0800]: >> +(define-public pango-next >> + (package >> + (inherit pango) >> + (name "pango") >> + (version "1.50.4") > > Due to pkg-config requiring propagation (*), this can probably > unfortunately often cause profile collisions. > > Greetings, > Maxime > > (*) Could be avoided by symlinking pkg-config files into the pkg-config > directories of their dependent libraries, as suggested by lilyp. > > [[End of PGP Signed Part]] Not only for pkg-config files, but also for headers. For example, the header of gtk4 may have following lines #include <pango.h> > What if a program uses both 'pango' and gtk? Then IIUC, it would > simultanuously use pango and pango-next in the same process, which can > easily cause problems (see e.g. the bug report about segfaults > involving multiple libcairos). If package A propagates C@1.0 and package B propagates C@2.0. Guix will raise an error. However, it doesn't care about something like guix shell gtk pango@1.48 IDK which pango will win the game. I've asked in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44327 and suggest to introduce priority mechanism like Nix. But Ludovic Courtès doesn't accept my suggestion. -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-12 2:38 ` Zhu Zihao @ 2022-03-12 9:17 ` Maxime Devos 2022-03-12 9:32 ` Maxime Devos 1 sibling, 0 replies; 29+ messages in thread From: Maxime Devos @ 2022-03-12 9:17 UTC (permalink / raw) To: Zhu Zihao; +Cc: 54261 [-- Attachment #1.1: Type: text/plain, Size: 742 bytes --] Zhu Zihao schreef op za 12-03-2022 om 10:38 [+0800]: > > (*) Could be avoided by symlinking pkg-config files into the pkg- > config > > directories of their dependent libraries, as suggested by lilyp. > > > > [[End of PGP Signed Part]] > > Not only for pkg-config files, but also for headers. > > For example, the header of gtk4 may have following lines > > #include <pango.h> This is getting a little off-topic, but for headers, symlinking is not necessary, pango.h could be automatically replaced by the absolute file name /gnu/store/.../include/pango.h in gtk4's header, see attachement. (Idea suggested by lilyp on IRC). It needs some more work though, see TODO's and lack of documentation. Greetings, Maxime. [-- Attachment #1.2: absolute-inclusions.scm --] [-- Type: text/x-scheme, Size: 1926 bytes --] ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix build absolute-inclusions) #:export (absolute-inclusions patch-header-inclusions) #:use-module (guix build utils) #:use-module (ice-9 match) #:use-module (rnrs exceptions)) (define (absolute-inclusions files header-locations) (substitute* files (("#include <(.*)>" original header-name) (guard (c ((search-error? c) original)) ;; TODO: libgcc & etc, maybe avoid increasing the closure size ;; by skipping glibc headers ... (format #f "#include <~a>" (search-input-file header-locations (string-append "include/" header-name))))))) (define* (patch-header-inclusions #:key inputs outputs #:allow-other-keys) "Patch inclusions in C headers in OUTPUTS to use absolute file names." (define header-locations (append outputs inputs)) (define header-file? (file-name-predicate "\\.(h|hpp)$")) (for-each (match-lambda ((_ . output) (absolute-inclusions (find-files (string-append output "/include") header-file?) header-locations))) outputs)) [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-12 2:38 ` Zhu Zihao 2022-03-12 9:17 ` Maxime Devos @ 2022-03-12 9:32 ` Maxime Devos 2022-03-12 9:40 ` Maxime Devos 2022-03-12 16:06 ` Different package version in same environment was: " Zhu Zihao 1 sibling, 2 replies; 29+ messages in thread From: Maxime Devos @ 2022-03-12 9:32 UTC (permalink / raw) To: Zhu Zihao; +Cc: 54261 [-- Attachment #1: Type: text/plain, Size: 1406 bytes --] Zhu Zihao schreef op za 12-03-2022 om 10:38 [+0800]: > > What if a program uses both 'pango' and gtk? Then IIUC, it would > > simultanuously use pango and pango-next in the same process, which > can > > easily cause problems (see e.g. the bug report about segfaults > > involving multiple libcairos). > > If package A propagates C@1.0 and package B propagates C@2.0. Guix > will > raise an error. However, it doesn't care about something like > > guix shell gtk pango@1.48 > > IDK which pango will win the game. 'guix install' and 'guix shell' might not care, but how would this stop the segfaults caused by multiple versions of the same library in the same process? Also, gtk currently propagates pango@1.48.0, the same pango as pango@1.48, so this doesn't seem a good test to me. Instead: $ guix shell gtk pango@1.42.4 Looks like $GUIX_ENVIRONMENT/share/doc/ only contains pango-1.42.4 and not pango-1.48. Looks like a bug? Next I tried: $ guix shell pango@1.42.4 pango@1.48 this also does not complain and the share/doc only contains pango@42.4. Also looks buggy? I'll send a bug report. > > I've asked in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44327 and > suggest to introduce priority mechanism like Nix. But Ludovic Courtès > doesn't accept my suggestion How could a priority mechanism solve the segfaults? Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-12 9:32 ` Maxime Devos @ 2022-03-12 9:40 ` Maxime Devos 2022-03-12 16:06 ` Different package version in same environment was: " Zhu Zihao 1 sibling, 0 replies; 29+ messages in thread From: Maxime Devos @ 2022-03-12 9:40 UTC (permalink / raw) To: Zhu Zihao; +Cc: 54261 [-- Attachment #1: Type: text/plain, Size: 296 bytes --] Maxime Devos schreef op za 12-03-2022 om 10:32 [+0100]: > this also does not complain and the share/doc only contains > pango@42.4. > Also looks buggy? I'll send a bug report. Nevermind about the second part, looks like pango does not have a share/doc directory. Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Different package version in same environment was: Re: [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-12 9:32 ` Maxime Devos 2022-03-12 9:40 ` Maxime Devos @ 2022-03-12 16:06 ` Zhu Zihao 2022-03-13 14:55 ` Maxime Devos 1 sibling, 1 reply; 29+ messages in thread From: Zhu Zihao @ 2022-03-12 16:06 UTC (permalink / raw) To: Maxime Devos; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1300 bytes --] This problem is not related to that patch so I would like to discuss here. Maxime Devos <maximedevos@telenet.be> writes: > [[PGP Signed Part:Undecided]] > Zhu Zihao schreef op za 12-03-2022 om 10:38 [+0800]: >> > What if a program uses both 'pango' and gtk? Then IIUC, it would >> > simultanuously use pango and pango-next in the same process, which >> can >> > easily cause problems (see e.g. the bug report about segfaults >> > involving multiple libcairos). Can you show me the link of the libcairo conflict example you said? I don't know what cause the segfaults in your example. C linker will embed the full path of the library into the RUNPATH, unless LD_LIBRARY_PATH is set, C library will use the dependencies they found in link time. >> >> i've asked in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44327 and >> suggest to introduce priority mechanism like Nix. But Ludovic Courtès >> doesn't accept my suggestion > > How could a priority mechanism solve the segfaults? 'priority' will let user to specify which package can override other packages, if some of their contents overlapped with each other. Now Guix will silently choose one. -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: Different package version in same environment was: Re: [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-12 16:06 ` Different package version in same environment was: " Zhu Zihao @ 2022-03-13 14:55 ` Maxime Devos 0 siblings, 0 replies; 29+ messages in thread From: Maxime Devos @ 2022-03-13 14:55 UTC (permalink / raw) To: Zhu Zihao; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 783 bytes --] Zhu Zihao schreef op zo 13-03-2022 om 00:06 [+0800]: > Can you show me the link of the libcairo conflict example you said? > > I don't know what cause the segfaults in your example. C linker will > embed the full path of the library into the RUNPATH, unless > LD_LIBRARY_PATH is set, C library will use the dependencies they > found in > link time. It will embed the full path of the library. The problem is, it might embed multiple variants of the same library in the same binary. For the libcairo problem, see <https://issues.guix.gnu.org/47115#22>. Turns out it wasn't a segfault but another kind of problem. And it wasn't due to deduplication but rather buggy grafting. Still, I suppose something similar can happen with propagation. Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-11 15:15 ` Zhu Zihao 2022-03-11 15:59 ` Maxime Devos 2022-03-11 16:01 ` Maxime Devos @ 2022-03-11 16:03 ` Maxime Devos 2022-03-15 15:42 ` Zhu Zihao 3 siblings, 0 replies; 29+ messages in thread From: Maxime Devos @ 2022-03-11 16:03 UTC (permalink / raw) To: Zhu Zihao, 54261 [-- Attachment #1: Type: text/plain, Size: 386 bytes --] Zhu Zihao schreef op vr 11-03-2022 om 23:15 [+0800]: > - ("pango" ,pango) > + ("pango" ,pango-next) What if a program uses both 'pango' and gtk? Then IIUC, it would simultanuously use pango and pango-next in the same process, which can easily cause problems (see e.g. the bug report about segfaults involving multiple libcairos). Greetings, Maxime [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) 2022-03-11 15:15 ` Zhu Zihao ` (2 preceding siblings ...) 2022-03-11 16:03 ` Maxime Devos @ 2022-03-15 15:42 ` Zhu Zihao 2022-03-18 22:48 ` [bug#54261] [PATCH]: Update GTK to 4.6.1 Ludovic Courtès 3 siblings, 1 reply; 29+ messages in thread From: Zhu Zihao @ 2022-03-15 15:42 UTC (permalink / raw) To: 54261 [-- Attachment #1.1: Type: text/plain, Size: 33 bytes --] Also update gtkmm and pangomm. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] [-- Attachment #2: 0001-gnu-pango-Add-version-1.50.4.patch --] [-- Type: text/x-patch, Size: 1639 bytes --] From bd53ac3a162c1f5b53363126c125d826a5cb6a6e Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 21:36:25 +0800 Subject: [PATCH 1/4] gnu: pango: Add version 1.50.4. * gnu/packages/gtk.scm(pango-next): New variable. --- gnu/packages/gtk.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 29302051c1..bc7b388a88 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com> +;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -409,6 +410,22 @@ (define-public pango (home-page "https://pango.gnome.org/") (license license:lgpl2.0+))) +;; TODO: Make this the default package in next release cycle. +(define-public pango-next + (package + (inherit pango) + (name "pango") + (version "1.50.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/pango/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (patches (search-patches "pango-skip-libthai-test.patch")) + (sha256 + (base32 + "0qn1a7ccs3p5vc6swbqm6hdzka879l0gp9220lq4bcf2gpl67bgl")))))) + (define-public pango-1.42 (package (inherit pango) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-gtk-Update-to-4.6.1.patch --] [-- Type: text/x-patch, Size: 5414 bytes --] From 0c22cbd070d47b8c3b534caceb3eb05c8f7f6d41 Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 22:40:46 +0800 Subject: [PATCH 2/4] gnu: gtk: Update to 4.6.1. * gnu/local.mk (dist_patch_DATA): Remove gtk-introspection-test.patch. * gnu/packages/patches/gtk-introspection-test.patch: Remove. * gnu/packages/gtk.scm (gtk): Update to 4.6.1. [source]: Remove stale patch. [arguments]<phases>: Add 'patch-rst2man' phase, correct the binary name of rst2man to 'rst2man.py' [inputs]: Add libjpeg-turbo, libpng, libtiff. [native-inputs]: Add python-docutils. [propagated-inputs]: Use pango-next. --- gnu/local.mk | 1 - gnu/packages/gtk.scm | 17 +++++++++----- .../patches/gtk-introspection-test.patch | 22 ------------------- 3 files changed, 12 insertions(+), 28 deletions(-) delete mode 100644 gnu/packages/patches/gtk-introspection-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index c8026a1ec1..1e0bb0c00c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1244,7 +1244,6 @@ dist_patch_DATA = \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk-doc-respect-xml-catalog.patch \ - %D%/packages/patches/gtk-introspection-test.patch \ %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/gtksourceview-2-add-default-directory.patch \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index bc7b388a88..3d7706b9ee 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1076,7 +1076,7 @@ (define-public gtk+ (define-public gtk (package (name "gtk") - (version "4.4.1") + (version "4.6.1") (source (origin (method url-fetch) @@ -1084,10 +1084,9 @@ (define-public gtk (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1x6xlc063nqp7cg6py4kq1kpw9pkq49ifk5kki0brc667ncdmahg")) + (base32 "0pzcs24j67f90kjcp6apgn6rffynxksjm1m7d3an7kdv3k90hmfq")) (patches - (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch" - "gtk-introspection-test.patch")))) + (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")))) (build-system meson-build-system) (outputs '("out" "bin" "doc")) (arguments @@ -1117,6 +1116,10 @@ (define-public gtk (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file (assoc-ref glib-or-gtk:%standard-phases 'generate-gdk-pixbuf-loaders-cache-file)) + (add-after 'unpack 'patch-rst2man + (lambda _ + (substitute* "docs/reference/gtk/meson.build" + (("find_program\\('rst2man'") "find_program('rst2man.py'")))) (add-after 'unpack 'patch (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) ;; Correct DTD resources of docbook. @@ -1194,6 +1197,7 @@ (define-public gtk ("pkg-config" ,pkg-config) ("python-pygobject" ,python-pygobject) ;; These python modules are required for building documentation. + ("python-docutils" ,python-docutils) ("python-jinja2" ,python-jinja2) ("python-markdown" ,python-markdown) ("python-markupsafe" ,python-markupsafe) @@ -1216,7 +1220,10 @@ (define-public gtk iso-codes json-glib libcloudproviders ;for cloud-providers support + libjpeg-turbo + libpng librsvg + libtiff python rest tracker)) ;for filechooser search support @@ -1239,7 +1246,7 @@ (define-public gtk ("libxkbcommon" ,libxkbcommon) ("libxrandr" ,libxrandr) ("libxrender" ,libxrender) - ("pango" ,pango) + ("pango" ,pango-next) ("vulkan-headers" ,vulkan-headers) ("vulkan-loader" ,vulkan-loader) ;for vulkan graphics API support ("wayland" ,wayland) ;for wayland display-backend diff --git a/gnu/packages/patches/gtk-introspection-test.patch b/gnu/packages/patches/gtk-introspection-test.patch deleted file mode 100644 index 570ea806a9..0000000000 --- a/gnu/packages/patches/gtk-introspection-test.patch +++ /dev/null @@ -1,22 +0,0 @@ -# Extend rather than stomp environment variables. -# Upstream status: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4268 -diff --git a/testsuite/introspection/meson.build b/testsuite/introspection/meson.build -index 6202fb7446..b59191eb0f 100644 ---- a/testsuite/introspection/meson.build -+++ b/testsuite/introspection/meson.build -@@ -1,9 +1,10 @@ -+env = environment() -+env.prepend('GI_TYPELIB_PATH', -+ join_paths(project_build_root, 'gtk'), -+ gi_dep.get_pkgconfig_variable('typelibdir')) -+env.prepend('LD_PRELOAD', join_paths(project_build_root, 'gtk', 'libgtk-4.so')) - - test('api', - find_program('api.py', dirs: meson.current_source_dir()), - suite: ['introspection'], -- env: [ -- 'GI_TYPELIB_PATH=@0@/gtk:@1@'.format(project_build_root, -- gi_dep.get_pkgconfig_variable('typelibdir')), -- 'LD_PRELOAD=@0@/gtk/libgtk-4.so'.format(project_build_root), -- ]) -+ env: env) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #4: 0003-gnu-pangomm-Update-to-2.50.0.patch --] [-- Type: text/x-patch, Size: 1577 bytes --] From 216abd161ce06d49f7586203281dcf1ba523a8af Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Tue, 15 Mar 2022 22:39:43 +0800 Subject: [PATCH 3/4] gnu: pangomm: Update to 2.50.0. * gnu/packages/gtk.scm (pangomm): Update to 2.50.0. [propagated-inputs]: Replace 'pango' with 'pango-next'. --- gnu/packages/gtk.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 3d7706b9ee..2ee273229f 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 -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #5: 0004-gnu-gtkmm-Update-to-4.6.0.patch --] [-- Type: text/x-patch, Size: 1102 bytes --] From dc4aabc7831c00526f0b2b2c3e69cab4aa5f3459 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.0. * gnu/packages/gtk.scm (gtkmm): Update to 4.6.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 2ee273229f..75d4120e7e 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1760,7 +1760,7 @@ (define-public atkmm-2.28 (define-public gtkmm (package (name "gtkmm") - (version "4.4.0") + (version "4.6.0") (source (origin (method url-fetch) @@ -1769,7 +1769,7 @@ (define-public gtkmm (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1nhdf1s437k41af6frbqw2sky46qci0hgkg9h86a9rlnc0r69d1f")))) + (base32 "07sch42iavk5fw3r9x5m0kb2l4xg1ch3vn85mksiwmybjf8a0lqk")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments -- 2.34.0 [-- Attachment #6: Type: text/plain, Size: 100 bytes --] -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-15 15:42 ` Zhu Zihao @ 2022-03-18 22:48 ` Ludovic Courtès 2022-03-19 3:00 ` Zhu Zihao 2022-03-21 1:17 ` Zhu Zihao 0 siblings, 2 replies; 29+ messages in thread From: Ludovic Courtès @ 2022-03-18 22:48 UTC (permalink / raw) To: Zhu Zihao; +Cc: 54261, Maxime Devos Hi, The patches all LGTM, but unfortunately they break fcitx5-gtk, which pulls in both ‘pango’ and ‘pango-next’, leading to: --8<---------------cut here---------------start------------->8--- -- Checking for module 'gtk+-3.0' -- Found gtk+-3.0, version 3.24.30 -- Checking for module 'gdk-3.0' -- Found gdk-3.0, version 3.24.30 -- Checking for module 'gdk-x11-3.0' -- Found gdk-x11-3.0, version 3.24.30 -- Checking for module 'gtk4>=4.2' -- Package 'gtk4' requires 'pango >= 1.50.0' but version of pango is 1.48.10 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) gtk4/CMakeLists.txt:10 (pkg_check_modules) --8<---------------cut here---------------end--------------->8--- Solutions that come to mind: 1. Disable the GTK 4 backend of ‘fcitx5-gtk’. 2. Add ‘pango-next’ as an input of ‘fcitx5-gtk’, taking precedence over ‘pango’, at the risk of breaking the GTK+2 and GTK+3 backends. 3. There is no 3rd idea. Thoughts? Ludo’. ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-18 22:48 ` [bug#54261] [PATCH]: Update GTK to 4.6.1 Ludovic Courtès @ 2022-03-19 3:00 ` Zhu Zihao 2022-03-21 1:17 ` Zhu Zihao 1 sibling, 0 replies; 29+ messages in thread From: Zhu Zihao @ 2022-03-19 3:00 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 54261, Maxime Devos [-- Attachment #1: Type: text/plain, Size: 334 bytes --] Ludovic Courtès <ludo@gnu.org> writes: > 3. There is no 3rd idea. > > Thoughts? > > Ludo’. 3. I'll reconsider your proposal in recent fcitx5-gtk update that split the gtk4 backend into a separated package. -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-18 22:48 ` [bug#54261] [PATCH]: Update GTK to 4.6.1 Ludovic Courtès 2022-03-19 3:00 ` Zhu Zihao @ 2022-03-21 1:17 ` Zhu Zihao 2022-03-27 3:04 ` Zhu Zihao 2022-03-29 13:34 ` Ludovic Courtès 1 sibling, 2 replies; 29+ messages in thread From: Zhu Zihao @ 2022-03-21 1:17 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 54261, Maxime Devos [-- Attachment #1.1: Type: text/plain, Size: 112 bytes --] Here is a draft patch, it now works. But some part may need polish. Can you give me some suggestions? Thanks. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] [-- Attachment #2: 0001-gnu-pango-Add-version-1.50.4.patch --] [-- Type: text/x-patch, Size: 1639 bytes --] From bd53ac3a162c1f5b53363126c125d826a5cb6a6e Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 21:36:25 +0800 Subject: [PATCH 1/6] gnu: pango: Add version 1.50.4. * gnu/packages/gtk.scm(pango-next): New variable. --- gnu/packages/gtk.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 29302051c1..bc7b388a88 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com> +;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -409,6 +410,22 @@ (define-public pango (home-page "https://pango.gnome.org/") (license license:lgpl2.0+))) +;; TODO: Make this the default package in next release cycle. +(define-public pango-next + (package + (inherit pango) + (name "pango") + (version "1.50.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/pango/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (patches (search-patches "pango-skip-libthai-test.patch")) + (sha256 + (base32 + "0qn1a7ccs3p5vc6swbqm6hdzka879l0gp9220lq4bcf2gpl67bgl")))))) + (define-public pango-1.42 (package (inherit pango) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-gtk-Update-to-4.6.1.patch --] [-- Type: text/x-patch, Size: 5414 bytes --] From 0c22cbd070d47b8c3b534caceb3eb05c8f7f6d41 Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 22:40:46 +0800 Subject: [PATCH 2/6] gnu: gtk: Update to 4.6.1. * gnu/local.mk (dist_patch_DATA): Remove gtk-introspection-test.patch. * gnu/packages/patches/gtk-introspection-test.patch: Remove. * gnu/packages/gtk.scm (gtk): Update to 4.6.1. [source]: Remove stale patch. [arguments]<phases>: Add 'patch-rst2man' phase, correct the binary name of rst2man to 'rst2man.py' [inputs]: Add libjpeg-turbo, libpng, libtiff. [native-inputs]: Add python-docutils. [propagated-inputs]: Use pango-next. --- gnu/local.mk | 1 - gnu/packages/gtk.scm | 17 +++++++++----- .../patches/gtk-introspection-test.patch | 22 ------------------- 3 files changed, 12 insertions(+), 28 deletions(-) delete mode 100644 gnu/packages/patches/gtk-introspection-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index c8026a1ec1..1e0bb0c00c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1244,7 +1244,6 @@ dist_patch_DATA = \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk-doc-respect-xml-catalog.patch \ - %D%/packages/patches/gtk-introspection-test.patch \ %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/gtksourceview-2-add-default-directory.patch \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index bc7b388a88..3d7706b9ee 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1076,7 +1076,7 @@ (define-public gtk+ (define-public gtk (package (name "gtk") - (version "4.4.1") + (version "4.6.1") (source (origin (method url-fetch) @@ -1084,10 +1084,9 @@ (define-public gtk (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1x6xlc063nqp7cg6py4kq1kpw9pkq49ifk5kki0brc667ncdmahg")) + (base32 "0pzcs24j67f90kjcp6apgn6rffynxksjm1m7d3an7kdv3k90hmfq")) (patches - (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch" - "gtk-introspection-test.patch")))) + (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")))) (build-system meson-build-system) (outputs '("out" "bin" "doc")) (arguments @@ -1117,6 +1116,10 @@ (define-public gtk (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file (assoc-ref glib-or-gtk:%standard-phases 'generate-gdk-pixbuf-loaders-cache-file)) + (add-after 'unpack 'patch-rst2man + (lambda _ + (substitute* "docs/reference/gtk/meson.build" + (("find_program\\('rst2man'") "find_program('rst2man.py'")))) (add-after 'unpack 'patch (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) ;; Correct DTD resources of docbook. @@ -1194,6 +1197,7 @@ (define-public gtk ("pkg-config" ,pkg-config) ("python-pygobject" ,python-pygobject) ;; These python modules are required for building documentation. + ("python-docutils" ,python-docutils) ("python-jinja2" ,python-jinja2) ("python-markdown" ,python-markdown) ("python-markupsafe" ,python-markupsafe) @@ -1216,7 +1220,10 @@ (define-public gtk iso-codes json-glib libcloudproviders ;for cloud-providers support + libjpeg-turbo + libpng librsvg + libtiff python rest tracker)) ;for filechooser search support @@ -1239,7 +1246,7 @@ (define-public gtk ("libxkbcommon" ,libxkbcommon) ("libxrandr" ,libxrandr) ("libxrender" ,libxrender) - ("pango" ,pango) + ("pango" ,pango-next) ("vulkan-headers" ,vulkan-headers) ("vulkan-loader" ,vulkan-loader) ;for vulkan graphics API support ("wayland" ,wayland) ;for wayland display-backend diff --git a/gnu/packages/patches/gtk-introspection-test.patch b/gnu/packages/patches/gtk-introspection-test.patch deleted file mode 100644 index 570ea806a9..0000000000 --- a/gnu/packages/patches/gtk-introspection-test.patch +++ /dev/null @@ -1,22 +0,0 @@ -# Extend rather than stomp environment variables. -# Upstream status: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4268 -diff --git a/testsuite/introspection/meson.build b/testsuite/introspection/meson.build -index 6202fb7446..b59191eb0f 100644 ---- a/testsuite/introspection/meson.build -+++ b/testsuite/introspection/meson.build -@@ -1,9 +1,10 @@ -+env = environment() -+env.prepend('GI_TYPELIB_PATH', -+ join_paths(project_build_root, 'gtk'), -+ gi_dep.get_pkgconfig_variable('typelibdir')) -+env.prepend('LD_PRELOAD', join_paths(project_build_root, 'gtk', 'libgtk-4.so')) - - test('api', - find_program('api.py', dirs: meson.current_source_dir()), - suite: ['introspection'], -- env: [ -- 'GI_TYPELIB_PATH=@0@/gtk:@1@'.format(project_build_root, -- gi_dep.get_pkgconfig_variable('typelibdir')), -- 'LD_PRELOAD=@0@/gtk/libgtk-4.so'.format(project_build_root), -- ]) -+ env: env) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #4: 0003-gnu-pangomm-Update-to-2.50.0.patch --] [-- Type: text/x-patch, Size: 1577 bytes --] From 216abd161ce06d49f7586203281dcf1ba523a8af Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Tue, 15 Mar 2022 22:39:43 +0800 Subject: [PATCH 3/6] gnu: pangomm: Update to 2.50.0. * gnu/packages/gtk.scm (pangomm): Update to 2.50.0. [propagated-inputs]: Replace 'pango' with 'pango-next'. --- gnu/packages/gtk.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 3d7706b9ee..2ee273229f 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 -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #5: 0004-gnu-gtkmm-Update-to-4.6.0.patch --] [-- Type: text/x-patch, Size: 1102 bytes --] From dc4aabc7831c00526f0b2b2c3e69cab4aa5f3459 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/6] gnu: gtkmm: Update to 4.6.0. * gnu/packages/gtk.scm (gtkmm): Update to 4.6.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 2ee273229f..75d4120e7e 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1760,7 +1760,7 @@ (define-public atkmm-2.28 (define-public gtkmm (package (name "gtkmm") - (version "4.4.0") + (version "4.6.0") (source (origin (method url-fetch) @@ -1769,7 +1769,7 @@ (define-public gtkmm (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1nhdf1s437k41af6frbqw2sky46qci0hgkg9h86a9rlnc0r69d1f")))) + (base32 "07sch42iavk5fw3r9x5m0kb2l4xg1ch3vn85mksiwmybjf8a0lqk")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #6: 0005-gnu-fcitx5-gtk-Remove-GTK4-support.patch --] [-- Type: text/x-patch, Size: 2728 bytes --] From e1cc0e4054cc34320ed1ff8d35c64bc5db6b0e28 Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Mon, 21 Mar 2022 09:11:10 +0800 Subject: [PATCH 5/6] gnu: fcitx5-gtk: Remove GTK4 support. The GTK4 support will be separated and placed in a dedicated package. * gnu/packages/fcitx5.scm (fcitx5-gtk)[arguments]: Disable GTK4 build. <configure-flags>: Add "-DENABLE_GTK_IM_MODULE=OFF". <phases>: In phase "patch-install-prefix", Remove GTK4 code. [inputs]: Remove package gtk. [outputs]: Remove output "gtk4". --- gnu/packages/fcitx5.scm | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm index 0be5e53863..2d5917f3c0 100644 --- a/gnu/packages/fcitx5.scm +++ b/gnu/packages/fcitx5.scm @@ -203,7 +203,8 @@ (define-public fcitx5-gtk #~(list (string-append "-DGOBJECT_INTROSPECTION_GIRDIR=" #$output "/share/gir-1.0") (string-append "-DGOBJECT_INTROSPECTION_TYPELIBDIR=" - #$output "/lib/girepository-1.0")) + #$output "/lib/girepository-1.0") + "-DENABLE_GTK4_IM_MODULE=OFF") #:phases #~(modify-phases %standard-phases (add-before 'configure 'patch-install-prefix @@ -216,11 +217,10 @@ (define (split-immodule gtk-version output) (string-append output "/lib")))) (let ((gtk2 #$output:gtk2) - (gtk3 #$output:gtk3) - (gtk4 #$output:gtk4)) + (gtk3 #$output:gtk3)) (for-each split-immodule - '("gtk2" "gtk3" "gtk4") - (list gtk2 gtk3 gtk4)))))))) + '("gtk2" "gtk3") + (list gtk2 gtk3)))))))) (inputs (list fcitx5 fmt @@ -230,12 +230,11 @@ (define (split-immodule gtk-version output) gobject-introspection gtk+-2 gtk+ - gtk glib)) (native-inputs (list extra-cmake-modules pkg-config `(,glib "bin"))) ;for glib-genmarshal - (outputs '("out" "gtk2" "gtk3" "gtk4")) + (outputs '("out" "gtk2" "gtk3")) (home-page "https://github.com/fcitx/fcitx5-gtk") (synopsis "GLib-based D-Bus client and GTK IM module for Fcitx 5") (description "Fcitx5-gtk provides the following functionality in the @@ -248,8 +247,6 @@ (define (split-immodule gtk-version output) IM module for GTK+2 applications. @item gtk3 IM module for GTK+3 applications. -@item gtk4 -IM module for GTK4 applications. @end table") (license license:lgpl2.1+))) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #7: 0006-gnu-Add-fcitx5-gtk4.patch --] [-- Type: text/x-patch, Size: 2502 bytes --] From 84da7d385c7759fbf9defdfa5e573bfe57c00c4b 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 6/6] 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")) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'fix-gclient + (lambda* (#:key inputs #:allow-other-keys) + (define gclient + (search-input-file inputs "lib/libFcitx5GClient.so")) + ;; Force cmake search libFcitx5GClient.so in library search + ;; path instead of compiling again. + (substitute* "gtk4/CMakeLists.txt" + (("Fcitx5::GClient") + gclient)))) + (add-before 'build 'enter-gtk4-subdirectory + (lambda _ + (chdir "gtk4"))) + (add-after 'install 'leave-gtk4-subdirectory + (lambda _ + (chdir "..")))))) + (inputs + (modify-inputs (package-inputs fcitx5-gtk) + (delete "gtk+") + (prepend fcitx5-gtk gtk))) + (outputs '("out")) + (synopsis "GTK4 IM module for Fcitx 5") + (description "Fcitx5-gtk4 provides IM module for GTK4 applications."))) + (define-public fcitx5-qt (package (name "fcitx5-qt") -- 2.34.0 [-- Attachment #8: Type: text/plain, Size: 100 bytes --] -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-21 1:17 ` Zhu Zihao @ 2022-03-27 3:04 ` Zhu Zihao 2022-03-27 7:38 ` Liliana Marie Prikler 2022-03-29 13:34 ` Ludovic Courtès 1 sibling, 1 reply; 29+ messages in thread From: Zhu Zihao @ 2022-03-27 3:04 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 54261, Maxime Devos [-- Attachment #1: Type: text/plain, Size: 130 bytes --] ping. Any thoughts? -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-27 3:04 ` Zhu Zihao @ 2022-03-27 7:38 ` Liliana Marie Prikler 2022-03-28 15:37 ` Zhu Zihao 0 siblings, 1 reply; 29+ messages in thread From: Liliana Marie Prikler @ 2022-03-27 7:38 UTC (permalink / raw) To: Zhu Zihao, Ludovic Courtès; +Cc: 54261, Maxime Devos Am Sonntag, dem 27.03.2022 um 11:04 +0800 schrieb Zhu Zihao: > > ping. Any thoughts? > As far as I can see, the main issue (GTK propagating pango-next) has not been addressed, we're just piling on workarounds. This is not the way to go, as it will inevitably lead to more conflicts later on. If possible, I'd suggest trying to build GTK against the old pango, perhaps with a patch that can be removed on core-updates. WDYT? ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-27 7:38 ` Liliana Marie Prikler @ 2022-03-28 15:37 ` Zhu Zihao 2022-03-28 18:19 ` Liliana Marie Prikler 0 siblings, 1 reply; 29+ messages in thread From: Zhu Zihao @ 2022-03-28 15:37 UTC (permalink / raw) To: Liliana Marie Prikler; +Cc: Ludovic Courtès, 54261, Maxime Devos [-- Attachment #1.1: Type: text/plain, Size: 0 bytes --] [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] [-- Attachment #2.1: Type: text/plain, Size: 912 bytes --] Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > Am Sonntag, dem 27.03.2022 um 11:04 +0800 schrieb Zhu Zihao: >> >> ping. Any thoughts? >> > As far as I can see, the main issue (GTK propagating pango-next) has > not been addressed, we're just piling on workarounds. This is not the > way to go, as it will inevitably lead to more conflicts later on. > > If possible, I'd suggest trying to build GTK against the old pango, > perhaps with a patch that can be removed on core-updates. WDYT? Try build GTK 4.6.1 with Pango 1.48 is so tricky IMO. GTK 4.6.1 may use the API introduced in pango 1.50 series. Currently my idea's make GTK+ 2 & 3 use Pango 1.50. It'll triggeer 3000+ builds, and we can put it to stage branch (if we update pango, it will trigger 7000+ builds) -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao [-- Attachment #2.2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-28 15:37 ` Zhu Zihao @ 2022-03-28 18:19 ` Liliana Marie Prikler 2022-03-29 5:56 ` Zhu Zihao 2022-03-29 6:01 ` Zhu Zihao 0 siblings, 2 replies; 29+ messages in thread From: Liliana Marie Prikler @ 2022-03-28 18:19 UTC (permalink / raw) To: Zhu Zihao; +Cc: Ludovic Courtès, 54261, Maxime Devos Am Montag, dem 28.03.2022 um 23:37 +0800 schrieb Zhu Zihao: > > Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > > > Am Sonntag, dem 27.03.2022 um 11:04 +0800 schrieb Zhu Zihao: > > > ping. Any thoughts? > > As far as I can see, the main issue (GTK propagating pango-next) > > has not been addressed, we're just piling on workarounds. This is > > not the way to go, as it will inevitably lead to more conflicts > > later on. > > > > If possible, I'd suggest trying to build GTK against the old pango, > > perhaps with a patch that can be removed on core-updates. WDYT? > > > Try build GTK 4.6.1 with Pango 1.48 is so tricky IMO. GTK 4.6.1 may > use the API introduced in pango 1.50 series. Currently my idea's make > GTK+ 2 & 3 use Pango 1.50. It'll triggeer 3000+ builds, and we can > put it to stage branch (if we update pango, it will trigger 7000+ > builds) 3k rebuilds is still beyond the limit of 1.5k and doesn't address the main issue (that being propagation). ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-28 18:19 ` Liliana Marie Prikler @ 2022-03-29 5:56 ` Zhu Zihao 2022-03-29 6:01 ` Zhu Zihao 1 sibling, 0 replies; 29+ messages in thread From: Zhu Zihao @ 2022-03-29 5:56 UTC (permalink / raw) To: Liliana Marie Prikler; +Cc: Ludovic Courtès, 54261, Maxime Devos [-- Attachment #1: Type: text/plain, Size: 1291 bytes --] Ok, just update pango and queue these commits into the core-updates branch :( Liliana Marie Prikler <liliana.prikler@gmail.com> writes: > Am Montag, dem 28.03.2022 um 23:37 +0800 schrieb Zhu Zihao: >> >> Liliana Marie Prikler <liliana.prikler@gmail.com> writes: >> >> > Am Sonntag, dem 27.03.2022 um 11:04 +0800 schrieb Zhu Zihao: >> > > ping. Any thoughts? >> > As far as I can see, the main issue (GTK propagating pango-next) >> > has not been addressed, we're just piling on workarounds. This is >> > not the way to go, as it will inevitably lead to more conflicts >> > later on. >> > >> > If possible, I'd suggest trying to build GTK against the old pango, >> > perhaps with a patch that can be removed on core-updates. WDYT? >> >> >> Try build GTK 4.6.1 with Pango 1.48 is so tricky IMO. GTK 4.6.1 may >> use the API introduced in pango 1.50 series. Currently my idea's make >> GTK+ 2 & 3 use Pango 1.50. It'll triggeer 3000+ builds, and we can >> put it to stage branch (if we update pango, it will trigger 7000+ >> builds) > 3k rebuilds is still beyond the limit of 1.5k and doesn't address the > main issue (that being propagation). -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-28 18:19 ` Liliana Marie Prikler 2022-03-29 5:56 ` Zhu Zihao @ 2022-03-29 6:01 ` Zhu Zihao 2022-03-30 19:56 ` Ludovic Courtès 1 sibling, 1 reply; 29+ messages in thread From: Zhu Zihao @ 2022-03-29 6:01 UTC (permalink / raw) To: Liliana Marie Prikler; +Cc: Ludovic Courtès, 54261 [-- Attachment #1: Type: text/plain, Size: 297 bytes --] To Ludovic Courtès: If you think this hack to fcitx5-gtk is bad, I'd like to update to pango and make these changes on core-updates. Please tell me your ideas on it. Thanks a lot! -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-29 6:01 ` Zhu Zihao @ 2022-03-30 19:56 ` Ludovic Courtès 2022-03-31 5:13 ` Zhu Zihao 0 siblings, 1 reply; 29+ messages in thread From: Ludovic Courtès @ 2022-03-30 19:56 UTC (permalink / raw) To: Zhu Zihao; +Cc: 54261, Liliana Marie Prikler Hi, Zhu Zihao <all_but_last@163.com> skribis: > To Ludovic Courtès: > > If you think this hack to fcitx5-gtk is bad, I'd like to update to pango > and make these changes on core-updates. I think the fcitx5-gtk split is good; maybe it’s not idea, but it’s a good middleground IMO. Like I wrote, the patches LGTM for master, except that I’d suggest merging the bits that go together: https://issues.guix.gnu.org/54261#20 Liliana suggests “doing the right thing”, which is to update the default pango, but that would require delaying to ‘core-updates’. Instead, I think it’s okay to have it the way you propose in ‘master’. I hope this clarifies my view! Thanks, Ludo’. ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-30 19:56 ` Ludovic Courtès @ 2022-03-31 5:13 ` Zhu Zihao 0 siblings, 0 replies; 29+ messages in thread From: Zhu Zihao @ 2022-03-31 5:13 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 54261, Liliana Marie Prikler [-- Attachment #1: Type: text/plain, Size: 970 bytes --] Done in https://issues.guix.gnu.org/54261#21. Ludovic Courtès <ludo@gnu.org> writes: > Hi, > > Zhu Zihao <all_but_last@163.com> skribis: > >> To Ludovic Courtès: >> >> If you think this hack to fcitx5-gtk is bad, I'd like to update to pango >> and make these changes on core-updates. > > I think the fcitx5-gtk split is good; maybe it’s not idea, but it’s a > good middleground IMO. > > Like I wrote, the patches LGTM for master, except that I’d suggest > merging the bits that go together: > > https://issues.guix.gnu.org/54261#20 > > Liliana suggests “doing the right thing”, which is to update the default > pango, but that would require delaying to ‘core-updates’. Instead, I > think it’s okay to have it the way you propose in ‘master’. > > I hope this clarifies my view! > > Thanks, > Ludo’. -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-21 1:17 ` Zhu Zihao 2022-03-27 3:04 ` Zhu Zihao @ 2022-03-29 13:34 ` Ludovic Courtès 2022-03-30 3:45 ` Zhu Zihao 1 sibling, 1 reply; 29+ messages in thread From: Ludovic Courtès @ 2022-03-29 13:34 UTC (permalink / raw) To: Zhu Zihao; +Cc: 54261, Maxime Devos, Liliana Marie Prikler Hi, Sorry for the delay. Zhu Zihao <all_but_last@163.com> skribis: > From bd53ac3a162c1f5b53363126c125d826a5cb6a6e Mon Sep 17 00:00:00 2001 > From: Zhu Zihao <all_but_last@163.com> > Date: Sat, 5 Mar 2022 21:36:25 +0800 > Subject: [PATCH 1/6] gnu: pango: Add version 1.50.4. > > * gnu/packages/gtk.scm(pango-next): New variable. [...] > From 0c22cbd070d47b8c3b534caceb3eb05c8f7f6d41 Mon Sep 17 00:00:00 2001 > From: Zhu Zihao <all_but_last@163.com> > Date: Sat, 5 Mar 2022 22:40:46 +0800 > Subject: [PATCH 2/6] gnu: gtk: Update to 4.6.1. > > * gnu/local.mk (dist_patch_DATA): Remove gtk-introspection-test.patch. > * gnu/packages/patches/gtk-introspection-test.patch: Remove. > > * gnu/packages/gtk.scm (gtk): Update to 4.6.1. > [source]: Remove stale patch. > [arguments]<phases>: Add 'patch-rst2man' phase, correct the binary name of > rst2man to 'rst2man.py' > [inputs]: Add libjpeg-turbo, libpng, libtiff. > [native-inputs]: Add python-docutils. > [propagated-inputs]: Use pango-next. [...] > From 216abd161ce06d49f7586203281dcf1ba523a8af Mon Sep 17 00:00:00 2001 > From: Zhu Zihao <all_but_last@163.com> > Date: Tue, 15 Mar 2022 22:39:43 +0800 > Subject: [PATCH 3/6] gnu: pangomm: Update to 2.50.0. > > * gnu/packages/gtk.scm (pangomm): Update to 2.50.0. > > [propagated-inputs]: Replace 'pango' with 'pango-next'. Only Ardour and gtkmm depend on it; are they find after this change? > From dc4aabc7831c00526f0b2b2c3e69cab4aa5f3459 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/6] gnu: gtkmm: Update to 4.6.0. > > * gnu/packages/gtk.scm (gtkmm): Update to 4.6.0. If pangomm and gtkmm are meant to be updated in lockstep, you can merge patches #3 and #4. > From e1cc0e4054cc34320ed1ff8d35c64bc5db6b0e28 Mon Sep 17 00:00:00 2001 > From: Zhu Zihao <all_but_last@163.com> > Date: Mon, 21 Mar 2022 09:11:10 +0800 > Subject: [PATCH 5/6] gnu: fcitx5-gtk: Remove GTK4 support. > > The GTK4 support will be separated and placed in a dedicated package. > > * gnu/packages/fcitx5.scm (fcitx5-gtk)[arguments]: Disable GTK4 build. > > <configure-flags>: Add "-DENABLE_GTK_IM_MODULE=OFF". > > <phases>: In phase "patch-install-prefix", Remove GTK4 code. > > [inputs]: Remove package gtk. > > [outputs]: Remove output "gtk4". Likewise, this one can be merged with the “gtk” package update since otherwise it would be left temporarily broken. (Nitpick: no need to leave empty lines like this in the commit log.) > From 84da7d385c7759fbf9defdfa5e573bfe57c00c4b 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 6/6] gnu: Add fcitx5-gtk4. > > * gnu/packages/fcitx5.scm (fcitx5-gtk4): New variable. Sounds good to me. Liliana suggests using the “old” Pango version, but my understanding is that it’s not really feasible. Thus, I think the approach above is the way to go. Could you send an updated patch taking the cosmetic suggestions above into account? Thanks! Ludo’. ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-29 13:34 ` Ludovic Courtès @ 2022-03-30 3:45 ` Zhu Zihao 2022-04-01 15:54 ` Ludovic Courtès 0 siblings, 1 reply; 29+ messages in thread From: Zhu Zihao @ 2022-03-30 3:45 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 54261, Maxime Devos, Liliana Marie Prikler [-- Attachment #1.1: Type: text/plain, Size: 449 bytes --] 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. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] [-- Attachment #2: 0001-gnu-pango-1.50-Add-version-1.50.4.patch --] [-- Type: text/x-patch, Size: 1644 bytes --] From a9be73a1723810dbcec0c4caa3a9d6669494f6d9 Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 21:36:25 +0800 Subject: [PATCH 1/4] gnu: pango 1.50: Add version 1.50.4. * gnu/packages/gtk.scm(pango-next): New variable. --- gnu/packages/gtk.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 29302051c1..bc7b388a88 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com> +;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -409,6 +410,22 @@ (define-public pango (home-page "https://pango.gnome.org/") (license license:lgpl2.0+))) +;; TODO: Make this the default package in next release cycle. +(define-public pango-next + (package + (inherit pango) + (name "pango") + (version "1.50.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/pango/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (patches (search-patches "pango-skip-libthai-test.patch")) + (sha256 + (base32 + "0qn1a7ccs3p5vc6swbqm6hdzka879l0gp9220lq4bcf2gpl67bgl")))))) + (define-public pango-1.42 (package (inherit pango) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-gtk-Update-to-4.6.1.patch --] [-- Type: text/x-patch, Size: 7812 bytes --] From 823fb5ae1d0cff0247baf6c4847555648c710e55 Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 22:40:46 +0800 Subject: [PATCH 2/4] gnu: gtk: Update to 4.6.1. * gnu/local.mk (dist_patch_DATA): Remove gtk-introspection-test.patch. * gnu/packages/patches/gtk-introspection-test.patch: Remove. * gnu/packages/gtk.scm (gtk): Update to 4.6.1. [source]: Remove stale patch. [arguments]<phases>: Add 'patch-rst2man' phase, correct the binary name of rst2man to 'rst2man.py' [inputs]: Add libjpeg-turbo, libpng, libtiff. [native-inputs]: Add python-docutils. [propagated-inputs]: Use pango-next. * gnu/packages/fcitx5.scm (fcitx5-gtk)[arguments]: Disable GTK4 build. <configure-flags>: Add "-DENABLE_GTK_IM_MODULE=OFF". <phases>: In phase "patch-install-prefix", Remove GTK4 code. [inputs]: Remove package gtk. [outputs]: Remove output "gtk4". --- gnu/local.mk | 1 - gnu/packages/fcitx5.scm | 15 +++++-------- gnu/packages/gtk.scm | 17 +++++++++----- .../patches/gtk-introspection-test.patch | 22 ------------------- 4 files changed, 18 insertions(+), 37 deletions(-) delete mode 100644 gnu/packages/patches/gtk-introspection-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index c8026a1ec1..1e0bb0c00c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1244,7 +1244,6 @@ dist_patch_DATA = \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk-doc-respect-xml-catalog.patch \ - %D%/packages/patches/gtk-introspection-test.patch \ %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/gtksourceview-2-add-default-directory.patch \ diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm index 0be5e53863..2d5917f3c0 100644 --- a/gnu/packages/fcitx5.scm +++ b/gnu/packages/fcitx5.scm @@ -203,7 +203,8 @@ (define-public fcitx5-gtk #~(list (string-append "-DGOBJECT_INTROSPECTION_GIRDIR=" #$output "/share/gir-1.0") (string-append "-DGOBJECT_INTROSPECTION_TYPELIBDIR=" - #$output "/lib/girepository-1.0")) + #$output "/lib/girepository-1.0") + "-DENABLE_GTK4_IM_MODULE=OFF") #:phases #~(modify-phases %standard-phases (add-before 'configure 'patch-install-prefix @@ -216,11 +217,10 @@ (define (split-immodule gtk-version output) (string-append output "/lib")))) (let ((gtk2 #$output:gtk2) - (gtk3 #$output:gtk3) - (gtk4 #$output:gtk4)) + (gtk3 #$output:gtk3)) (for-each split-immodule - '("gtk2" "gtk3" "gtk4") - (list gtk2 gtk3 gtk4)))))))) + '("gtk2" "gtk3") + (list gtk2 gtk3)))))))) (inputs (list fcitx5 fmt @@ -230,12 +230,11 @@ (define (split-immodule gtk-version output) gobject-introspection gtk+-2 gtk+ - gtk glib)) (native-inputs (list extra-cmake-modules pkg-config `(,glib "bin"))) ;for glib-genmarshal - (outputs '("out" "gtk2" "gtk3" "gtk4")) + (outputs '("out" "gtk2" "gtk3")) (home-page "https://github.com/fcitx/fcitx5-gtk") (synopsis "GLib-based D-Bus client and GTK IM module for Fcitx 5") (description "Fcitx5-gtk provides the following functionality in the @@ -248,8 +247,6 @@ (define (split-immodule gtk-version output) IM module for GTK+2 applications. @item gtk3 IM module for GTK+3 applications. -@item gtk4 -IM module for GTK4 applications. @end table") (license license:lgpl2.1+))) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index bc7b388a88..3d7706b9ee 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1076,7 +1076,7 @@ (define-public gtk+ (define-public gtk (package (name "gtk") - (version "4.4.1") + (version "4.6.1") (source (origin (method url-fetch) @@ -1084,10 +1084,9 @@ (define-public gtk (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1x6xlc063nqp7cg6py4kq1kpw9pkq49ifk5kki0brc667ncdmahg")) + (base32 "0pzcs24j67f90kjcp6apgn6rffynxksjm1m7d3an7kdv3k90hmfq")) (patches - (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch" - "gtk-introspection-test.patch")))) + (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")))) (build-system meson-build-system) (outputs '("out" "bin" "doc")) (arguments @@ -1117,6 +1116,10 @@ (define-public gtk (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file (assoc-ref glib-or-gtk:%standard-phases 'generate-gdk-pixbuf-loaders-cache-file)) + (add-after 'unpack 'patch-rst2man + (lambda _ + (substitute* "docs/reference/gtk/meson.build" + (("find_program\\('rst2man'") "find_program('rst2man.py'")))) (add-after 'unpack 'patch (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) ;; Correct DTD resources of docbook. @@ -1194,6 +1197,7 @@ (define-public gtk ("pkg-config" ,pkg-config) ("python-pygobject" ,python-pygobject) ;; These python modules are required for building documentation. + ("python-docutils" ,python-docutils) ("python-jinja2" ,python-jinja2) ("python-markdown" ,python-markdown) ("python-markupsafe" ,python-markupsafe) @@ -1216,7 +1220,10 @@ (define-public gtk iso-codes json-glib libcloudproviders ;for cloud-providers support + libjpeg-turbo + libpng librsvg + libtiff python rest tracker)) ;for filechooser search support @@ -1239,7 +1246,7 @@ (define-public gtk ("libxkbcommon" ,libxkbcommon) ("libxrandr" ,libxrandr) ("libxrender" ,libxrender) - ("pango" ,pango) + ("pango" ,pango-next) ("vulkan-headers" ,vulkan-headers) ("vulkan-loader" ,vulkan-loader) ;for vulkan graphics API support ("wayland" ,wayland) ;for wayland display-backend diff --git a/gnu/packages/patches/gtk-introspection-test.patch b/gnu/packages/patches/gtk-introspection-test.patch deleted file mode 100644 index 570ea806a9..0000000000 --- a/gnu/packages/patches/gtk-introspection-test.patch +++ /dev/null @@ -1,22 +0,0 @@ -# Extend rather than stomp environment variables. -# Upstream status: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4268 -diff --git a/testsuite/introspection/meson.build b/testsuite/introspection/meson.build -index 6202fb7446..b59191eb0f 100644 ---- a/testsuite/introspection/meson.build -+++ b/testsuite/introspection/meson.build -@@ -1,9 +1,10 @@ -+env = environment() -+env.prepend('GI_TYPELIB_PATH', -+ join_paths(project_build_root, 'gtk'), -+ gi_dep.get_pkgconfig_variable('typelibdir')) -+env.prepend('LD_PRELOAD', join_paths(project_build_root, 'gtk', 'libgtk-4.so')) - - test('api', - find_program('api.py', dirs: meson.current_source_dir()), - suite: ['introspection'], -- env: [ -- 'GI_TYPELIB_PATH=@0@/gtk:@1@'.format(project_build_root, -- gi_dep.get_pkgconfig_variable('typelibdir')), -- 'LD_PRELOAD=@0@/gtk/libgtk-4.so'.format(project_build_root), -- ]) -+ env: env) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #4: 0003-gnu-Add-fcitx5-gtk4.patch --] [-- Type: text/x-patch, Size: 2502 bytes --] 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")) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'fix-gclient + (lambda* (#:key inputs #:allow-other-keys) + (define gclient + (search-input-file inputs "lib/libFcitx5GClient.so")) + ;; Force cmake search libFcitx5GClient.so in library search + ;; path instead of compiling again. + (substitute* "gtk4/CMakeLists.txt" + (("Fcitx5::GClient") + gclient)))) + (add-before 'build 'enter-gtk4-subdirectory + (lambda _ + (chdir "gtk4"))) + (add-after 'install 'leave-gtk4-subdirectory + (lambda _ + (chdir "..")))))) + (inputs + (modify-inputs (package-inputs fcitx5-gtk) + (delete "gtk+") + (prepend fcitx5-gtk gtk))) + (outputs '("out")) + (synopsis "GTK4 IM module for Fcitx 5") + (description "Fcitx5-gtk4 provides IM module for GTK4 applications."))) + (define-public fcitx5-qt (package (name "fcitx5-qt") -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #5: 0004-gnu-gtkmm-Update-to-4.6.1.patch --] [-- Type: text/x-patch, Size: 2744 bytes --] 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 [-- Attachment #6: Type: text/plain, Size: 101 bytes --] -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao ^ permalink raw reply related [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-03-30 3:45 ` Zhu Zihao @ 2022-04-01 15:54 ` Ludovic Courtès 2022-04-02 3:41 ` Zhu Zihao 0 siblings, 1 reply; 29+ messages in thread From: Ludovic Courtès @ 2022-04-01 15:54 UTC (permalink / raw) To: Zhu Zihao; +Cc: 54261, Maxime Devos, Liliana Marie Prikler 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’. ^ permalink raw reply [flat|nested] 29+ messages in thread
* [bug#54261] [PATCH]: Update GTK to 4.6.1. 2022-04-01 15:54 ` Ludovic Courtès @ 2022-04-02 3:41 ` Zhu Zihao 2022-04-04 20:12 ` bug#54261: " Ludovic Courtès 0 siblings, 1 reply; 29+ messages in thread From: Zhu Zihao @ 2022-04-02 3:41 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 54261, Maxime Devos, Liliana Marie Prikler [-- Attachment #1.1: Type: text/plain, Size: 713 bytes --] Ludovic Courtès <ludo@gnu.org> writes: > This one fails to build for me: > > -- Looking for shmat - found > -- Checking for module 'gtk+-2.0' > -- No package 'gtk+-2.0' found I forget to disable GTK2 & GTK3 for this package. Now add it. > Also, I find it surprising that ‘fcitx5-gtk4’ depends on ‘fcitx5-gtk’; > is it avoidable? Because fcitx5-gtk4 use the Glib based D-Bus client. I'd prefer to reuse existing one instead of build it again for fcitx5-gtk4. BTW, How to remove gtk+ and gtk+-2 in same inputs via modify-inputs? Do we need repeat (delete "gtk+") clause in the modify-inputs? If we can't handle it without trick, IMO this is a fail of label-less style input. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 255 bytes --] [-- Attachment #2: 0001-gnu-pango-1.50-Add-version-1.50.4.patch --] [-- Type: text/x-patch, Size: 1644 bytes --] From a9be73a1723810dbcec0c4caa3a9d6669494f6d9 Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 21:36:25 +0800 Subject: [PATCH 1/4] gnu: pango 1.50: Add version 1.50.4. * gnu/packages/gtk.scm(pango-next): New variable. --- gnu/packages/gtk.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 29302051c1..bc7b388a88 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com> +;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -409,6 +410,22 @@ (define-public pango (home-page "https://pango.gnome.org/") (license license:lgpl2.0+))) +;; TODO: Make this the default package in next release cycle. +(define-public pango-next + (package + (inherit pango) + (name "pango") + (version "1.50.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/pango/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (patches (search-patches "pango-skip-libthai-test.patch")) + (sha256 + (base32 + "0qn1a7ccs3p5vc6swbqm6hdzka879l0gp9220lq4bcf2gpl67bgl")))))) + (define-public pango-1.42 (package (inherit pango) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-gtk-Update-to-4.6.1.patch --] [-- Type: text/x-patch, Size: 7812 bytes --] From 823fb5ae1d0cff0247baf6c4847555648c710e55 Mon Sep 17 00:00:00 2001 From: Zhu Zihao <all_but_last@163.com> Date: Sat, 5 Mar 2022 22:40:46 +0800 Subject: [PATCH 2/4] gnu: gtk: Update to 4.6.1. * gnu/local.mk (dist_patch_DATA): Remove gtk-introspection-test.patch. * gnu/packages/patches/gtk-introspection-test.patch: Remove. * gnu/packages/gtk.scm (gtk): Update to 4.6.1. [source]: Remove stale patch. [arguments]<phases>: Add 'patch-rst2man' phase, correct the binary name of rst2man to 'rst2man.py' [inputs]: Add libjpeg-turbo, libpng, libtiff. [native-inputs]: Add python-docutils. [propagated-inputs]: Use pango-next. * gnu/packages/fcitx5.scm (fcitx5-gtk)[arguments]: Disable GTK4 build. <configure-flags>: Add "-DENABLE_GTK_IM_MODULE=OFF". <phases>: In phase "patch-install-prefix", Remove GTK4 code. [inputs]: Remove package gtk. [outputs]: Remove output "gtk4". --- gnu/local.mk | 1 - gnu/packages/fcitx5.scm | 15 +++++-------- gnu/packages/gtk.scm | 17 +++++++++----- .../patches/gtk-introspection-test.patch | 22 ------------------- 4 files changed, 18 insertions(+), 37 deletions(-) delete mode 100644 gnu/packages/patches/gtk-introspection-test.patch diff --git a/gnu/local.mk b/gnu/local.mk index c8026a1ec1..1e0bb0c00c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1244,7 +1244,6 @@ dist_patch_DATA = \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk-doc-respect-xml-catalog.patch \ - %D%/packages/patches/gtk-introspection-test.patch \ %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/gtksourceview-2-add-default-directory.patch \ diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm index 0be5e53863..2d5917f3c0 100644 --- a/gnu/packages/fcitx5.scm +++ b/gnu/packages/fcitx5.scm @@ -203,7 +203,8 @@ (define-public fcitx5-gtk #~(list (string-append "-DGOBJECT_INTROSPECTION_GIRDIR=" #$output "/share/gir-1.0") (string-append "-DGOBJECT_INTROSPECTION_TYPELIBDIR=" - #$output "/lib/girepository-1.0")) + #$output "/lib/girepository-1.0") + "-DENABLE_GTK4_IM_MODULE=OFF") #:phases #~(modify-phases %standard-phases (add-before 'configure 'patch-install-prefix @@ -216,11 +217,10 @@ (define (split-immodule gtk-version output) (string-append output "/lib")))) (let ((gtk2 #$output:gtk2) - (gtk3 #$output:gtk3) - (gtk4 #$output:gtk4)) + (gtk3 #$output:gtk3)) (for-each split-immodule - '("gtk2" "gtk3" "gtk4") - (list gtk2 gtk3 gtk4)))))))) + '("gtk2" "gtk3") + (list gtk2 gtk3)))))))) (inputs (list fcitx5 fmt @@ -230,12 +230,11 @@ (define (split-immodule gtk-version output) gobject-introspection gtk+-2 gtk+ - gtk glib)) (native-inputs (list extra-cmake-modules pkg-config `(,glib "bin"))) ;for glib-genmarshal - (outputs '("out" "gtk2" "gtk3" "gtk4")) + (outputs '("out" "gtk2" "gtk3")) (home-page "https://github.com/fcitx/fcitx5-gtk") (synopsis "GLib-based D-Bus client and GTK IM module for Fcitx 5") (description "Fcitx5-gtk provides the following functionality in the @@ -248,8 +247,6 @@ (define (split-immodule gtk-version output) IM module for GTK+2 applications. @item gtk3 IM module for GTK+3 applications. -@item gtk4 -IM module for GTK4 applications. @end table") (license license:lgpl2.1+))) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index bc7b388a88..3d7706b9ee 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1076,7 +1076,7 @@ (define-public gtk+ (define-public gtk (package (name "gtk") - (version "4.4.1") + (version "4.6.1") (source (origin (method url-fetch) @@ -1084,10 +1084,9 @@ (define-public gtk (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1x6xlc063nqp7cg6py4kq1kpw9pkq49ifk5kki0brc667ncdmahg")) + (base32 "0pzcs24j67f90kjcp6apgn6rffynxksjm1m7d3an7kdv3k90hmfq")) (patches - (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch" - "gtk-introspection-test.patch")))) + (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")))) (build-system meson-build-system) (outputs '("out" "bin" "doc")) (arguments @@ -1117,6 +1116,10 @@ (define-public gtk (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file (assoc-ref glib-or-gtk:%standard-phases 'generate-gdk-pixbuf-loaders-cache-file)) + (add-after 'unpack 'patch-rst2man + (lambda _ + (substitute* "docs/reference/gtk/meson.build" + (("find_program\\('rst2man'") "find_program('rst2man.py'")))) (add-after 'unpack 'patch (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) ;; Correct DTD resources of docbook. @@ -1194,6 +1197,7 @@ (define-public gtk ("pkg-config" ,pkg-config) ("python-pygobject" ,python-pygobject) ;; These python modules are required for building documentation. + ("python-docutils" ,python-docutils) ("python-jinja2" ,python-jinja2) ("python-markdown" ,python-markdown) ("python-markupsafe" ,python-markupsafe) @@ -1216,7 +1220,10 @@ (define-public gtk iso-codes json-glib libcloudproviders ;for cloud-providers support + libjpeg-turbo + libpng librsvg + libtiff python rest tracker)) ;for filechooser search support @@ -1239,7 +1246,7 @@ (define-public gtk ("libxkbcommon" ,libxkbcommon) ("libxrandr" ,libxrandr) ("libxrender" ,libxrender) - ("pango" ,pango) + ("pango" ,pango-next) ("vulkan-headers" ,vulkan-headers) ("vulkan-loader" ,vulkan-loader) ;for vulkan graphics API support ("wayland" ,wayland) ;for wayland display-backend diff --git a/gnu/packages/patches/gtk-introspection-test.patch b/gnu/packages/patches/gtk-introspection-test.patch deleted file mode 100644 index 570ea806a9..0000000000 --- a/gnu/packages/patches/gtk-introspection-test.patch +++ /dev/null @@ -1,22 +0,0 @@ -# Extend rather than stomp environment variables. -# Upstream status: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4268 -diff --git a/testsuite/introspection/meson.build b/testsuite/introspection/meson.build -index 6202fb7446..b59191eb0f 100644 ---- a/testsuite/introspection/meson.build -+++ b/testsuite/introspection/meson.build -@@ -1,9 +1,10 @@ -+env = environment() -+env.prepend('GI_TYPELIB_PATH', -+ join_paths(project_build_root, 'gtk'), -+ gi_dep.get_pkgconfig_variable('typelibdir')) -+env.prepend('LD_PRELOAD', join_paths(project_build_root, 'gtk', 'libgtk-4.so')) - - test('api', - find_program('api.py', dirs: meson.current_source_dir()), - suite: ['introspection'], -- env: [ -- 'GI_TYPELIB_PATH=@0@/gtk:@1@'.format(project_build_root, -- gi_dep.get_pkgconfig_variable('typelibdir')), -- 'LD_PRELOAD=@0@/gtk/libgtk-4.so'.format(project_build_root), -- ]) -+ env: env) -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #4: 0003-gnu-Add-fcitx5-gtk4.patch --] [-- Type: text/x-patch, Size: 2592 bytes --] From b4318c10146a72d33dab4d6f9f49846a371a1745 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 | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm index 2d5917f3c0..46b9936e67 100644 --- a/gnu/packages/fcitx5.scm +++ b/gnu/packages/fcitx5.scm @@ -250,6 +250,50 @@ (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") + "-DENABLE_GTK2_IM_MODULE=OFF" + "-DENABLE_GTK3_IM_MODULE=OFF") + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'fix-gclient + (lambda* (#:key inputs #:allow-other-keys) + (define gclient + (search-input-file inputs "lib/libFcitx5GClient.so")) + ;; Force cmake search libFcitx5GClient.so in library search + ;; path instead of compiling again. + (substitute* "gtk4/CMakeLists.txt" + (("Fcitx5::GClient") + gclient)))) + (add-before 'build 'enter-gtk4-subdirectory + (lambda _ + (chdir "gtk4"))) + (add-after 'install 'leave-gtk4-subdirectory + (lambda _ + (chdir "..")))))) + (inputs + (modify-inputs (package-inputs fcitx5-gtk) + (delete "gtk+") + (prepend fcitx5-gtk gtk))) + (outputs '("out")) + (synopsis "GTK4 IM module for Fcitx 5") + (description "Fcitx5-gtk4 provides IM module for GTK4 applications."))) + (define-public fcitx5-qt (package (name "fcitx5-qt") -- 2.34.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #5: 0004-gnu-gtkmm-Update-to-4.6.1.patch --] [-- Type: text/x-patch, Size: 2744 bytes --] From 81ae5b2620d56d24ad1f38bd96d34b22407eb994 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 [-- Attachment #6: Type: text/plain, Size: 100 bytes --] -- Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao ^ permalink raw reply related [flat|nested] 29+ messages in thread
* bug#54261: [PATCH]: Update GTK to 4.6.1. 2022-04-02 3:41 ` Zhu Zihao @ 2022-04-04 20:12 ` Ludovic Courtès 0 siblings, 0 replies; 29+ messages in thread From: Ludovic Courtès @ 2022-04-04 20:12 UTC (permalink / raw) To: Zhu Zihao; +Cc: Maxime Devos, 54261-done, Liliana Marie Prikler Hi, Zhu Zihao <all_but_last@163.com> skribis: [...] >> Also, I find it surprising that ‘fcitx5-gtk4’ depends on ‘fcitx5-gtk’; >> is it avoidable? > > Because fcitx5-gtk4 use the Glib based D-Bus client. I'd prefer to reuse > existing one instead of build it again for fcitx5-gtk4. OK. > > BTW, How to remove gtk+ and gtk+-2 in same inputs via modify-inputs? The (delete "gtk+") clause removes all the inputs whose label is “gtk+”—both GTK+ 3.x and 2.x in this case. > Do we need repeat (delete "gtk+") clause in the modify-inputs? No. > If we can't handle it without trick, IMO this is a fail of label-less > style input. I must say I hadn’t thought about this situation, which is hopefully quite rare (and questionable, even), but we can deal with it. > From a9be73a1723810dbcec0c4caa3a9d6669494f6d9 Mon Sep 17 00:00:00 2001 > From: Zhu Zihao <all_but_last@163.com> > Date: Sat, 5 Mar 2022 21:36:25 +0800 > Subject: [PATCH 1/4] gnu: pango 1.50: Add version 1.50.4. > > * gnu/packages/gtk.scm(pango-next): New variable. [...] > From 823fb5ae1d0cff0247baf6c4847555648c710e55 Mon Sep 17 00:00:00 2001 > From: Zhu Zihao <all_but_last@163.com> > Date: Sat, 5 Mar 2022 22:40:46 +0800 > Subject: [PATCH 2/4] gnu: gtk: Update to 4.6.1. > > * gnu/local.mk (dist_patch_DATA): Remove gtk-introspection-test.patch. > * gnu/packages/patches/gtk-introspection-test.patch: Remove. > * gnu/packages/gtk.scm (gtk): Update to 4.6.1. > [source]: Remove stale patch. > [arguments]<phases>: Add 'patch-rst2man' phase, correct the binary name of > rst2man to 'rst2man.py' > [inputs]: Add libjpeg-turbo, libpng, libtiff. > [native-inputs]: Add python-docutils. > [propagated-inputs]: Use pango-next. > * gnu/packages/fcitx5.scm (fcitx5-gtk)[arguments]: Disable GTK4 build. > <configure-flags>: Add "-DENABLE_GTK_IM_MODULE=OFF". > <phases>: In phase "patch-install-prefix", Remove GTK4 code. > [inputs]: Remove package gtk. > [outputs]: Remove output "gtk4". [...] > From b4318c10146a72d33dab4d6f9f49846a371a1745 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. [...] > From 81ae5b2620d56d24ad1f38bd96d34b22407eb994 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'. Finally applied, thank you! Ludo’. ^ permalink raw reply [flat|nested] 29+ messages in thread
end of thread, other threads:[~2022-04-04 20:13 UTC | newest] Thread overview: 29+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-03-05 15:00 [bug#54261] [PATCH]: Update GTK to 4.6.1 Zhu Zihao [not found] ` <handler.54261.B.164649346324787.ack@debbugs.gnu.org> 2022-03-05 15:55 ` [bug#54261] Acknowledgement ([PATCH]: Update GTK to 4.6.1.) Zhu Zihao 2022-03-11 15:15 ` Zhu Zihao 2022-03-11 15:59 ` Maxime Devos 2022-03-11 16:01 ` Maxime Devos 2022-03-12 2:38 ` Zhu Zihao 2022-03-12 9:17 ` Maxime Devos 2022-03-12 9:32 ` Maxime Devos 2022-03-12 9:40 ` Maxime Devos 2022-03-12 16:06 ` Different package version in same environment was: " Zhu Zihao 2022-03-13 14:55 ` Maxime Devos 2022-03-11 16:03 ` Maxime Devos 2022-03-15 15:42 ` Zhu Zihao 2022-03-18 22:48 ` [bug#54261] [PATCH]: Update GTK to 4.6.1 Ludovic Courtès 2022-03-19 3:00 ` Zhu Zihao 2022-03-21 1:17 ` Zhu Zihao 2022-03-27 3:04 ` Zhu Zihao 2022-03-27 7:38 ` Liliana Marie Prikler 2022-03-28 15:37 ` Zhu Zihao 2022-03-28 18:19 ` Liliana Marie Prikler 2022-03-29 5:56 ` Zhu Zihao 2022-03-29 6:01 ` Zhu Zihao 2022-03-30 19:56 ` Ludovic Courtès 2022-03-31 5:13 ` Zhu Zihao 2022-03-29 13:34 ` Ludovic Courtès 2022-03-30 3:45 ` Zhu Zihao 2022-04-01 15:54 ` Ludovic Courtès 2022-04-02 3:41 ` Zhu Zihao 2022-04-04 20:12 ` bug#54261: " Ludovic Courtès
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.