Le dimanche 23 juin 2013 21:21:31, Thomas Preud'homme a écrit : > Le dimanche 23 juin 2013 18:52:24, Thomas Preud'homme a écrit : > > Le dimanche 23 juin 2013 18:43:14, Osamu Aoki a écrit : > > > On Sun, Jun 23, 2013 at 05:17:56PM +0200, Thomas Preud'homme wrote: > > > > > It seems that 20_ibus.rc is ultimately sourced by the user's shell. > > > > > > Really? Why? > > > > I don't know, as said I didn't manage to track down the cause. Maybe I'm > > wrong and it's executed by sh but the ls was not working on my system > > (the loop was not entered) exactly like zsh would. I assumed it was > > because the script is run at some point by zsh but I might be wrong and > > maybe dash act differently when sourcing something than when run in > > interactive mode (I made my debugging with dash in interactive mode). > > Ok, it seems it's kdm's fault. If you look at the file > /etc/kde4/kdm/Xsession, you'll see that it test what is the shell (which > suggests that this file is not executed but sourced, despite the shebang) > and at the end it source /etc/X11/Xsession. I couldn't find where is > /etc/kde4/kdm/Xsession sourced yet but to me it seems it's sourced and > then it source Xsession which eventually sources 20_ibus.rc.
Sorry for the spam but I just found it. It was just in front of me.
/etc/kde4/kdm/Xsession contains the following excerpt:
case $SHELL in
[SNIP bash case]
*/zsh)
[ -z "$ZSH_NAME" ] && exec $SHELL $0 "$@"
emulate -R zsh
I've seen several occurences in kdm's code to set the SHELL environment
variable. So later Xsession is executed, $SHELL is detected to be zsh so it
exec zsh /etc/kde4/kdm/Xsession $otherargs which set zsh to zsh emulation mode
and then source /etc/X11/Xsession. I suppose the bug could be fixed by setting
zsh to sh emulate mode.
>
> I let it up to you to reassign to kdm, in which case the patch tags ought
> to be removed.
Let me know if you want me to do it instead.
Best regards,
Thomas
signature.asc
Description: This is a digitally signed message part.

