FreeSource : AltLinux/Sisyphus/Ports/arm/Experience

Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.

kas@

* Bootstrap лучше делать на каком-нибудь готовом порту. Очень облегчает
жизнь. Я использовал неофициальный порт Debian ARM EABI. Кстати на MIPS,
что-нибудь типа EABI есть?

* Собирал я так:
– в Debian пересобрал руками пропатченый на тему ARM альтовский rpm,
  поставил и снова пересобрал rpm. уже rpm'ом. Дальнейшая сборка идет
  только  rpm'мом. На этапе Bootstrap'а допустимо подсовывания некоторого
  количества костылей. Первоначально базу rpm'ок собирал по принципу
  "лишь бы собралось".
– пересобрал toolchain (binutils, gcc, glibc), устанавливая в систему 
  по мере сборки. Тулчейну и опциям в к gcc в rpm следует уделить особое
  внимания, что бы с одной стороны полученный дистрибутив запускался 
  на как можно большем количестве железа, с другой – не терял много
  производительности из-за поддержки устаревшего железа. Я для этого
  покопался в Debian'овских рассылках (это ж opensource — у кого хочу 
  у того и тырю:). Ещё нужно проследить, что бы использовались современные
  технологии. Поясню: в случае ARM есть два ABI: EABI (Embeded ABI) 
  и OABI (Old/Obsoleted ABI). Собирать под OABI сейчас не целесообразно,
  ибо со временем он отомрёт. Портов полноразмерных дистрибутивов 
  под EABI не так много (официального пота Debian, к примеру, ещё нету),
  следовательно придёться ходить по минам, но это того стоит ;)
– Пересобрал все не-noarch пакеты требуемые для работы hasher'а. У меня
  получилось примерно 130–150 исходных пакетов. Естественно на этом этапе
  я безжалостно резал BuildRequires, что бы не пересобирать половину xorg 
  и gnome'а ;). Хотя в случае ALT это не так сложно — много где есть
  %if_enabled/%if_with. С Федорой мучались больше.
– Дальше пересобирается всё те же 130–150 пакетов, но теперь в hasher'е
  с разворачиванием всех BuildRequires и фиксированием изменений (вот 
  где git здорово помогает). Итого у меня получилось около 350'ти исходных
  пакетов. Местами, хорошо помучился: например с большими кольцами 
  в BuildRequires. Типа "tetex хотят все, tetex хочет всех" ;)
– После этого уже можно работать с community, для включения изменений 
  в пакеты и включения порта в Sisyphus.

Если есть какие-то вопросы, постараюсь ответить.


Страницы, ссылающиеся на данную: AltLinux/Sisyphus/Ports
AltLinux/Sisyphus/Ports/arm