kde-4.2.0 (4.x) - проблемы распределенной сборки (distcc+cmake)

Всем доброго времени суток!

Я тут уже писал о странных проблемах сборки kde-4.x
http://www.gentoo.ru/node/13565

C kde-4.2.0 столкнулся с тем же. Немного покопал и выяснил вот что: я использую distcc для ускорения процесса компиляции, и проблемы возникают из-за связки distcc+cmake, и отчасти из-за большого количества потоков компиляции. У меня в сети есть несколько мощных хостов с двух- четырех- ядерными процессорами, которые частенько простаивают, и я этим пользуюсь. Сразу скажу, что версии gcc на всех хостах одинаковые, и все системы на них - x86_64.

Что нарыл:
1. Если используется обычный путь (configure+make), то во время configure все действия выполняются локальным компилятором. Это медленно, но правильно. Во время make применяется distcc, и если у него не получается скомпилить удаленно, то он повторяет то же локально.
2. Если используется cmake - то distcc применяется как во время configure, так и во время make.

Что в результате - хоть архитектуры и gcc на всех хостах одинаковые, но набор ПО и библиотек на них несколько различается. В частности, ни на одном из мощных хостов нет X, kde и пр. (и никогда не будет). Теперь - идет процесс configure, и получилось так, что на такую-то проверку выпала удаленная компиляция. Если проверяется то, чего на удаленном хосте нет - ответ будет 'no'. Дальше - если 'no' не является критичным для собираемого - оно соберется без проверяемой фичи, что есть в корне неправильно и вполне может повлечь за собой глюки в дальнейшем. Если является критичным - вылет emerge c ошибкой. И это очень поверхностно рассмотренные последствия.
При выполнении make distcc ведет себя адекватно - если не выходит скомпилить удаленно - пытается локально.

Есть ли среди уважаемых участников форума люди, знающие cmake? Собственно вопрос: как заставить cmake выполнять configure ТОЛЬКО используя локальный компилятор? Я не смог выяснить ничего по этой теме.

И еще одно: рыл по теме переключения из графического экрана X в консоль по Ctrl+Alt+F[n]. Суть такова: У меня были собраны kde-3.5.9 и kde-4.1.4. Из kde3 по указанной комбинации все работало четко. Из kde4 - никак. Т.е. - просто не реагирует на указанную комбинацию. Грохнул kde3 и kde4, сделал emerge --depclean --deep, revdep-rebuild, потом emerge -uDN world, потом опять revdep-rebuild. Потом поставил kde-4.2.0. Не работает эта комбинация, хоть тресни! Ctrl+Alt+Backspace - работает. Если запустить xorgcfg - из него по Ctrl+Alt+F[n] переключение в консоль нормальное, т.е. - проблема не в иксах, а именно в kde.
Может, кто-то может посоветовать, что с этим делать? В гугле не нашел ничего, хотя вопросов таких задают немало.

Кстати, вот еще один глупый

Кстати, вот еще один глупый вопрос: как можно заставить kde4 быть полностью русским, чтобы не менять глобальные переменные LC_ ?
У меня kde4 становится полностью русским ТОЛЬКО, если я устанавливаю LC_MESSAGES="ru_RU.KOI8-R". Если так, как мне нужно, т.е. ="POSIX", kde4 получается русско-английским вперемешку.
Дело в том, что мне совсем не нужно, чтобы система в текстовых консолях говорила по-русски - не привык я к такому. С kde3 все было нормально, LC_MESSAGES="POSIX", и все по русски в графике, а в тексте - как и положено, на английском.

Проще изменить отдельно для shell'а, IMHO

alexpro написал(а):
Кстати, вот еще один глупый вопрос: как можно заставить kde4 быть полностью русским, чтобы не менять глобальные переменные LC_ ?
<...>
Дело в том, что мне совсем не нужно, чтобы система в текстовых консолях говорила по-русски ...

Может проще выставить глобальную русификацию, а для shell'а, через его конфиги (например, для bash=/etc/bash/bashrc) указать другую?

Я сделал так: в .xinitrc

Я сделал так: в .xinitrc прописал export LC_MESSAGES="ru_RU.KOI8-R" и все заработало. Только все равно есть грабли (которых не было до того, как я снес предыдущую установку kde-4.2). Все везде правильно, только в меню в разделе "Компьютер" все содержимое написано вопросами... И в dolphin, в меню слева, где указаны основные локации - тоже. Что-то непонятно... Один глюк победил - вылез другой.
Где же шамана найти?

CC=distcc

Тоже приверженец распределенной сборки.. Ибо чудесная штука :)

Но вот именно со сборкой kde4.2 столкунулся с затыком: если в make.conf прописан CC=distcc - система стабильно не желает ничего собирать с cmake >= 2.6.0

Так что пишем туда CC=gcc (кстати сборка в данном случае все равно будет распределенной).

PS сам понимаю - запостил полуочевидные вещи, но вот мне пригодилось, может кому еще понадобится.

Да пребудет с тобой великий Linux.

Не надо изменять CC

Jam666 написал(а):
Но вот именно со сборкой kde4.2 столкунулся с затыком: если в make.conf прописан CC=distcc - система стабильно не желает ничего собирать с cmake >= 2.6.0
Так что пишем туда CC=gcc (кстати сборка в данном случае все равно будет распределенной).

Непонятны причины изменения "CC"?
Для использования distcc надо в makde.conf добавить:

MAKEOPTS="-j7" #количество хостов*2+1.
DISTCC_DIR="/tmp/.distcc"
FEATURES="distcc"

и никаких принудительных изменений "CC" и "CXX"

По поводу переключения по

По поводу переключения по Ctrl+Alt+F[n] разобрался радикально.
Поставил минимум USE флагов, как для системы без X и мультимедиа. Грохнул kde и все, что связано с иксами, и сами иксы. Потом вернул предыдущие USE на место и пересобрал kde-meta. На это ушло ~10 часов. После сборки переключение по Ctrl+Alt+F[n] заработало. Это, конечно, не метод, но другого выхода не оставалось. Так я и не понял, что же за грабли были с этой комбинацией.
По второму разу сборка прошла без единой ошибки (а собиралось абсолютно все: kde-meta я ставил на голую систему, т.е. - он потянул за собой все зависимости, включая иксы, библиотеки, драйвера и пр.).
Точно нужно искать шамана, чтобы с бубном попрыгал...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".