Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[solved]Xfce4 window manager won't run: gdk_wayland_get_type
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Installing Gentoo
View previous topic :: View next topic  
Author Message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 468

PostPosted: Wed Jun 05, 2024 2:02 pm    Post subject: [solved]Xfce4 window manager won't run: gdk_wayland_get_type Reply with quote

Hi

I started trying to install Gentoo only yesterday, so I'm probably missing something.

I want to use the Xfce4 desktop. I managed to overcome earlier problems involving dependencies with a complete re-install, but now I'm stuck again.

Although everything seemed to build OK, the Xfce4 window manager, xfwm4, won't execute:

Code:
xfwm4: symbol lookup error: /usr/lib64/xfce4ui-2.so.0: undefined symbol: gdk_wayland_display_get_type.


In fact, all the Xfce4 utilities, even 'xfce4-about' fail with the same error. I suppose that's to be expected, if the fault is in a library.

I thought that maybe something had got built with Wayland support, when the rest of the installation didn't have it. So I did another complete reinstallation with USE="-wayland ...", but the problem remains the same.

FWIW, this function 'gdk_wayland_display_get_type' is usually exported by libgdk-3.so.0. On my Gentoo build, this library does not have this symbol, or any other Wayland symbols. The build of the this library, at least, seems to have respected 'USE=-wayland'.

It looks as if xfce4ui-2.so.0 is getting built assuming it can call wayland functions in GDK, when these functions aren't present.

I don't know how to force libgdk to get built with Wayland support, and I'm pretty sure my hardware wouldn't cooperate even if I could. There must (?) be some way to get the Xfce4 libraries built without assuming that Wayland is available, but 'USE=-wayland' doesn't seem to be sufficient.

BTW the stage3 file I used was current-stage3-amd64-desktop-openrc. The profile I selected using eselect is '23: default/linux/amd64/23.0/desktop (stable)'

I'm tearing my hair out a bit now. The most 'modern' window manager I've gotten to work is Lumina (which, in fact, works fine). But there has to be something between that and the full-fat Gnome desktop. Probably the Gnome desktop support wouldn't work without Wayland these days, anyway.

BW, Lars


Last edited by lars_the_bear on Thu Jun 06, 2024 9:00 pm; edited 1 time in total
Back to top
View user's profile Send private message
grknight
Retired Dev
Retired Dev


Joined: 20 Feb 2015
Posts: 1847

PostPosted: Wed Jun 05, 2024 2:06 pm    Post subject: Reply with quote

Please run this command to solve the undefined reference: emerge --oneshot /usr/lib64/xfce4ui-2.so.0
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22447

PostPosted: Wed Jun 05, 2024 2:23 pm    Post subject: Reply with quote

In the future, or if you still need help, then per Guidelines item #4, please show us the commands that got you into this state. In particular, I would want to see the result of emerge --pretend --verbose xfce4ui. The output of emerge --info might also be useful.
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 468

PostPosted: Wed Jun 05, 2024 2:59 pm    Post subject: Reply with quote

grknight wrote:
Please run this command to solve the undefined reference: emerge --oneshot /usr/lib64/xfce4ui-2.so.0


Thanks but, sadly, this had no effect. Output of the command is attached.

I though that this would perhaps install a later version of the library, or something like that, but it doesn't seem to have done. The timestamps are still March 17, anyway.

Incidentally, gdk_wayland_display_get_type seems to be the only Wayland symbol that libxfce4ui-2 imports:

Code:

 # objdump -R  /usr/lib64/libxfce4ui-2.so.0.0.0 |grep wayl
000000000001fa08 R_X86_64_JUMP_SLOT  gdk_wayland_display_get_type@Base


That looks odd to me: I would have thought that, if it were going to Wayland stuff, it would need more than this one function.

BW, Lars


Code:

  # emerge --oneshot /usr/lib64/libxfce4ui-2.so.0

 * IMPORTANT: 22 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


Local copy of remote index is up-to-date and will be used.
Calculating dependencies... done!
Dependency resolution took 2.81 s (backtrack: 0/20).

>>> Emerging binary (1 of 1) xfce-base/libxfce4ui-4.18.6::gentoo
 * libxfce4ui-4.18.6-1.gpkg.tar MD5 SHA1 size ;-) ...                    [ ok ]
>>> Extracting info
>>> Extracting xfce-base/libxfce4ui-4.18.6

>>> Installing (1 of 1) xfce-base/libxfce4ui-4.18.6::gentoo
 * Updating icons cache ...                                                                 [ ok ]
 * Updating icons cache ...                                                                 [ ok ]

>>> Completed (1 of 1) xfce-base/libxfce4ui-4.18.6::gentoo
Back to top
View user's profile Send private message
grknight
Retired Dev
Retired Dev


Joined: 20 Feb 2015
Posts: 1847

PostPosted: Wed Jun 05, 2024 3:04 pm    Post subject: Reply with quote

lars_the_bear wrote:
Code:

  # emerge --oneshot /usr/lib64/libxfce4ui-2.so.0

 * IMPORTANT: 22 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


Local copy of remote index is up-to-date and will be used.
Calculating dependencies... done!
Dependency resolution took 2.81 s (backtrack: 0/20).

>>> Emerging binary (1 of 1) xfce-base/libxfce4ui-4.18.6::gentoo
 * libxfce4ui-4.18.6-1.gpkg.tar MD5 SHA1 size ;-) ...                    [ ok ]
>>> Extracting info
>>> Extracting xfce-base/libxfce4ui-4.18.6

>>> Installing (1 of 1) xfce-base/libxfce4ui-4.18.6::gentoo
 * Updating icons cache ...                                                                 [ ok ]
 * Updating icons cache ...                                                                 [ ok ]

>>> Completed (1 of 1) xfce-base/libxfce4ui-4.18.6::gentoo

Ok. So this is a bug with binary support and this package. (Bug 873520) The host that is building this does have the wayland libraries enabled without a way to signal this package to not consider them.
To get around this, issue the command: emerge --oneshot --usepkg=n --getbinpkg=n /usr/lib64/libxfce4ui-2.so.0
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 468

PostPosted: Wed Jun 05, 2024 3:09 pm    Post subject: Reply with quote

Hu wrote:
In the future, or if you still need help, then per Guidelines item #4, please show us the commands that got you into this state. In particular, I would want to see the result of emerge --pretend --verbose xfce4ui. The output of emerge --info might also be useful.


Thanks. I'm unsure what command you mean. I just ran (I think)

Code:

emerge --ask x11-base/xorg-drivers
emerge --ask x11-base/xorg-server
emerge --ask twm xclock x11-terms/xterm
startx
emerge --ask xfce-base/xfwm4


I set "USE=X -wayland -gnome -systemd -pulseaudio" before all this, and didn't change anything during the process.

I've tried various other USE settings, each time with (sigh) a complete reinstallation. The result seems to be the same every time.

BW, Lars

Code:

# emerge --pretend --verbose libxfce4ui

Local copy of remote index is up-to-date and will be used.

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 3.36 s (backtrack: 0/20).

[binary   R    ] xfce-base/libxfce4ui-4.18.6-1::gentoo  USE="introspection startup-notification -glade -system-info -vala" 0 KiB

Total: 1 package (1 reinstall, 1 binary), Size of downloads: 0 KiB


Code:

# emerge --info

Portage 3.0.63 (python 3.12.3-final-0, default/linux/amd64/23.0/desktop, gcc-13, glibc-2.39-r6, 6.6.30-gentoo-dist x86_64)
=================================================================
System uname: Linux-6.6.30-gentoo-dist-x86_64-Intel-R-_Core-TM-_i7-6820HQ_CPU_@_2.70GHz-with-glibc2.39
KiB Mem:     8133288 total,   5171880 free
KiB Swap:    8388604 total,   8388604 free
Timestamp of repository gentoo: Wed, 05 Jun 2024 08:00:00 +0000
Head commit of repository gentoo: 0b55f5ae8dd48aacbfcd4ef8fe0eac4835973b94
sh bash 5.1_p16-r6
ld GNU ld (Gentoo 2.42 p3) 2.42.0
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.1_p16-r6::gentoo
dev-build/autoconf:        2.71-r7::gentoo
dev-build/automake:        1.16.5-r2::gentoo
dev-build/cmake:           3.28.5::gentoo
dev-build/libtool:         2.4.7-r4::gentoo
dev-build/make:            4.4.1-r1::gentoo
dev-build/meson:           1.4.0-r1::gentoo
dev-lang/perl:             5.38.2-r3::gentoo
dev-lang/python:           3.12.3::gentoo
sys-apps/baselayout:       2.15::gentoo
sys-apps/openrc:           0.54::gentoo
sys-apps/sandbox:          2.38::gentoo
sys-devel/binutils:        2.42-r1::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/clang:           17.0.6::gentoo
sys-devel/gcc:             13.2.1_p20240210::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-devel/llvm:            17.0.6::gentoo
sys-kernel/linux-headers:  6.6-r1::gentoo (virtual/os-headers)
sys-libs/glibc:            2.39-r6::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    volatile: False
    sync-rsync-extra-opts:
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-max-age: 3
    sync-rsync-verify-metamanifest: yes

Binary Repositories:

gentoobinhost
    priority: 1
    sync-uri: https://distfiles.gentoo.org/releases/amd64/binpackages/23.0/x86-64

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-march=native -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles getbinpkg ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="https://mirror.bytemark.co.uk/gentoo/"
LANG="en_GB.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"
LEX="flex"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="X a52 aac acl acpi alsa amd64 bluetooth branding bzip2 cairo cdda cdr cet crypt cups dbus dri dts dvd dvdr elogind encode exif flac gdbm gif gpm gtk gui iconv icu ipv6 jpeg lcms libnotify libtirpc mad mng mp3 mp4 mpeg multilib ncurses nls ogg opengl openmp pam pango pcre pdf png policykit ppds qt5 readline sdl seccomp sound spell ssl startup-notification svg test-rust tiff truetype udev udisks unicode upower usb vorbis vulkan wxwidgets x264 xattr xcb xft xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gcc_12" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 aes avx avx2 pclmul popcnt rdrand sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby31 ruby32" VIDEO_CARDS="vmware" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, MAKEOPTS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
Back to top
View user's profile Send private message
grknight
Retired Dev
Retired Dev


Joined: 20 Feb 2015
Posts: 1847

PostPosted: Wed Jun 05, 2024 3:13 pm    Post subject: Reply with quote

lars_the_bear wrote:
I've tried various other USE settings, each time with (sigh) a complete reinstallation. The result seems to be the same every time.

Reinstallation will not accomplish anything and is only useful after a data loss usually with a hardware failure (and no backup).

Edit: I suggest adding the option --usepkg-exclude 'xfce-base/libxfce4ui' to EMERGE_DEFAULT_OPTS in make.conf so long as wayland is disabled or the bug is fixed. This is due to the getbinpkg FEATURE and the bug mentioned above.
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 468

PostPosted: Wed Jun 05, 2024 5:51 pm    Post subject: Reply with quote

grknight wrote:

Reinstallation will not accomplish anything and is only useful after a data loss usually with a hardware failure (and no backup).


Thanks. This raises another point that I'm really struggling with, with Gentoo. Suppose I edit the USE settings in /etc/portage/make.conf, and then go on to install more stuff. Doesn't that put the whole system into an inconsistent state? Is it actually safe to edit these settings, other than at the very start of installation?

I've read about various ways to fix this problem -- if it actually is a problem -- but, whenever I've tried any of them, I've ended up with a completely borked installation. Hence all the reinstallations.

What is the official position on this?

I'll try the other thing you suggested when I'm back at my desk.

BR, Lars
Back to top
View user's profile Send private message
grknight
Retired Dev
Retired Dev


Joined: 20 Feb 2015
Posts: 1847

PostPosted: Wed Jun 05, 2024 5:59 pm    Post subject: Reply with quote

lars_the_bear wrote:
Thanks. This raises another point that I'm really struggling with, with Gentoo. Suppose I edit the USE settings in /etc/portage/make.conf, and then go on to install more stuff. Doesn't that put the whole system into an inconsistent state? Is it actually safe to edit these settings, other than at the very start of installation?

It is very safe to change USE flags at any time. You should apply such changes with the command emerge -avDU @world (short for --ask --verbose --deep --changed-use).
If you disagree with what is happening in the output, you can always say no and make further USE changes or similar considerations.

@world is a special target which looks at your selected set of packages plus the @system set (required profile packages). This alone is somewhat useless, but the --deep option makes it look at everything needed on the system. --deep option considers all current dependencies to whatever target is specified. tl;dr: don't use @world without --deep
Back to top
View user's profile Send private message
lars_the_bear
Guru
Guru


Joined: 05 Jun 2024
Posts: 468

PostPosted: Thu Jun 06, 2024 7:48 am    Post subject: Reply with quote

After setting USE=-wayland and forcing libxfce4ui to build from source, the Xfce4 desktop is now working.

Now building Firefox from source; so I'm looking forward to having a useable system in about three days ;)

Thanks for the assistance.

BR, Lars.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Installing Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum