Неудавшаяся сборка GNOME 2.32 в ArchLinux
Первым делом я убрал из списка запускаемых демонов GDM, чтоб он не мешался. Затем всё по инструкциям на сайте гнома: сделал папку ~/checkout/gnome/ полагая, что вдруг там что-то может быть захардкодено, и в ней забрал jhbuild из репозитария. jhbuild - это инструмент для сборки гнома.
$ git clone git://git.gnome.org/jhbuild
Мне известно два способа сборки jhbuild - с использованием некого скрипта gnome-autogen.sh или без оного (и в результате гном получится без gnome-doc-utils и, как следствие, без всех зависящих от gnome-doc-utils пакетов). Этот скрипт входит в пакет gnome-common и является по сути расширением autotools для среды GNOME. Я зашёл в соседнюю консоль по рутом и принялся доставлять необходимые пакеты: gnome-common, intltool и gnome-doc-utils. Всё, наверное, подойдёт от третьего гнома для сборки второго.
$ cd jhbuildmake install можно делать от ординарного пользователя, всё равно jhbuild гадит в папку ~/.local/bin. Кстати говоря, её надо добавить в PATH. Разные люди делают это по-разному, я добавляю строку PATH=$PATH:/home/axshavan/.local/bin себе в ~/.bashrc.
$ ./autogen.sh
$ make
$ make install
Теперь надо взять конфигурационный файл ~/checkout/gnome/jhbuild/examples/sample.jhbuildrc и скопировать его в ~/.jhbuildrc - это конфигурационный файл, без которого, возможно, ничего не получится. Более того, этот файл надо подредактировать, чтоб jhbuild собирал не ещё один третий гном посвежее имеющегося, а именно старый добрый GNOME 2. Там внутри написано английскими буквами: "если вы хотите собрать старый гном 2.32, раскомментируйте это", что я, собственно, и сделал. Всё прочие строчки я оставил нетронутыми, полагая, что излишняя кастомизация может негативно повлиять на исход эксперимента.
Но теперь нельзя ещё приступать к сборке GNOME 2.32. Надо выполнять команду
$ jhbuild sanitycheck...и до тех пор, пока оно ругается, удовлетворять. Сразу дам совет - если sanitycheck думает, что у вас нет питона (/usr/bin/env: python: No such file or directory), то на самом деле это вовсе не означает, что его у вас нет, просто оно не может найти на него ссылку.
# cd /usr/binКстати говоря, если у вас параллельно установлены сразу python2 и python3, то эту ссылку всё равно надо сделать, потому что если она будет вести не на тот питон, то jhbuild всё равно будет ругаться (ImportError: No module named __builtin__), так как написано на python2:
# ln -s /usr/bin/python2 python
# cd /usr/binИ если это были ещё более-менее очевидные грабли, на которые может наступить только новичок вроде меня, то сообщение об ошибке типа "Could not find DocBook XSL Stylesheets in XML Catalog" означает то, что не хватает пакета docbook-xsl.
# rm python
# ln -s /usr/bin/python2 python
Когда jhbuild sanitycheck перестаёт выдавать сообщения об ошибках, можно приступать к собственно сборке, но перед этим неплохо бы скачать и установить все необходимые зависимости для всех пакетов гнома, чтоб не обнаруживать, что чего-то не хватает, посреди процесса конфигурирования очередного пакета:
jhbuild bootstrapКонечно, гораздо быстрее было бы установить всё необходимое в бинарном виде через pacman, но на сайте гнома, к сожалению, простого списка всего необходимого нет для ArchLinux :( Как минимум понадобится gettext, он собирается довольно долго, а остальное вроде входит в пакет base-devel или собирается быстро.
Можно считать этот пост success ArchLinux JHBuild bootstraping report :)
Но не более того. Было бы слишком самонадеянно полагать, что теперь можно набрать jhbuild build, и к утру следующего дня иметь работоспособный GNOME 2.32 в папке /opt/gnome/. Предстоит ещё долго плясать с бубном и подставлять костыли. Корень всех проблем - пакет glib. Сначала он ругается на отсутствие libtool, хотя последний имеется. Дело в скрипте autogen.sh, в котором вхардкодена проверка на libtool-2.2* (я бы подозревал, что требуется именно 2.2, если бы сообщение об ошибке было не "You must have libtool >= 2.2 installed to compile GLib"), а так, как у меня в системе уже libtool-2.4, то такая проверка не проходит. Я исправил autogen.sh :)
Потом выясняется, что glib собирается версии 2.26.2, и это слишком старая версия для того, чтоб собрался пакет gdk-pixbuf (надо 2.27.2). Я заменил все соответсвующие симлинки в /opt/gnome/lib, /opt/gnome/bin и даже, на всякий случай, в /opt/gnome/share, чтоб они вели на glib из GNOME 3. А в файлах /opt/gnome/lib/pkg-config/glib.pc и /opt/gnome/lib/glib.la исправил номера версий.
Всё равно не прокатило :( На этом я сдался.
Комментариев нет:
Отправить комментарий
Ублюдочный Гугл поломал форму комментариев. Извините.
Примечание. Отправлять комментарии могут только участники этого блога.