Bug 10917 - Unusable session script
: Unusable session script
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/xfce-utils)
: unstable
: all Linux
: P2 blocker
Assigned To:
:
:
:
:
: 12100
  Show dependency tree
 
Reported: 2007-02-24 15:21 by
Modified: 2008-03-24 12:46 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2007-02-24 15:21:55
/usr/bin/startxfce4 вызывает совершенно жуткого вида скрипт
/etc/xdg/xfce4/xinitrc который пытается подменять собой /etc/X11/Xsession. 
Делает он это настолько отвратительно, что ~/.Xdefaults просто вытираются из
xrdb.

Не надо заниматься самодеятельностью, в startxfce4 надо просто выставить нужные
переменные и запустить нужные приложения (типа xffm и xfpanel) вместо тех
плясок
вокруг xinit/serverrc, ssh-agent и xrdb...
------- Comment #1 From 2007-02-24 16:09:31 -------
Я сравнил /etc/X11/Xsession и /etc/xdg/xfce4/xinitrc, и не считаю что апстрим
занимается большим велосипедостроением, чем прочие. У меня все работает и если
не будет более серьезных претензий к /etc/xdg/xfce4/xinitrc, то закрою багу как
INVALID
------- Comment #2 From 2007-02-24 17:49:45 -------
1. Xsession к этому времени уже отработал
2. Содержимое ~/.Xdefaults в xrdb отсутствует после старта xfce
------- Comment #3 From 2007-02-24 18:12:35 -------
У меня ~/.Xdefaults присутсвует, что я делаю не так?
------- Comment #4 From 2007-02-24 18:25:05 -------
У меня тоже.  Тем не менее aterm в непотребном виде запускается пока не сделаю
xrdb -merge .Xdefaults ...

Впрочем, я уже снёс xfce и его дальнейшая судьба меня больше не интересует.
------- Comment #5 From 2007-02-25 04:26:34 -------
JFYI, несовместимость /etc/xdg/xfce4/xinitrc с /etc/X11/Xsession (если таковая
имеется, я не смотрел) - это blocker.
------- Comment #6 From 2007-02-25 11:49:33 -------
Я не готов сказать что там полная совместимость, но в части xrdb там более
расширеный набор импортируемых настроек, т.е. кроме того что импортируют
обычно,
добавляется также $XDG_CONFIG_HOME/xfce4/Xft.xrdb

Сам по себе /etc/xdg/xfce4/xinitrc вызывается обычно из /etc/X11/Xsession и
кроме прочего поднимает dbus. А вот когда стартуют xfce4 из runlevel 3, тогда
отсутствие скрипта подобного /etc/xdg/xfce4/xinitrc у других WM/DE блокер для
них, а не для xfce.
------- Comment #7 From 2007-03-11 21:36:19 -------
Один только этот фрагмент однозначно blocker:

# create temp file for X resources
XRESOURCES="/tmp/xrdb-$UID.$$"

# Has to go prior to merging Xft.xrdb, as its the "Defaults" file
test -r $HOME/.Xdefaults && cat $HOME/.Xdefaults >> $XRESOURCES
------- Comment #8 From 2007-03-11 21:43:13 -------
# ~/.Xresources contains overrides to the above
test -r $HOME/.Xresources && cat $HOME/.Xresources >> $XRESOURCES

# load all X resources
xrdb -nocpp -merge $XRESOURCES

Лично у меня в ~/.Xresources есть, например, #if HEIGHT >= 1200, поэтому -nocpp
тут никак не годится.
------- Comment #9 From 2007-03-11 21:56:28 -------
Т.е. без nocpp нормально импортиться? Просто имеющиеся у меня ресурсы для urxvt
без проблем попадают в итоговый вариант xrdb и мне не на чем проверить
репорт...
Я его и не закрывал по тому что не мог ни подтвердить, ни опровергнуть...
------- Comment #10 From 2007-09-24 21:43:58 -------
(In reply to comment #6)
> Сам по себе /etc/xdg/xfce4/xinitrc вызывается обычно из /etc/X11/Xsession и
> кроме прочего поднимает dbus. А вот когда стартуют xfce4 из runlevel 3, тогда
> отсутствие скрипта подобного /etc/xdg/xfce4/xinitrc у других WM/DE блокер для
> них, а не для xfce.

Когда любой WM/DE стартует из runlevel 3, /etc/X11/Xsession к этому времени уже
отработал.  И dbus тоже стартовал.

Делать какие-то решения на базе Xfce с такими стартовыми скриптами - это блокер
для всего дистрибутива.
------- Comment #11 From 2007-09-26 10:24:51 -------
Пожалуй что :-(
------- Comment #12 From 2007-10-23 15:39:10 -------
Читаем внимательно скрипт:
if test x"$DBUS_SESSION_BUS_ADDRESS" = x""; then
        dbuslaunch=`which dbus-launch`
        if test x"$dbuslaunch" != x"" -a x"$dbuslaunch" != x"no"; then
                eval `$dbuslaunch --sh-syntax --exit-with-session`
        fi
fi

Dbus-launch вызывается только в случае, если предыдущий запущен криво, без
выставления переменных окружения. У нас в /etc/X11/profile.d/dbus-daemon.sh все
запускается нормально, значит эта часть скрипта НИКОГДА не будет отрабатывать.
Тоже мне блокер нашли...
------- Comment #13 From 2007-10-23 16:11:09 -------
Ну почти.

/etc/X11/Xsession:

# Merge in defaults and keymaps.
MergeResources /etc/X11/Xresources "$HOME/.Xresources" "$HOME/.Xdefaults"

scripts/xinitrc:

XRESOURCES=$HOME/.Xdefaults
...
XRESOURCES="$XRESOURCES $BASEDIR/Xft.xrdb"
...
XRESOURCES="$XRESOURCES $BASEDIR/Xcursor.xrdb"
...
XRESOURCES="$XRESOURCES $HOME/.Xresources"

В результате настройки из .Xdefaults перекрываются непонятно чем.  .Xdefaults
надо грузить последним.
------- Comment #14 From 2007-10-23 16:37:01 -------
Я могу согласиться, что ~/.Xresources нужно переставить до ~/.Xdefaults для
единообразия с общесистемной настройкой, но... Xft.xrdb и Xcursor.xrdb должны
грузиться последними, иначе пользователи будут несколько разочарованы, тем, что
в менеджере настроек они могут поклацать мышкой, а в реальности ничего не
измениться, потому что они умудрились откуда-то скачать "кривой" .Xdefaults или
.Xresources.

Итак, итог:
Переставляю местами .Xdefaults и .Xresources, после чего закрываем эту багу?
------- Comment #15 From 2007-10-23 16:48:08 -------
Да.  Именно переставить.  Мне нравится мой кривой .Xdefaults и я не хочу чтобы
какая-то сволочь меняла мои любимые настройки.

Кстати, советую ещё раз заглянуть в /etc/X11/Xsession на тему поддержки
локале-зависимых .X*s...
------- Comment #16 From 2007-10-23 17:02:37 -------
Локолезависимые посмотрю позже, к следующей версии xfce, а пока отправил alt2 с
переставленным порядком .Xdefaults и .Xresources.

Еще бы почитать где-нибудь, каков правильный порядок чтения этих файлов, т.е.
кто является базовой настройкой, а кто override к ней...