Жуткого вида скрипт gnome-session/gnome-wm порождает жёсткие зависимости на compiz-gtk и emerald.
Э... И как же быть? gnome-wm перебирает доступное, мало того - только если поддерживается Composite. Как можно сделать, чтобы этот список не попадал в генерируемые зависимости?
Зависимость появляется не в момент перебора доступных WM, а в момент запуска декоратора, если WM'ом является compiz или beryl. Я перепишу этот скрипт и приаттачу сюда через пару часов.
Created attachment 2094 [details] gnome-session/gnome-wm Ну собсно убрана ересь в разборе параметров, проверки наличия WM, оторвано использование basename. Зависимость на декоратор должна пропасть.
К сути бага, как я понимаю, относится только последний исправленный кусок (начиная с DESORATOR, который на самом деле DECORATOR). Я не уверен, что этот кусок удастся так просто пробить в апстрим, но у нас я его всё равно добавляю (ждите g-s 2.18.3-alt4). Что касается остальных изменений, у меня есть вопросы перед тем как я их тоже попробую довести до апстрима: 1. while :; и далее ненадёжен. Указание аргументов, отличных от --sm-client-id и --default-wm приводит в ветку * и прекращает разбор, хотя следом могут быть и валидные аргументы. Кроме этого, я не знаю, насколько переносим код, использующий эквивалентность отсутствующего $2 и пустого $2 (ситуация с недописанным параметром). 2. Вместо which я бы предпочёл видеть нечто более переносимое (например, type -p). В ALT Linux, если не определять алиасов, он, конечно, работает, но даже в man which есть довольно много предложений по алиасам для which.
1) $2 ненадёжен точно также как и оригинальный вариант. По хорошему тут надо бы начать использовать getopt(1). К тому же остальные параметры больше нигде не используются. 2) Почему-то увидев which бинарником, подумал что это что-то стандартное. Надо перечитать SUSv3. Основная мысль была избавиться от того жуткого перебора $PATH. А ещё, глядя на FIXME, хочется вынести поддержку гномовьих оконых манагеров в отдельные конфиги, типа /etc/X11/wmsession.d.*, но это явно не в этой жизни...
Следите за новостями, 2.18.3-alt4 отправился в путь.
gnome-session-2.24.1-alt1 - опять то же самое.
Погорячился я, конечно, с severity...
gnome-session-2.24.1-alt2