Ports/arm/Experience
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. Если есть какие-то вопросы, постараюсь ответить.