Сборка xorg-server-1.9.3 из исходников или Закат Солнца вручную

Понадобилась мне самая свежая версия Xorg-сервера (зачем — в другом топике объясню, если всё получится). Даже если бы я пользовался установкой ПО из пакетов — всё равно пришлось бы собирать его вручную, так как пакетов нет пока в природе для основных дистрибутивов. Но я и так сборки из сорцов не чураюсь, а наоборот считаю ее единственно верным решением. Так что попотеть пришлось, но и результат есть.



В чём сложность этого процесса, в результате которого генерится порядка 120 Мб бинарного кода?

Xorg — это не какая-то отдельная программа или библиотека, а целая система. Так что скачать всё единым тарболом не получится. Для того, чтобы получить вчечатление о том, сколько всего входит в xorg, можно заглянуть сюда.

Честно говоря, первый раз я всё это выкачал (wget'ом, вестимо, не в ручную) и начал устанавливать по отдельности: сначала самое важное, а по мере того, как «важное» требовало удовлетворения зависимостей — мелкие тарболы. В конечном итоге xorg-сервер даже успешно сконфигурировался, но… не собрался.

Повертев его и так, и сяк, на манер героини басни Крылова «Мартышка и очки», решил, все-таки, обратиться к профессионалам. Написал в эхоконференцию Xorg, процитировав возникшую ошибку. В тот же день пришел ответ: «У Вас что-то не так с библиотекой pixman». Что с ней может быть не так? Версия старая, больше ничего. Скачал новую версию — она потребовала еще одну зависимость — udev не ниже 138. Обычно такие ситуации тянут за собой еще целую цепочку, но на этот раз больше ничего не понадобилось. Посмотреть что нужно для сборки xorg-server-1.9.3 можно здесь.

Теперь о том, как сэкономить время собирая сам Xorg. Тарболы этой системы можно разделить на группы:

1) Прототипы
2) Библиотеки
3) Шрифты
5) Драйвера
6) Сам сервер

Собирать лучше именно в указанной последовательности. Всё подряд качать не нужно. Для каждой из перечисленных групп есть список (искать здесь), который нужно скормить wget'у примерно следующим образом:

wget -B http://xorg.freedesktop.org/releases/individual/lib/ -i lib-7.6-1.wget


В результате в каталоге для сборки окажется несколько десятков тарболов с расширением *.bz2. Все их следует распаковать единым махом:

ls -1 | grep bz2 | while read f ; do tar xvfj $f ; done


Затем разложить тарболы по подкаталогам в соответствии с вышеприведенным списком и собрать в нужной последовательности. Собирать тоже единым махом (перед сборкой оставить только каталоги, файлы переместить куда-нибудь или удалить):

ls -1 | while read d ; do cd $d ; ./configure --prefix=/usr ; make ; make install ; cd / ; done


Что всё это даст? Во-первых, прирост производительности в GUI-режиме. Он заметен невооруженным глазом. Во-вторых, последние версии xorg радикально перешли на конфигурирование с помощью udev, что дает больше гибкости в настройках. Именно для этого мне всё это и понадобилось.

Первый раз сборка у меня заняла несколько часов и закончилась неудачей. Сегодня же, после тщательной теоретической подготовки — 3 часа, включая написание этой статьи. Ну, а при клонировании на остальные 16 компьютеров будет затрачено не более 5 минут в расчете на одну машину: бинарный результат я сейчас упакую в lzm-модуль, который останется лишь распаковать на местах.
  • +8
  • 28 марта 2011, 14:04
  • yababay

Комментарии (4)

RSS свернуть / развернуть
+
0
сборка xserver довольно часто у меня вызывает трудности ))
avatar

Sergei_T

  • 29 марта 2011, 01:50
+
0
Думаю такой сложный процесс стоит того.
avatar

Markony

  • 29 марта 2011, 13:28
+
0
Что всё это даст? Во-первых, прирост производительности в GUI-режиме. Он заметен невооруженным глазом.

Так за счет чего возросла производительность? Новая версия и оптимизированный под процессор код?
avatar

durman

  • 31 марта 2011, 10:11
+
0
Может еще и потому, что выбросили все прослойки типа hal и сосредоточились на интеграции с udev. Он, кстати, тоже обновленный требуется. Стартовать иксы стали явно быстрее и работать тоже. А вот если еще glibc-2.13, собранную с помощью gcc-4.6 накатить — вообще летать всё будет + GTK свежий.
avatar

yababay

  • 31 марта 2011, 11:11

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.