Hello community, here is the log from the commit of package xinit for openSUSE:Factory checked in at 2016-06-05 14:19:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xinit (Old) and /work/SRC/openSUSE:Factory/.xinit.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "xinit" Changes: -------- --- /work/SRC/openSUSE:Factory/xinit/xinit.changes 2016-04-06 11:51:22.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xinit.new/xinit.changes 2016-06-05 14:19:52.000000000 +0200 @@ -1,0 +2,24 @@ +Wed Jun 1 12:37:18 UTC 2016 - mstaudt@suse.com + +- xinitrc.common: Add plasma* in list of fallback WMs + +------------------------------------------------------------------- +Wed Jun 1 10:43:56 UTC 2016 - mstaudt@suse.com + +- xinitrc.common: Add comments, make error messages clearer. + Don't filter out twm, as it's only installed on request. + Don't expand fallback WINDOWMANAGER. + +------------------------------------------------------------------- +Wed Jun 1 07:36:25 UTC 2016 - werner@suse.de + +- xinit.tar.bz2: skip twm and xsession desktops + +------------------------------------------------------------------- +Tue May 31 16:46:51 UTC 2016 - werner@suse.de + +- xinit.tar.bz2: + simplify bash code of /etc/X11/xinit/xinitrc.common to avoid that + already set WINDOWMANAGER variable becomes stripped (bsc#981437) + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xinit.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/etc/X11/xinit/xinitrc.common new/etc/X11/xinit/xinitrc.common --- old/etc/X11/xinit/xinitrc.common 2016-04-05 09:59:53.000000000 +0200 +++ new/etc/X11/xinit/xinitrc.common 2016-06-01 14:36:57.000000000 +0200 @@ -54,7 +54,7 @@ . $script else # run number ordered scripts sequentially - case ${script##*/} in + case ${script##*/} in [0-9][0-9]-*) $script ;; *) $script & ;; esac @@ -66,58 +66,41 @@ unset script # -# Choose a window manager +# Choose a window manager if not set by /etc/profile.d/profile.sh # -if test -n "$WINDOWMANAGER" ; then - _epand_wm() - { - local x y z - for x in $WINDOWMANAGER ; do - case "$x" in - *=*) y="${y:+$y }$x" ;; - -*) y="${y:+$y }$x" ;; - *) if z="$(type -p $x 2>/dev/null)" ; then - y="${y:+$y }$z" - else - y="${y:+$y }$x" - fi - esac - done - test -n "$y" && WINDOWMANAGER="$y" - } - _epand_wm - unset _epand_wm -fi if test -z "$WINDOWMANAGER" ; then + # For some reason, $WINDOWMANAGER is not set. + # This is because the user cleared it or DEFAULT_WM is empty. + # Fall back on any session we can find. _find_wm() { - local x - local i local file local dir="/usr/share/xsessions" - # prefer the desktops resp icewm as it's used by YaST anyways - for i in kde gnome xfce lxde icewm; do - if [ -e "$dir/$i.desktop" ]; then - file="$dir/$i.desktop" - break - fi + + # Pick a session description file. + for file in ${dir}/{plasma*,kde*,gnome*,xfce*,lxde*,icewm*,*}.desktop + do + case "${file##*/}" in + # Ignore user's .xsession as we can't + # handle it as a fallback. + xsession.*) + continue ;; + esac + test -e "$file" && break done - if [ -z "$file" ]; then - # let's pick the first one - local files=($dir/*.desktop) - file="${files[0]}" - # coolo doesn't like twm - if [ "$file" != "${file%twm.desktop}" -a -n "${files[1]}" ]; then - file="${files[1]}" - fi - fi - if [ -n "$file" ]; then - while read line; do - x="${line#Exec=}" - [ "$line" = "$x" ] || break - done < "$file" - fi - WINDOWMANAGER=$(type -p "$x") + test -z "$file" && return + + # Grab the session command line from the file. + local line + while read -r line + do + case ${line} in + Exec=*) + WINDOWMANAGER="${line#Exec=}" + break + ;; + esac + done < "$file" } _find_wm unset _find_wm @@ -130,10 +113,18 @@ if test -z "$WINDOWMANAGER" ; then if test -t 1 ; then echo "Error: Unable to find a window manager. Please make sure you installed one!" + echo " This could be due to a misconfigured WINDOWMANAGER in your shell," + echo " an unknown DEFAULT_WM in /etc/sysconfig/windowmanager, or because" + echo " the programs referenced in /usr/share/xsessions/*.desktop are" + echo " not in the PATH." echo "Exiting..." fi - xmessage -timeout 10 -default okay -center -file - <<-EOF + xmessage -timeout 20 -default okay -center -file - <<-EOF Error: Unable to find a window manager. Please make sure you installed one! + This could be due to a misconfigured WINDOWMANAGER in your shell, + an unknown DEFAULT_WM in /etc/sysconfig/windowmanager, or because + the session program referenced in /usr/share/xsessions/*.desktop is + not in the PATH. Exiting... EOF exit 1 @@ -212,7 +203,7 @@ # Disable new Xcursor themes if none is specified resp. located # in $HOME (use "unset XCURSOR_CORE" to enable them again later) # -#if test -z "$XCURSOR_THEME" -a ! -d $HOME/.icons ; then +#if test -z "$XCURSOR_THEME" -a ! -d $HOME/.icons ; then # XCURSOR_CORE=true # export XCURSOR_CORE #else