Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 866151 - mail-client/thunderbird, www-client/firefox: libxul.so: undefined symbol: gdk_wayland_display_get_wl_compositor
Summary: mail-client/thunderbird, www-client/firefox: libxul.so: undefined symbol: gdk...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Mozilla Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-08-23 14:09 UTC by Emily Rowlands
Modified: 2022-08-25 09:53 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info www-client/firefox mail-client/thunderbird (emerge-info-both,17.68 KB, text/plain)
2022-08-23 14:13 UTC, Emily Rowlands
Details
firefox build log (compressed) (firefox.log.xz,681.64 KB, application/x-xz)
2022-08-23 14:17 UTC, Emily Rowlands
Details
thunderbird build log (compressed) (thunderbird.log.xz,401.50 KB, application/x-xz)
2022-08-23 14:18 UTC, Emily Rowlands
Details
cat /var/db/pkg/mail-client/thunderbird-91.12.0/NEEDED* (file_866151.txt,3.89 KB, text/plain)
2022-08-25 09:50 UTC, Emily Rowlands
Details
For thunderbird[-wayland] built when gtk+:3[wayland] is installed (file_866151.txt,4.08 KB, text/plain)
2022-08-25 09:51 UTC, Emily Rowlands
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Emily Rowlands 2022-08-23 14:09:45 UTC
$ thunderbird 
XPCOMGlueLoad error for file /usr/lib64/thunderbird/libxul.so:
/usr/lib64/thunderbird/libxul.so: undefined symbol: gdk_wayland_display_get_wl_compositor
Couldn't load XPCOM.

The same error appeared for firefox, except s/thunderbird/firefox/ in the error.

To reproduce (guessing here):
1. Install x11-libs/gtk+:3[wayland]
2. Install mail-client/thunderbird[-wayland]
3. Install x11-libs/gtk+:3[-wayland]
4. Depclean (optional?)
5. Run thunderbird

The process is similar for firefox.

Unfortunately, I don't have the build logs for the broken builds of firefox or thunderbird, but I do have the build log for the working versions.

They appear to look for gtk+-wayland-3.0.pc, even if USE=wayland is disabled. A relevant extract from the firefox log:

 0:05.13 checking for gtk+-wayland-3.0 >= 3.14 xkbcommon >= 0.4.1 libdrm >= 2.4... no
 0:05.13 WARNING: Package gtk+-wayland-3.0 was not found in the pkg-config search path.
 0:05.13 WARNING: Perhaps you should add the directory containing `gtk+-wayland-3.0.pc'
 0:05.13 WARNING: to the PKG_CONFIG_PATH environment variable
 0:05.13 WARNING: Package 'gtk+-wayland-3.0', required by 'virtual:world', not found

The same lines appear in the thunderbird log at time "0:06.24".

Logs and emerge --info to follow
Comment 1 Emily Rowlands 2022-08-23 14:13:21 UTC
Created attachment 800625 [details]
emerge --info www-client/firefox mail-client/thunderbird
Comment 2 Emily Rowlands 2022-08-23 14:17:59 UTC
Created attachment 800627 [details]
firefox build log (compressed)
Comment 3 Emily Rowlands 2022-08-23 14:18:32 UTC
Created attachment 800629 [details]
thunderbird build log (compressed)
Comment 4 Joonas Niilola gentoo-dev 2022-08-25 07:22:28 UTC
Can you post:
cat /var/db/pkg/mail-client/thunderbird-91.12.0/NEEDED*

(and for firefox)
Comment 5 Joonas Niilola gentoo-dev 2022-08-25 08:25:04 UTC
At least this worked for me:
1: USE="wayland" emerge -1av gtk+:3
2: emerge -av =mail-client/thunderbird-91.12.0
3: USE="-wayland" emerge -1av gtk+:3
4: thunderbird

works fine.

Even after running --depclean and emerge -C wayland, which leaves mesa[wayland] broken, thunderbird works fine. 

... although I do see thunderbird builds libmozwayland.so if gtk+:3[wayland] is enabled, and it doesn't when it's not available. The library doesn't link to anything though, at least in this minimal system. 

I'm guessing this somehow comes from pkg-config, and your system is a bit entangled atm. "cat /var/db/pkg/mail-client/thunderbird-91.12.0/NEEDED*" will let us know a bit more for now.
Comment 6 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-08-25 08:29:01 UTC
(In reply to Joonas Niilola from comment #5)
> At least this worked for me:
> 1: USE="wayland" emerge -1av gtk+:3
> 2: emerge -av =mail-client/thunderbird-91.12.0

Was this with +wayland or -wayland?

> 
> I'm guessing this somehow comes from pkg-config, and your system is a bit
> entangled atm. "cat /var/db/pkg/mail-client/thunderbird-91.12.0/NEEDED*"
> will let us know a bit more for now.

It's very possible it was in a mid-transition state between gtk+[wayland] and gtk+[-wayland] which breaks ABI and affects various GNOMEy consumers: bug 624960. I wouldn't be surprised if some of that leaked into .pc files. Would need Emily to clarify if this may have been the case for her.
Comment 7 Joonas Niilola gentoo-dev 2022-08-25 08:33:02 UTC
(In reply to Sam James from comment #6)
> > At least this worked for me:
> > 1: USE="wayland" emerge -1av gtk+:3
> > 2: emerge -av =mail-client/thunderbird-91.12.0
> 
> Was this with +wayland or -wayland?

Thunderbird was with -wayland. I wonder if we should update the USE-dep against gtk+ to [wayland=] and not [wayland?]... (or focus on fixing gtk+3)
Comment 8 Emily Rowlands 2022-08-25 09:50:03 UTC
Created attachment 800977 [details]
cat /var/db/pkg/mail-client/thunderbird-91.12.0/NEEDED*

For thunderbird[-wayland] built when gtk+:3[-wayland] is installed
Comment 9 Emily Rowlands 2022-08-25 09:51:07 UTC
Created attachment 800980 [details]
For thunderbird[-wayland] built when gtk+:3[wayland] is installed

qxpak -x thunderbird-91.12.0-1.xpak -O NEEDED{,.ELF.2}
Comment 10 Emily Rowlands 2022-08-25 09:53:12 UTC
To summarise, here's a word-diff of the two:

$ git diff --no-prefix -U0 --word-diff --word-diff-regex='[^[:space:],;]+' HEAD^..HEAD
diff --git a/NEEDED b/NEEDED
index 82ddd4f..c6ecbb2 100644
--- a/NEEDED
+++ b/NEEDED
@@ -1 +1 @@
/usr/lib64/thunderbird/libxul.so libmozsandbox.so,libldap60.so,libprldap60.so,liblgpllibs.so,libmozsqlite3.so,libmozgtk.so,{+libmozwayland.so+},libicui18n.so.71,libicuuc.so.71,libaom.so.3,libdav1d.so.6,libm.so.6,libX11.so.6,libX11-xcb.so.1,libxcb.so.1,libXcomposite.so.1,libXdamage.so.1,libXext.so.6,libXfixes.so.3,libXrender.so.1,libc.so.6,ld-linux-x86-64.so.2,libplds4.so,libplc4.so,libnspr4.so,libffi.so.8,libz.so.1,libssl3.so,libsmime3.so,libnss3.so,libnssutil3.so,libfreetype.so.6,libfontconfig.so.1,libgtk-3.so.0,libgdk-3.so.0,libpango-1.0.so.0,libharfbuzz.so.0,libatk-1.0.so.0,libcairo-gobject.so.2,libcairo.so.2,libgdk_pixbuf-2.0.so.0,libgio-2.0.so.0,libgobject-2.0.so.0,libglib-2.0.so.0,libgraphite2.so.3,libwebpdemux.so.2,libwebp.so.7,libvpx.so.7,libpixman-1.so.0,libdbus-glib-1.so.2,libdbus-1.so.3,libxcb-shm.so.0,libstdc++.so.6,libgcc_s.so.1
@@ -3,0 +4 @@
{+/usr/lib64/thunderbird/libmozwayland.so libc.so.6+}
@@ -13 +14 @@
X86_64;/usr/lib64/thunderbird/libxul.so;libxul.so;/usr/lib64/thunderbird;libmozsandbox.so,libldap60.so,libprldap60.so,liblgpllibs.so,libmozsqlite3.so,libmozgtk.so,{+libmozwayland.so+},libicui18n.so.71,libicuuc.so.71,libaom.so.3,libdav1d.so.6,libm.so.6,libX11.so.6,libX11-xcb.so.1,libxcb.so.1,libXcomposite.so.1,libXdamage.so.1,libXext.so.6,libXfixes.so.3,libXrender.so.1,libc.so.6,ld-linux-x86-64.so.2,libplds4.so,libplc4.so,libnspr4.so,libffi.so.8,libz.so.1,libssl3.so,libsmime3.so,libnss3.so,libnssutil3.so,libfreetype.so.6,libfontconfig.so.1,libgtk-3.so.0,libgdk-3.so.0,libpango-1.0.so.0,libharfbuzz.so.0,libatk-1.0.so.0,libcairo-gobject.so.2,libcairo.so.2,libgdk_pixbuf-2.0.so.0,libgio-2.0.so.0,libgobject-2.0.so.0,libglib-2.0.so.0,libgraphite2.so.3,libwebpdemux.so.2,libwebp.so.7,libvpx.so.7,libpixman-1.so.0,libdbus-glib-1.so.2,libdbus-1.so.3,libxcb-shm.so.0,libstdc++.so.6,libgcc_s.so.1;x86_64
@@ -15,0 +17 @@ X86_64;/usr/lib64/thunderbird/libmozgtk.so;libmozgtk.so;/usr/lib64/thunderbird;l
{+X86_64;/usr/lib64/thunderbird/libmozwayland.so;libmozwayland.so;/usr/lib64/thunderbird;libc.so.6;x86_64+}