Rpm-build-extra-targets
Версия от 17:27, 25 июля 2023; IvanMelnikov (обсуждение | вклад)
rpm-build-extra-targets -- пакет с базовыми макросами RPM, позволяющий собирать пакеты под архитектуры, не поддерживаемые текущим хостом.
Зачем
Это в первую очередь полезно при тестировании:
- кросс-компиляция ядер, загрузчиков, firmware прямо в пакеты для удобства тестирования спека (особенно секций %files) и самих ядер (пакеты удобнее раскидать по нескольким тестовым системам, кучи бинарников)
- gear-rpm --commit -bp --target [...] позволяет гораздо быстрее проверить архитектурно-специфичные костыли из секции %prep.
Речи о сборке какого-то софта и публикации собранных так пакетов в каких-то репозиторях не идёт.
Пример: кросс-сборка OpenSBI
OpenSBI -- firmware для многих систем на архитектуре RISC-V, предоставляющаяя стандартный для этой платформы Sipervisor Binary Interface (SBI). Собирать её нужно, естественно, под riscv64, но мы можем запаковать RPM и на x86_64. Поставим нужные пакеты:
sudo apt-get install gcc-riscv64-linux-gnu rpm-build-extra-targets ccache
Возьмём gear-репозиторий с git.alt:
git clone https://git.altlinux.org/people/iv/packages/opensbi.git -o iv -b sisyphus cd opensbi
Попросим покросскомпилировать:
export CROSS_COMPILE='ccache riscv64-linux-gnu-' ARCH=riscv
Объясним rpm, что хотим пакеты для архитектуры riscv64:
gear-rpm -bp --verbose --target=riscv64