MozillaBuild: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
м (→‎Философия: (орфография))
Строка 14: Строка 14:
Эти бранчи именуются также как называются репозитории на hg.mozilla.org.
Эти бранчи именуются также как называются репозитории на hg.mozilla.org.


Бранчи для опакечивания стоятся на одном или более апстримных бранчах.
Бранчи для опакечивания строятся на одном или более апстримных бранчах.
Например rpms/thunderbird-3.1.x создан из releases/comm-1.9.2 и в него
Например rpms/thunderbird-3.1.x создан из releases/comm-1.9.2 и в него
мерджится releases/mozilla-1.9.2 в каталог mozilla/. Эта же
мерджится releases/mozilla-1.9.2 в каталог mozilla/. Эта же

Версия от 16:09, 9 июля 2011

Сборка Mozilla-пакетов

В данном документе будет описываться как собираются пакеты от Mozilla (Firefox, Thunderbird) в ALTLinux. Описание будет идти со слов Legion@, поэтому могут быть выражены не совсем точно.

Философия

Репозиторий mozilla.org.git устроен очень просто. В нём есть два вида бранчей: апстримные и пакетные (бранчи из которых собираются пакеты).

Апстримные бранчи получены путём конвертации апстримных репозиориев (в апстриме не используются бранчи) из mercurial в git. Эти бранчи именуются также как называются репозитории на hg.mozilla.org.

Бранчи для опакечивания строятся на одном или более апстримных бранчах. Например rpms/thunderbird-3.1.x создан из releases/comm-1.9.2 и в него мерджится releases/mozilla-1.9.2 в каталог mozilla/. Эта же последовательность сборки описана в https://developer.mozilla.org/en/Commcentral_source_code_%28Mercurial%29

Остальные пакеты устроены проще т.к. основываются на одном апстримном репозитории.

Информация по бранчам

master - Это информационный бран. Смотрите ниже.<br\>

Upstream-бранчи:<br\>

comm-central - Branch для Thunderbird, Sunbird и Seamonkey [1].<br\> mozilla-central - Branch для Xulrunner и Firefox [2].<br\> releases/comm-1.9.1 - Branch разработки для Thunderbird 3, SeaMonkey 2 и Sunbird 1 with Gecko 1.9.1 [3].<br\> releases/mozilla-1.9.1 - Branch for Gecko-1.9.1 based products [4].<br\> releases/mozilla-1.9.2 - Branch for Gecko-1.9.2 based products [5].<br\>

Бранчи для сборки пакетов:<br\>

rpms/firefox-2.x - firefox-2*-alt* packages. (Не поддерживается)<br\> rpms/firefox-3.0.x - firefox-3.0*-alt* packages. (Не поддерживается)<br\> rpms/firefox-3.1.x - firefox-3.1*-alt* packages. (Поддерживается)<br\> Depends: releases/mozilla-1.9.1<br\> rpms/firefox-3.6.x - firefox-3.6*-alt* packages. (Поддерживается)<br\> Depends: releases/mozilla-1.9.2<br\> rpms/sunbird-0.9 - sunbird-0.9*-alt* packages. (Устарел)<br\> rpms/thunderbird-2.x - thunderbird-2*-alt* packages. (Не поддерживается)<br\> rpms/thunderbird-3.0.x - thunderbird-3.0*-alt* packages. (Поддерживается)<br\> Depends: releases/comm-1.9.1<br\> Depends: releases/mozilla-1.9.1<br\> rpms/xulrunner-1.9.0 - xulrunner-1.9.0*-alt* packages. (Не поддерживается)<br\> rpms/xulrunner-1.9.1 - xulrunner-1.9.1*-alt* packages. (Поддерживается)<br\> Depends: releases/mozilla-1.9.1<br\>

Информация для сборки:<br\>

Чтобы собрать текущую версию проекта используйте утилиту mozilla-build. Эта утилита склонирует локально необходимые репозитории пакетов и собирёт их в нужном порядке.<br\>

Используйте: mozilla-build <firefox|thunderbird|xulrunner|all>

Секреты spec-файла

В спеке есть такой параметр:

 %set_tbird_ciddir noarch B274D460-4DF9-454c-AC69-CA71398D7498

Алексей сказал так:

 Алексей Гладков: это id расширения. оно берётся из install.rdf
 Алексей Гладков: в install.rdf оно только одно
 Алексей Гладков: при установке расширения создаётся каталог с тем же именем
 Алексей Гладков: иногда там uuid, иногда что-то осмысленное

Для того, чтобы правильно определить id можно воспользоваться утилитой installrdf.sh, которая входит в пакет rpm-build-mozilla.org:

 $ installrdf.sh /usr/lib/thunderbird/extensions/\{e2fda1a4-762b-4020-b5ad-a41df1933103\}/install.rdf -i
 id	{e2fda1a4-762b-4020-b5ad-a41df1933103}
 name	Lightning
 version	1.0b3pre
 description	An integrated calendar for Thunderbird
 developer	Build ID: 20110124070537
 creator	Mozilla Calendar Project
 homepageURL	http://www.mozilla.org/projects/calendar/releases/lightning1.0b3pre.html
 $ installrdf.sh /usr/lib/thunderbird/extensions/\{e2fda1a4-762b-4020-b5ad-a41df1933103\}/install.rdf -t thunderbird
 thunderbird >= 3.1
 thunderbird < 3.2

Собираем Thunderbird

 git checkout rpms/thunderbird-3.1.x;
 git merge releases/comm-1.9.2
 [возможно сделать некоторые действия для subtree]
 git merge -s subtree releases/mozilla-1.9.2

Теперь подключаем необходимый бранч и запускаем сборку пакета:

gear-hsh -v --commit --target=хххх

Собираем Thunderbird-ru

Основной репозиторий находится тут. Свежую русификацию лучше брать на mozilla-russia.org. Ну а дальше все обычно. Обновляем, правим спек и собираем пакет.