Package: zsh
Version: 4.3.0-dev-2-4
Severity: wishlist
Tags: patch

Hi,

in order to fix bug #344030 for users of zsh I need to execute 
some code in /etc/zsh/zlogin (there unfortunately doesn't seem to be a 
non-shell-specific way to deal with the corner case in that bug).

Attached are 2 versions of patches with 2 competing solutions to do so:
1) modularized_zlogin: this version of csh_login modularizes this file so
   any zsh scripts dropped into /etc/zsh/zlogin.d are sourced. 
   -> IMO this is the preferred solution as:
      - it can be used by other packages also (e.g. the user-es, and user-de 
        configuration packages could use this to configure things for zsh
        users)
      - doesn't clutter the system unnecessarely (though minimally) when
        desktop-profiles isn't installed .
      (if this is adopted I'll provide patches for user-es, user-de and
       similar configuration packags I know of to automate the setup they do
       for tcsh users)
2) with_bugfix_zlogin: this just adds the shell-snippet needed to fix bug
   #344030 directly into csh.login
--
Cheers, cobaco

/"\  ASCII Ribbon Campaign
\ /  No proprietary formats in attachments without request
 X   i.e. *NO* WORD, POWERPOINT or EXCEL documents
/ \  Respect Open Standards
      http://www.fsf.org/philosophy/no-word-attachments.html
      http://www.goldmark.org/netrants/no-word/attach.html






# /etc/zsh/zlogin: system-wide .zlogin file for zsh(1).
#
# This file is sourced only for login shells. It
# should contain commands that should be executed only
# in login shells. It should be used to set the terminal
# type and run a series of external commands (fortune,
# msgs, from, etc.)
#
# Global Order: zshenv, zprofile, zshrc, zlogin

# allow for other packages/system admins to customize the shell environment
if (test -d /etc/zsh/zlogin.d) then
  for FILE in `ls /etc/zsh/zlogin.d/*`; do
    source $FILE
  done
fi 
# /etc/zsh/zlogin: system-wide .zlogin file for zsh(1).
#
# This file is sourced only for login shells. It
# should contain commands that should be executed only
# in login shells. It should be used to set the terminal
# type and run a series of external commands (fortune,
# msgs, from, etc.)
#
# Global Order: zshenv, zprofile, zshrc, zlogin

# This fixes the desktop-profiles corner-case where a graphical client is 
# started through an ssh -X session (in which the Xsession.d scripts aren't 
# run, so we need to make sure the profiles are activated according to the 
# specified settings at login).
DESKTOP_PROFILES_SNIPPET="/usr/share/desktop-profiles/get_desktop-profiles_variables"
if (test -f $DESKTOP_PROFILES_SNIPPET) then
  TEMP_FILE=`tempfile`

  # use bash to write the required environment settings to a tempfile
  # this file has a VARIABLE=VALUE format
  bash $DESKTOP_PROFILES_SNIPPET $TEMP_FILE

  # convert to zsh format and source to set the required environment variables
  sed -i 's/^\(.*=.*\)$/export \1/' $TEMP_FILE
  source $TEMP_FILE

  # cleanup
  rm $TEMP_FILE
fi  

Attachment: pgpRMekTkiWAd.pgp
Description: PGP signature

Reply via email to