MozillaBuild
Материал из ALT Linux Wiki
Содержание |
Сборка 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 - Это информационный бран. Смотрите ниже.
Upstream-бранчи:
comm-central - Branch для Thunderbird, Sunbird и Seamonkey [1].
mozilla-central - Branch для Xulrunner и Firefox [2].
releases/comm-1.9.1 - Branch разработки для Thunderbird 3, SeaMonkey 2 и Sunbird 1 with Gecko 1.9.1 [3].
releases/mozilla-1.9.1 - Branch for Gecko-1.9.1 based products [4].
releases/mozilla-1.9.2 - Branch for Gecko-1.9.2 based products [5].
Бранчи для сборки пакетов:
rpms/firefox-2.x - firefox-2*-alt* packages. (Не поддерживается)
rpms/firefox-3.0.x - firefox-3.0*-alt* packages. (Не поддерживается)
rpms/firefox-3.1.x - firefox-3.1*-alt* packages. (Поддерживается)
Depends: releases/mozilla-1.9.1
rpms/firefox-3.6.x - firefox-3.6*-alt* packages. (Поддерживается)
Depends: releases/mozilla-1.9.2
rpms/sunbird-0.9 - sunbird-0.9*-alt* packages. (Устарел)
rpms/thunderbird-2.x - thunderbird-2*-alt* packages. (Не поддерживается)
rpms/thunderbird-3.0.x - thunderbird-3.0*-alt* packages. (Поддерживается)
Depends: releases/comm-1.9.1
Depends: releases/mozilla-1.9.1
rpms/xulrunner-1.9.0 - xulrunner-1.9.0*-alt* packages. (Не поддерживается)
rpms/xulrunner-1.9.1 - xulrunner-1.9.1*-alt* packages. (Поддерживается)
Depends: releases/mozilla-1.9.1
Build information:
To build the current version, use the mozilla-build utility. This utility
will receive the needed packages and build them in the right order.
Usage: 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