Message ID | 864k3syudv.fsf@163.com |
---|---|
State | Accepted |
Headers | show |
Series | [bug#54261] : Update GTK to 4.6.1. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
ping. Any thoughts?
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?
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)
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).
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).
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!
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’.
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’.
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’.
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