Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 726762 - x11-wm/enlightenment - Cannot start Wayland Session using enlightenment_start
Summary: x11-wm/enlightenment - Cannot start Wayland Session using enlightenment_start
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Joonas Niilola
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-02 12:43 UTC by John
Modified: 2020-11-25 12:27 UTC (History)
1 user (show)

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


Attachments
Output of enlightenment_start (err.txt,4.85 KB, text/plain)
2020-06-02 12:43 UTC, John
Details

Note You need to log in before you can comment on or make changes to this bug.
Description John 2020-06-02 12:43:51 UTC
Created attachment 643132 [details]
Output of enlightenment_start

When trying to start enlightenment_start to use Wayland session using

ECORE_EVAS_ENGINE=wayland_egl ELM_DISPLAY=wl ELM_ACCEL=gl enlightenment_start fails to start and produces error:-

Enlightenment cannot initialize X Connection...
LOAD WL_WL MODULE
Could not create wayland canvas
LOAD WL_X11 MODULE
X11 connect failed!
LOAD WL_DRM MODULE
ERR<2882>:ecore_drm2 ../efl-1.24.2/src/lib/ecore_drm2/ecore_drm2_device.c:602 ecore_drm2_device_open() Could not connect to input manager
ERR<2882>:ecore_evas ../efl-1.24.2/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c:163 _ecore_evas_drm_init() Failed to open device
Could not create ecore_evas_drm canvas<<<< Enlightenment Error >>>>
Enlightenment cannot create a compositor.

See err.txt for more info and complete message.

Notes - I can run Weston and Wayfire without issues and Enlightenment will not start in sddm when using Wayland.

emerge --info:-
Portage 2.3.99 (python 3.7.7-final-0, default/linux/amd64/17.1/desktop, gcc-9.3.0, glibc-2.30-r8, 5.4.38-gentoo x86_64)
=================================================================
System uname: Linux-5.4.38-gentoo-x86_64-AMD_Ryzen_7_2700X_Eight-Core_Processor-with-gentoo-2.6
KiB Mem:    16378264 total,  12632712 free
KiB Swap:   16777212 total,  16777212 free
Timestamp of repository gentoo: Tue, 02 Jun 2020 08:00:01 +0000
Head commit of repository gentoo: 3e24f76827fb4b305327d68a57216e4c73befd00
sh bash 5.0_p17
ld GNU ld (Gentoo 2.33.1 p2) 2.33.1
app-shells/bash:          5.0_p17::gentoo
dev-lang/perl:            5.30.1::gentoo
dev-lang/python:          2.7.18::gentoo, 3.6.10-r2::gentoo, 3.7.7-r2::gentoo, 3.8.2-r2::gentoo
dev-util/cmake:           3.16.5::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/openrc:          0.42.1::gentoo
sys-apps/sandbox:         2.13::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.16.1-r1::gentoo
sys-devel/binutils:       2.33.1-r1::gentoo
sys-devel/gcc:            9.3.0::gentoo
sys-devel/gcc-config:     2.2.1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 5.4-r1::gentoo (virtual/os-headers)
sys-libs/glibc:           2.30-r8::gentoo
Repositories:

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

jacendi-overlay
    location: /var/lib/layman/jacendi-overlay
    sync-type: laymansync
    sync-uri: https://bitbucket.org/jacendi/jacendi-overlay
    masters: gentoo
    priority: 50

sabayon
    location: /var/lib/layman/sabayon
    sync-type: laymansync
    sync-uri: git://github.com/Sabayon/for-gentoo.git
    masters: gentoo
    priority: 50

steam-overlay
    location: /var/lib/layman/steam-overlay
    sync-type: laymansync
    sync-uri: https://github.com/anyc/steam-overlay.git
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-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/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://mirror.bytemark.co.uk/gentoo/ https://mirror.bytemark.co.uk/gentoo/ http://mirror.bytemark.co.uk/gentoo/ rsync://mirror.bytemark.co.uk/gentoo/ http://mirrors.evowise.com/gentoo/ https://mirrors.evowise.com/gentoo/ https://www.mirrorservice.org/sites/distfiles.gentoo.org/ http://www.mirrorservice.org/sites/distfiles.gentoo.org/ ftp://ftp.mirrorservice.org/sites/distfiles.gentoo.org/ rsync://rsync.mirrorservice.org/distfiles.gentoo.org/"
LANG="en_GB.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en"
MAKEOPTS="-j9"
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="/tmp"
USE="X a52 aac acl acpi alsa amd64 bash-completion berkdb bluetooth branding bzip2 cairo cdda cdr cli crypt dbus dri dts dvd dvdr elogind emboss encode exif ffmpeg flac fortran gdbm gif gpm gtk iconv icu ipv6 jpeg lcms ldap libnotify libtirpc lock mad mng mp3 mp4 mpeg mtp multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf png ppds pulseaudio qt5 readline sdl seccomp spell split-usr ssl startup-notification svg symlink tcpd tiff truetype udev udisks unicode upower usb virgl vorbis wayland wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache 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="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="libinput" KERNEL="linux" L10N="en-GB" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python2_7 python3_7" QEMU_USER_TARGETS="x86_64" RUBY_TARGETS="ruby24 ruby25" USERLAND="GNU" VIDEO_CARDS="amdgpu radeonsi" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Joonas Niilola gentoo-dev 2020-06-03 18:16:29 UTC
Judging from the error log, there seems to be some issues with dbus/logind. 

Could you paste 'emerge -pv --nodeps efl enlightenment' and make sure your dbus is running? And that elogind has been started at boot. You may have to issue "dbus-launch enlightenment_start", although I don't believe it will change anything. 

I'm seeing more and more errors like these with elogind - I hope they won't make systemd a hard-dependency.
Comment 2 John 2020-06-04 09:33:00 UTC
[ebuild   R   ~] dev-libs/efl-1.24.2::gentoo  USE="X dds drm eet elogind examples fbcon fontconfig gif gles2 glib gnutls gstreamer harfbuzz hyphen ibus jpeg2k libressl luajit nls pdf pulseaudio scim sdl sound ssl svg system-lz4 tga tiff wayland webp xcf xim xpm -bmp -connman -debug -doc -fribidi -ico -json -lua -mono -opengl -physics -pmaps -postscript -psd -raw -systemd -tgv -tslib -unwind -v4l -vnc -xpresent -zeroconf" 0 KiB
[ebuild   R   ~] x11-wm/enlightenment-0.24.1:0.17/0.24.1::gentoo  USE="acpi bluetooth nls pam udisks wayland xwayland -connman -doc -geolocation -policykit -systemd -wifi" 0 KiB

Total: 2 packages (2 reinstalls), Size of downloads: 0 KiB

rc-update

          dbus |      default
          devfs |                                 sysinit
          dmesg |                                 sysinit
          elogind | boot

Yes dbus running and elogind running. elogind starts at boot time.

John
Comment 3 Georg 2020-08-04 19:46:24 UTC
This problem got fixed on the efl git
https://git.enlightenment.org/core/efl.git/commit/?id=ee9836c5e78a9b52a5265e6ec4156a025fb6a1a6

This should work out of the box now.
It was a path issue.

"export EFL_ELOGIND_LIB=/pathtolib" should work too now.

https://forums.gentoo.org/viewtopic-t-1116786.html
Comment 4 Joonas Niilola gentoo-dev 2020-08-05 11:34:56 UTC
Unfortunately that patch is not backwards-compatible with efl-1.24.3, since they've completely rewritten systemd and elogind support in efl. However it tells us where the problem is, and we might be able to workaround it for 1.24.3. 

Patchelf in ebuild, or simply patching it by ourself.
Comment 5 Georg 2020-08-05 16:26:12 UTC
Got it working with a few tweaks:
1. Modified the ebuild so systemd is always activated for meson (it doesn't have to be actually installed) https://pastebin.com/ajuUGcm4
2. created a systemd service file that points to elogind (/usr/local/lib64/pkgconfig/libsystemd.pc) :

#  SPDX-License-Identifier: LGPL-2.1+
#
#  This file is part of elogind.
#
#  elogind is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

prefix=/usr/local
exec_prefix=/usr/local
libdir=/lib64
#if 0 /// To be able to act as a drop-in replacement, elogind has a systemd subdir
# includedir=/usr/include
#else // 0
includedir=/usr/include/elogind
#endif // 0

Name: systemd
Description: systemd Library
URL: https://github.com/elogind/elogind
Version: 243.7
Libs: -L${libdir} -lelogind
Cflags: -I${includedir}

3. export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:"$PKG_CONFIG_PATH"
4. emerge the modified ebuild
Comment 6 Joonas Niilola gentoo-dev 2020-09-23 12:48:47 UTC
New updated efl-1.25.0 should fix this issue. Could you test?
Comment 7 Georg 2020-09-24 23:19:53 UTC
It doesn't work, same error as before, because meson gets wrong parameters:
###
meson setup --buildtype plain --libdir lib64 --localstatedir /var/lib --prefix /usr --sysconfdir /etc --wrap-mode nodownload --build.pkg-config-path /usr/share/pkgconfig --pkg-config-path /usr/share/pkgconfig --native-file /var/tmp/portage/dev-libs/efl-1.25.0/temp/meson.x86_64-pc-linux-gnu.amd64.ini --buildtype=release -D buffer=false -D cocoa=false -D drm-deprecated=false -D g-mainloop=false -D install-eo-files=true -D mono-beta=false -D dotnet=false -D pixman=false -D wl-deprecated=false -D dotnet-stylecop-severity=Warning -D edje-sound-and-video=true -D eeze=true -D libmount=true -D native-arch-optimization=true -D xinput2=true -D xinput22=true -Dx11=true -Ddebug-threads=false -Ddrm=true -Dsystemd=true -Dbuild-examples=false -Dfb=false -Dfontconfig=true -Dfribidi=false -Dglib=true -Dgstreamer=true -Dharfbuzz=true -Dhyphen=true -Delua=true -Dnls=true -Dphysics=true -Dpulseaudio=true -Dsdl=false -Daudio=true -Dsystemd=false -Dtslib=false -Dv4l2=false -Dvnc-server=false -Dwl=true -Dxpresent=false -Davahi=false -Dembedded-lz4=false -D opengl=es-egl -D crypto=openssl -D network-backend=none -D evas-loaders-disabler=avif,jp2k,json,pmaps,ps,psd,raw,tga,tgv,webp,xpm -D ecore-imf-loaders-disabler=xim -D bindings=cxx,lua -D lua-interpreter=luajit /var/tmp/portage/dev-libs/efl-1.25.0/work/efl-1.25.0 /var/tmp/portage/dev-libs/efl-1.25.0/work/efl-1.25.0-build
###
It gets both systemd=true and false which results in no elogind support.
Comment 8 Larry the Git Cow gentoo-dev 2020-09-25 05:33:37 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c76b03773d845d9644690dc37f4c4e2c09e1e5d5

commit c76b03773d845d9644690dc37f4c4e2c09e1e5d5
Author:     Joonas Niilola <juippis@gentoo.org>
AuthorDate: 2020-09-25 05:32:41 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2020-09-25 05:33:29 +0000

    dev-libs/efl: fix elogind-systemd detection on 1.25.0
    
    Bug: https://bugs.gentoo.org/726762
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 dev-libs/efl/efl-1.25.0-r1.ebuild | 302 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 302 insertions(+)
Comment 9 Georg 2020-09-25 12:57:21 UTC
It works for me now (on an amd64 system).
Comment 10 Larry the Git Cow gentoo-dev 2020-09-28 06:08:10 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4216eff4a7e63222dcd921e87f879c8ce7f9f7d1

commit 4216eff4a7e63222dcd921e87f879c8ce7f9f7d1
Author:     Joonas Niilola <juippis@gentoo.org>
AuthorDate: 2020-09-28 06:07:37 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2020-09-28 06:08:02 +0000

    dev-libs/efl: either elogind or systemd is needed for wayland
    
    Bug: https://bugs.gentoo.org/726762
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 dev-libs/efl/efl-1.25.0-r1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 11 John 2020-10-13 10:41:32 UTC
Hello,

enlightenment_start works now and can start wayland session.

Thanks

John
Comment 12 Bruno 2020-11-20 19:41:43 UTC
efl-1.25.1 started needing either elogind or systemd for wayland support.

Looking at the motivation in this bug report it feels enlightenment needs efl to be built with support for either of them, not any random efl-based application to run under a wayland compositor.

As such requiring either of systemd/elogind for efl feels wrong (blindly requiring either of them for efl feels like requiring either of them for for gtk3).

Can that requirement be moved to enlightenment ebuild in the idea of:

DEPEND="
  ...
  wayland? ( || (dev-libs/efl[systemd] dev-libs/efl[elogind] ) )
  ...
"
Comment 13 Joonas Niilola gentoo-dev 2020-11-23 08:55:12 UTC
Do I understand you correctly, that you want this to be moved *from* efl: 
  REQUIRED_USE="
	wayland? ( gles2-only !opengl || ( elogind systemd ) )"

to enlightenment as you demonstrated?

Does efl with wayland build without either of them enabled? It could make sense if yes.
Comment 14 Bruno 2020-11-23 17:05:56 UTC
(In reply to Joonas Niilola from comment #13)
> Do I understand you correctly, that you want this to be moved *from* efl: 
>   REQUIRED_USE="
> 	wayland? ( gles2-only !opengl || ( elogind systemd ) )"
> 
> to enlightenment as you demonstrated?
> 
> Does efl with wayland build without either of them enabled? It could make
> sense if yes.

Yes

REQUIRED_USE="...
	wayland? ( gles2-only !opengl || ( elogind systemd ) )
	...
"

would become
REQUIRED_USE="...
	wayland? ( gles2-only !opengl )
	...
"

and enlightenment would get the requirement for its efl to be build with either one of elogind/systemd.

Up until efl-1.24 I've been able to run e.g. terminology under sway with neither elogind nor systemd.
Just successfully tested that now with terminology and my suggested change applied. Terminology runs just fine under sway.
Comment 15 Larry the Git Cow gentoo-dev 2020-11-25 12:27:14 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4003b1f5fe76db52348b0a5e1da2c770ca963ae2

commit 4003b1f5fe76db52348b0a5e1da2c770ca963ae2
Author:     Joonas Niilola <juippis@gentoo.org>
AuthorDate: 2020-11-25 12:23:16 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2020-11-25 12:27:06 +0000

    dev-libs/efl: elogind/systemd not needed for wayland during compile
    
     - allows other efl software, like terminology, to be used without
       elogind/systemd.
    
    Closes: https://bugs.gentoo.org/726762
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 dev-libs/efl/{efl-1.25.1-r1.ebuild => efl-1.25.1-r2.ebuild} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Additionally, it has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e976c167bf4ba1aa0fbc6ee2d1aab4b1bf5d74a2

commit e976c167bf4ba1aa0fbc6ee2d1aab4b1bf5d74a2
Author:     Joonas Niilola <juippis@gentoo.org>
AuthorDate: 2020-11-25 12:20:23 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2020-11-25 12:27:06 +0000

    x11-wm/enlightenment: wayland requires elogind/systemd support in efl
    
    Bug: https://bugs.gentoo.org/726762
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 .../{enlightenment-0.24.2.ebuild => enlightenment-0.24.2-r1.ebuild} | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)