Rpm-build-extra-targets

Материал из ALT Linux Wiki
Версия от 17:27, 25 июля 2023; IvanMelnikov (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


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