#1078469 On debian testing it was possible upgrade libgtk-4-common past libgtk-4-1

#1078469#5
Date:
2024-08-11 03:36:38 UTC
From:
To:
Dear Maintainer,

When I tried launching it after a recent update dino won't start due to
the following error log.  I'm guessing something changed in gtk4.

I also tried 0.4.4+git20240729.b0ff90a-1 from experimental and got the
same error.

Thanks,
Diane

1:23:42.209991928] [21584]  WARN IPAManager ipa_manager.cpp:154 No IPA found in '/usr/lib/x86_64-linux-gnu/libcamera'
[1:23:42.210041419] [21584]  INFO Camera camera_manager.cpp:284 libcamera v0.2.0

(dino-im:21584): GStreamer-CRITICAL **: 20:28:30.091: gst_structure_has_name: assertion 'structure != NULL' failed

(dino-im:21584): GStreamer-CRITICAL **: 20:28:30.091: gst_structure_get_string: assertion 'structure != NULL' failed

(dino-im:21584): GStreamer-CRITICAL **: 20:28:30.091: gst_structure_has_name: assertion 'structure != NULL' failed

(dino-im:21584): GStreamer-CRITICAL **: 20:28:30.091: gst_structure_get_string: assertion 'structure != NULL' failed

(dino-im:21584): GLib-GIO-ERROR **: 20:28:30.103: Settings schema 'org.gtk.gtk4.Settings.EmojiChooser' does not contain a key named 'recent-emoji'

#1078469#10
Date:
2024-08-11 04:50:20 UTC
From:
To:
I'm pretty sure what happened is when I did an apt upgrade on testing,
the libgtk-4 binary packages are held back for some reason, but the -
common package was upgraded to 4.14.4 which changed the schema which
then broke dino-im.

ii  libgtk-4-1:amd64           4.12.5+ds-6+b1 amd64       
ii  libgtk-4-bin               4.12.5+ds-6+b1 amd64
ii  libgtk-4-common            4.14.4+ds-8    all
ii  libgtk-4-media-gstreamer   4.12.5+ds-6+b1 amd64


I downgraded back to libgtk-4-common=4.12.5+ds-6

and dino started again.

I suspect libgtk-4-1 should have a stricter dependency.

I'm going to retitle this and assign it to gtk4

Diane

#1078469#23
Date:
2024-08-11 06:41:47 UTC
From:
To:
It looks like apt wasn't wanting to install various t64 packages with
apt upgrade.

After forcing upgrades of some larger packages like evolution or llvm
with apt install <packages> and seeing the pattern of install removing
a library and replacing it with a t64 version.

Upgrading:
  evolution                    gir1.2-camel-1.2
  evolution-common             gir1.2-ebookcontacts-1.2
  evolution-data-server        gir1.2-edataserver-1.2
  evolution-ews                libcamel-1.2-64t64
  evolution-plugin-bogofilter  libedataserver-1.2-27t64
  evolution-plugin-pstimport   libedataserverui-1.2-4t64
  evolution-plugins            libevolution

Installing dependencies:
  libmspack0t64

REMOVING:
  libmspack0


I decided to force trying to install libgtk-4-1 and this is what it
wasn't willing to install on an apt upgrade, the relevant section of
the plan is here:

Upgrading:
  gir1.2-gtk-4.0  libgtk-4-1  libgtk-4-bin  libgtk-4-common  
  libgtk-4-media-gstreamer

Installing dependencies:
  libcpdb-frontend2t64  libcpdb2t64

Summary:
  Upgrading: 5, Installing: 2, Removing: 0, Not Upgrading: 208
  Download size: 9,084 kB
  Space needed: 16.4 MB / 793 GB available

Hope that helps.

Diane

#1078469#28
Date:
2024-08-11 06:46:47 UTC
From:
To:
...

Thank you!

#1078469#33
Date:
2024-08-11 17:44:00 UTC
From:
To:
Depends: libgtk-4-common (>= 4.14), libgtk-4-common (<< 4.15)

This interferes with how we do C library packaging in Debian. If there
were a soname bump and we had libgtk-4-2 4.15 in the same source
package that would have libgtk-4-common with

Depends: libgtk-4-common (>= 4.15), libgtk-4-common (<< 4.16)

it would then not be possible to have both libgtk-4-1 and libgtk-4-2
installed simultaneously. That makes the C library transition more
difficult than we want. Therefore, I think we may need to close this
bug as not fixable in Debian.

The mitigating part is that gtk4 is very unlikely to require a soname
transition; that will be gtk5 instead.

The t64 transition was exceptionally disruptive. You need to do apt
full/dist upgrades to get to the trixie side of the transition. You
need to ensure that all packages are upgraded without anything left
held back.

Thank you,
Jeremy Bícha

#1078469#38
Date:
2024-08-11 18:07:31 UTC
From:
To:
depending on the common package.

Over in python packaging I regularly end up with dependencies that have
Breaks: some older version of a package that depends on the package
declaring the breaks. As an example python3-pandas heavily uses the
Breaks rules.

Using your example of the soname bump, I think this might work on the
4.14 -common package.
Breaks: libgtk-4-1 (<< 4.14), libgtk-4-2 (<< 4.14)?

It may be too annoying to keep updated and so might still not be worth
doing.

This part is very true, and I need to go do it, I was just wishing for
a stronger hint that I really needed to do a full-upgrade now.
(And also it took me a while to figure this out.)

Diane

#1078469#43
Date:
2024-08-11 18:43:18 UTC
From:
To:
Nobody on the Debian GNOME team is attempting to use an old GTK4 with
a newer libgtk-4-common so we don't have any idea how frequently newer
-common breaks GTK4.

Thank you,
Jeremy Bícha