Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 604110

Summary: Start gnome-base/gdm wayland sessions within login shells
Product: Gentoo Linux Reporter: Mart Raudsepp <leio>
Component: Current packagesAssignee: Gentoo Linux Gnome Desktop Team <gnome>
Status: RESOLVED FIXED    
Severity: normal CC: aklhfex, leho
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
URL: https://lwn.net/Articles/709769/
See Also: https://bugzilla.gnome.org/show_bug.cgi?id=736660
https://bugzilla.redhat.com/show_bug.cgi?id=1149905
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 595886, 611134    

Description Mart Raudsepp gentoo-dev 2016-12-30 04:07:19 UTC
We need to launch wayland sessions as login shells, or many things are broken, e.g most stuff found in /etc/env.d/ - which includes important stuff for us like GSETTINGS_BACKEND setting, or whatever PATH tweaks are done there, or nice stuff like the lesspipe usage so less'ing some bz2 or xz packed /usr/share/doc NEWS file works, instead of complaining about it being binary (yes, that's even broken from gnome-terminal that should be doing some of its shell setup; it only fixes when opening a login shell from inside an open tab with e.g "su - username").

This is broken for all distributions right now that don't apply some workaround (including Fedora - even listed at https://fedoraproject.org/wiki/Common_F25_bugs#gnome-login-shell), and is now growingly important with 3.22 actually defaulting to a wayland session (but only when USE=wayland in necessary places is used in case of Gentoo, mainly gnome-session and gdm).
We just happen to suffer more than others due to our huge use of /etc/env.d/ and /etc/profile and whatnot.

The upstream and Fedora bugs (see URL field) discuss various potential workarounds. Some of them I don't like personally for one of the following reasons:

1) It only "fixes" gnome sessions, not other wayland sessions
2) It adds a login shell exec for all sessions, even X11 ones, which means an extra one, because those are already launched within a login shell via all the xinit/Sessions stuff
3) Doesn't work with all possible $SHELL's
Comment 1 Mart Raudsepp gentoo-dev 2017-03-18 12:32:46 UTC
The backported patch by my reading seems to always use bash to get a login shell, which means settings in .zsh_profile or whatever ZSH has might not be sourced. If this is a real problem, someone should file a new bug and maybe take it up with upstream.

commit a62f7893203807969ae4fd725fa3a61e1dc97e65
Author: Mart Raudsepp <leio@gentoo.org>
Date:   Sat Mar 18 14:22:57 2017 +0200

    gnome-base/gnome-session: 3.22.3 bump, revert to Xorg session default, make wayland session be a login shell
    
    The upstream bump from 3.22.2 to 3.22.3 just reduces the data traffic for VT switch monitoring.
    
    Gentoo-bug: 604110
    Backport upstream patch from 3.23.4.1 to re-launch itself as a "bash" login shell when /usr/bin/gnome-session
    is started for a wayland based session without a login shell. This makes GNOME wayland session to
    do all the shell setup that a login shell does, which means e.g Gentoo /etc/env.d things get processed
    via shell profile, fixing all the variable and other setups we rely on heavily in Gentoo.
    Because this currently re-launches with bash, it will probably only source bash and generic setups, not e.g
    zsh specific paths.
    
    Gentoo-bug: 611146
    Forward port upstream patch from 3.19 days that reverted default "gnome" session back to Xorg for 3.20,
    to do it again in Gentoo 3.22. Also manually forward port translations for the "GNOME on Wayland" string
    change, where available as a translated string in 3.20.
    3.24 should be available faster in Gentoo now, which will get us to Wayland then, as in 3.24 it'll also
    work with nvidia-drivers and be generally even more mature.
    
    Package-Manager: Portage-2.3.4, Repoman-2.3.1