Comment 33 for bug 678421

Revision history for this message
Gunnar Hjalmarsson (gunnarhj) wrote :

Hi Barry!

On 2014-11-14 17:56, Barry Warsaw wrote:
> So, when I log in, I do get several warnings in a dialog. Most are
> because I use `source` instead of `.` to source other shell files.
> What shell is lightdm using these days?

It has always been using Bourne shell, so "source" is not understood. You have obliviously been running your system without the configuration in those other shell files.

> Anyway, when I change them all to `.` I still get one warning about
> my use of shopt,

Another bash command, not understood by dash.

> However, logins are now completely broken. I see the screen blank and
> then I'm thrown back to the login screen. ~/.xsession-errors is
> empty and I can find no other log file either in $HOME or /var/log
> that contains any information about what's going wrong.

This is the code in /usr/sbin/lightdm-session which triggers those warning dialogs:

<code>
# temporary storage of error messages
ERR=$(mktemp --tmpdir config-err-XXXXXX)

source_with_error_check () {
    CONFIG_FILE="$1"
    if sh -n "$CONFIG_FILE" 2>"$ERR"; then
        echo "Loading $CONFIG_FILE";
        . "$CONFIG_FILE" 2>"$ERR"
        if [ -s "$ERR" ]; then
            SYNTAX=false
            . /usr/lib/lightdm/config-error-dialog.sh
        fi
    else
        SYNTAX=true
        . /usr/lib/lightdm/config-error-dialog.sh
    fi
    cat "$ERR" >>/dev/stderr
    truncate -s 0 "$ERR"
}

# Load profile
for file in "/etc/profile" "$HOME/.profile" \
            "/etc/xprofile" "$HOME/.xprofile"; do
    if [ -f "$file" ]; then
        source_with_error_check "$file"
    fi
done
</code>

I find it hard to believe that that code itself is causing the problem you describe. Considering that you could log in just fine before you changed the occurrences of "source" to ".", I would look for the cause in the code which unlike before is now sourced by lightdm.