Migration problems (to GTK-4.0.3)

I’m migrating to GTK-4.0.3. While Debian packages seems to be already at experimental repositories (I don’t know, hope that they be available in stable soon), I dealed with meson.

At the end of compilation, when installed, I tried to run the GTK4 demo.

$ ./gtk4-demo
./gtk4-demo: symbol lookup error: /opt/gtk4/lib/x86_64-linux-gnu/libgtk-4.so.1: undefined symbol: pango_fc_font_get_languages

What was happened ?

At compile time, meson notifies us (objective 1557) that the Package ‘pangofc.pc’ was not found. What should I do further ?

Moreover, I think/suppose that objective 3120 could be fixed by changing GTimeVal with GDateTime…

Here goes the compilation output.

$ meson compile
ninja: Entering directory `.'
[1557/3260] Generating PangoXft-1.0.gir with a custom command
Package pangofc was not found in the pkg-config search path.
Perhaps you should add the directory containing `pangofc.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pangofc' found

[1708/3260] Generating gdkmarshalers_c with a custom command
INFO: Reading ../gdk/gdkmarshalers.list...
[1710/3260] Generating gdkmarshalers_h with a custom command
INFO: Reading ../gdk/gdkmarshalers.list...
[1948/3260] Generating gtkmarshalers_c with a custom command
INFO: Reading ../gtk/gtkmarshalers.list...
[1950/3260] Generating gtkmarshalers_h with a custom command
INFO: Reading ../gtk/gtkmarshalers.list...
[2521/3260] Compiling C object modules/printbackends/libprintbackend-lpr.so.p/gtkprintbackendlpr.c.o
In file included from ../modules/printbackends/gtkprintbackendlpr.h:24,
                 from ../modules/printbackends/gtkprintbackendlpr.c:37:
../modules/printbackends/gtkprintbackendlpr.c: In function ‘g_io_module_query’:
../gtk/gtkprintbackendprivate.h:144:48: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 #define GTK_PRINT_BACKEND_EXTENSION_POINT_NAME "gtk-print-backend"
                                                ^~~~~~~~~~~~~~~~~~~
../modules/printbackends/gtkprintbackendlpr.c:106:5: note: in expansion of macro ‘GTK_PRINT_BACKEND_EXTENSION_POINT_NAME’
     GTK_PRINT_BACKEND_EXTENSION_POINT_NAME,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../modules/printbackends/gtkprintbackendlpr.c: In function ‘lpr_printer_get_options’:
../modules/printbackends/gtkprintbackendlpr.c:402:19: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   char *n_up[] = {"1", "2", "4", "6", "9", "16" };
                   ^~~
../modules/printbackends/gtkprintbackendlpr.c:402:24: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   char *n_up[] = {"1", "2", "4", "6", "9", "16" };
                        ^~~
../modules/printbackends/gtkprintbackendlpr.c:402:29: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   char *n_up[] = {"1", "2", "4", "6", "9", "16" };
                             ^~~
../modules/printbackends/gtkprintbackendlpr.c:402:34: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   char *n_up[] = {"1", "2", "4", "6", "9", "16" };
                                  ^~~
../modules/printbackends/gtkprintbackendlpr.c:402:39: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   char *n_up[] = {"1", "2", "4", "6", "9", "16" };
                                       ^~~
../modules/printbackends/gtkprintbackendlpr.c:402:44: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   char *n_up[] = {"1", "2", "4", "6", "9", "16" };
                                            ^~~~
../modules/printbackends/gtkprintbackendlpr.c:408:42: warning: passing argument 3 of ‘gtk_printer_option_choices_from_array’ from incompatible pointer type [-Wincompatible-pointer-types]
                                          (char **)n_up, (char **)n_up);
                                          ^~~~~~~~~~~~~
In file included from ../gtk/gtkprinteroptionset.h:32,
                 from ../gtk/gtkprinterprivate.h:24,
                 from ../modules/printbackends/gtkprintbackendlpr.c:35:
../gtk/gtkprinteroption.h:115:85: note: expected ‘const char **’ but argument is of type ‘char **’
                                                              const char           **choices,
                                                              ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
../modules/printbackends/gtkprintbackendlpr.c:408:57: warning: passing argument 4 of ‘gtk_printer_option_choices_from_array’ from incompatible pointer type [-Wincompatible-pointer-types]
                                          (char **)n_up, (char **)n_up);
                                                         ^~~~~~~~~~~~~
In file included from ../gtk/gtkprinteroptionset.h:32,
                 from ../gtk/gtkprinterprivate.h:24,
                 from ../modules/printbackends/gtkprintbackendlpr.c:35:
../gtk/gtkprinteroption.h:116:85: note: expected ‘const char **’ but argument is of type ‘char **’
                                                              const char           **choices_display);
                                                              ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
[2626/3260] Generating Gtk-4.0.gir with a custom command
gtk/gtkcolorchooserwidget.c:727: Error: Gtk: identifier not found on the first line:
   * GtkColorChooserWidget|color.select:
     ^
gtk/gtkcolorchooserwidget.c:740: Error: Gtk: identifier not found on the first line:
   * GtkColorChooserWidget|color.customize:
     ^
gtk/gtkeditablelabel.c:382: Error: Gtk: identifier not found on the first line:
   * GtkEditableLabel|editing.start:
     ^
gtk/gtkeditablelabel.c:396: Error: Gtk: identifier not found on the first line:
   * GtkEditableLabel|editing.stop:
     ^
gtk/gtkemojichooser.c:1236: Error: Gtk: identifier not found on the first line:
   * GtkEmojiChooser|scroll.section:
     ^
gtk/gtkfilechooserdialog.c:307: Error: Gtk: identifier not found on the first line:
   * GtkFileChooserDialog|response.activate:
     ^
gtk/gtkgridview.c:1155: Error: Gtk: identifier not found on the first line:
   * GtkGridView|list.activate-item:
     ^
gtk/gtklabel.c:2407: Error: Gtk: identifier not found on the first line:
   * GtkLabel|menu.popup:
     ^
gtk/gtklabel.c:2533: Error: Gtk: identifier not found on the first line:
   * GtkLabel|clipboard.cut:
     ^
gtk/gtklabel.c:2541: Error: Gtk: identifier not found on the first line:
   * GtkLabel|clipboard.copy:
     ^
gtk/gtklabel.c:2549: Error: Gtk: identifier not found on the first line:
   * GtkLabel|clipboard.paste:
     ^
gtk/gtklabel.c:2557: Error: Gtk: identifier not found on the first line:
   * GtkLabel|selection.delete:
     ^
gtk/gtklabel.c:2565: Error: Gtk: identifier not found on the first line:
   * GtkLabel|selection.select-all:
     ^
gtk/gtklabel.c:2573: Error: Gtk: identifier not found on the first line:
   * GtkLabel|link.open:
     ^
gtk/gtklabel.c:2581: Error: Gtk: identifier not found on the first line:
   * GtkLabel|link.copy:
     ^
gtk/gtklistbase.c:1156: Error: Gtk: identifier not found on the first line:
   * GtkListBase|list.scroll-to-item:
     ^
gtk/gtklistbase.c:1168: Error: Gtk: identifier not found on the first line:
   * GtkListBase|list.select-item:
     ^
gtk/gtklistbase.c:1191: Error: Gtk: identifier not found on the first line:
   * GtkListBase|list.select-all:
     ^
gtk/gtklistbase.c:1202: Error: Gtk: identifier not found on the first line:
   * GtkListBase|list.unselect-all:
     ^
gtk/gtklinkbutton.c:226: Error: Gtk: identifier not found on the first line:
   * GtkLinkButton|clipboard.copy:
     ^
gtk/gtklinkbutton.c:234: Error: Gtk: identifier not found on the first line:
   * GtkLinkButton|menu.popup:
     ^
gtk/gtklistitemwidget.c:269: Error: Gtk: identifier not found on the first line:
   * GtkListItem|listitem.select:
     ^
gtk/gtklistview.c:899: Error: Gtk: identifier not found on the first line:
   * GtkListView|list.activate-item:
     ^
gtk/gtknotebook.c:1297: Error: Gtk: identifier not found on the first line:
   * GtkNotebook|menu.popup:
     ^
gtk/gtktext.c:1199: Error: Gtk: identifier not found on the first line:
   * GtkText|clipboard.cut:
     ^
gtk/gtktext.c:1207: Error: Gtk: identifier not found on the first line:
   * GtkText|clipboard.copy:
     ^
gtk/gtktext.c:1215: Error: Gtk: identifier not found on the first line:
   * GtkText|clipboard.paste:
     ^
gtk/gtktext.c:1223: Error: Gtk: identifier not found on the first line:
   * GtkText|selection.delete:
     ^
gtk/gtktext.c:1231: Error: Gtk: identifier not found on the first line:
   * GtkText|selection.select-all:
     ^
gtk/gtktext.c:1239: Error: Gtk: identifier not found on the first line:
   * GtkText|misc.insert-emoji:
     ^
gtk/gtktext.c:1247: Error: Gtk: identifier not found on the first line:
   * GtkText|misc.toggle-visibility:
     ^
gtk/gtktext.c:1256: Error: Gtk: identifier not found on the first line:
   * GtkText|text.undo:
     ^
gtk/gtktext.c:1263: Error: Gtk: identifier not found on the first line:
   * GtkText|text.redo:
     ^
gtk/gtktext.c:1270: Error: Gtk: identifier not found on the first line:
   * GtkText|menu.popup:
     ^
gtk/gtktextview.c:1453: Error: Gtk: identifier not found on the first line:
   * GtkTextView|clipboard.cut:
     ^
gtk/gtktextview.c:1461: Error: Gtk: identifier not found on the first line:
   * GtkTextView|clipboard.copy:
     ^
gtk/gtktextview.c:1469: Error: Gtk: identifier not found on the first line:
   * GtkTextView|clipboard.paste:
     ^
gtk/gtktextview.c:1477: Error: Gtk: identifier not found on the first line:
   * GtkTextView|selection.delete:
     ^
gtk/gtktextview.c:1485: Error: Gtk: identifier not found on the first line:
   * GtkTextView|selection.select-all:
     ^
gtk/gtktextview.c:1493: Error: Gtk: identifier not found on the first line:
   * GtkTextView|misc.insert-emoji:
     ^
gtk/gtktextview.c:1501: Error: Gtk: identifier not found on the first line:
   * GtkTextView|text.undo:
     ^
gtk/gtktextview.c:1508: Error: Gtk: identifier not found on the first line:
   * GtkTextView|text.redo:
     ^
gtk/gtktextview.c:1515: Error: Gtk: identifier not found on the first line:
   * GtkTextView|menu.popup:
     ^
gtk/gtktreeexpander.c:540: Error: Gtk: identifier not found on the first line:
   * GtkTreeExpander|listitem.expand:
     ^
gtk/gtktreeexpander.c:550: Error: Gtk: identifier not found on the first line:
   * GtkTreeExpander|listitem.collapse:
     ^
gtk/gtktreeexpander.c:560: Error: Gtk: identifier not found on the first line:
   * GtkTreeExpander|listitem.toggle-expand:
     ^
gtk/gtkwindow.c:1047: Error: Gtk: identifier not found on the first line:
   * GtkWindow|default.activate:
     ^
gtk/gtkwindow.c:1055: Error: Gtk: identifier not found on the first line:
   * GtkWindow|window.minimize:
     ^
gtk/gtkwindow.c:1063: Error: Gtk: identifier not found on the first line:
   * GtkWindow|window.toggle-maximized:
     ^
gtk/gtkwindow.c:1071: Error: Gtk: identifier not found on the first line:
   * GtkWindow|window.close:
     ^
[3120/3260] Compiling C++ object testsuite/gtk/autotestkeywords.p/autotestkeywords.cc.o
In file included from /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h:36,
                 from ../gdk/gdkpixbuf.h:33,
                 from ../gdk/gdkcairo.h:27,
                 from ../gdk/gdk.h:31,
                 from ../gtk/gtk.h:31,
                 from ../testsuite/gtk/autotestkeywords.cc:1:
/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h:111:113: warning: ‘GTimeVal’ is deprecated [-Wdeprecated-declarations]
                                                                               const GTimeVal         *start_time);
                                                                                                                 ^
/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h:122:115: warning: ‘GTimeVal’ is deprecated [-Wdeprecated-declarations]
                                                                               const GTimeVal         *current_time);
                                                                                                                   ^
[3260/3260] Linking target examples/application9/exampleapp9

The problem probably is that your pango version is too old, so meson uses the pango subproject that’s included with gtk4 and installs that. Seems like during runtime the pango library from your system (that’s too old) is loaded instead of the newer version that’s installed by GTK.

Thanks… This should happens

$ ldd ./gtk4-demo
[…]
libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f886ee65000)
[…]

What should I do to fix the pango version ?

I don’t know if a pangofc.pc file should be inside the build folder… but it seems not the case…

You could launch gtk4-demo with LD_LIBRARY_PATH set appropriately so the vendored pango is used. E.g.: env LD_LIBRRAY_PATH=/usr/local/<PATH TO WHERE LIBS WHERE INSTALLED> gtk4-demo

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.