[Bug 1800280] Re: Setting ZSH as the default shell causes various issues because it doesn't source /etc/profile

rjc 1800280 at bugs.launchpad.net
Sat Nov 3 13:31:14 UTC 2018


> Either Ubuntu's zsh package should do the same (or something similar),
or Ubuntu must put important environment variable stuff somewhere else
and have only bash-specific stuff in /etc/profile and /etc/profile.d.

Whilst I sympathise with the OP - I've used ZSH as my $SHELL for a
number of years in the past - I *do* object to the former - /etc/profile
*must* be POSIX/Bourne shell compliant[0].

The latter - files under /etc/profile.d - *should* be POSIX/Bourne shell
compliant, IMVHO.

Either way, all of the files *can* be made POSIX-compliant and have
something along the lines of:

    test $SHELL = /bin/bash && {
        ...
        Bash-specific stuff here
        ...
    }

after the POSIX-only setup.

ZSH can obviously source the then-made-POSIX-compliant options from
/etc/zshenv or /etc/zprofile[1] (or wherever they live nowadays).

This obviously only concerns the environment variables, settings, etc.
which are required to have the same functionality in terms of the
operating system, in a way which is $SHELL-agnostic. We're not talking
about options which only concern Bash or Zsh users, i.e. auto-
completion, etc.

[0] https://manpages.debian.org/unstable/dash/sh.1.en.html#FILES
[1] https://shreevatsa.wordpress.com/2008/03/30/zshbash-startup-files-loading-order-bashrc-zshrc-etc/

My £0.02

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to zsh in Ubuntu.
https://bugs.launchpad.net/bugs/1800280

Title:
  Setting ZSH as the default shell causes various issues because it
  doesn't source /etc/profile

Status in zsh package in Ubuntu:
  New

Bug description:
  When setting ZSH as the default shell, /etc/profile is never sourced
  (because ZSH instead sources its own /etc/zsh/zprofile). That's
  problematic, because /etc/profile (and the files in /etc/profile.d)
  are responsible for a bunch of important stuff. For example:

  /etc/profile.d/apps-bin-path.sh adds /var/lib/snapd/desktop to
  XDG_DATA_DIRS. Setting the default shell to ZSH means that desktop
  environments suddenly can't launch snap packages.

  /etc/profile.d/input-method-config.sh works around
  https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1720250, so
  setting the default shell to ZSH un-fixes that bug.

  Arch Linux's zsh package has `emulate sh -c 'source /etc/profile'` in
  /etc/zsh/zprofile. Either Ubuntu's zsh package should do the same (or
  something similar), or Ubuntu must put important environment variable
  stuff somewhere else and have only bash-specific stuff in /etc/profile
  and /etc/profile.d.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zsh/+bug/1800280/+subscriptions



More information about the foundations-bugs mailing list