Rpm-build-extra-targets: различия между версиями
(Новая страница: «{{stub}}») |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{stub}} | {{stub}} | ||
[https://packages.altlinux.org/en/sisyphus/srpms/rpm-build-extra-targets/ rpm-build-extra-targets] -- пакет с базовыми макросами RPM, позволяющий собирать пакеты под архитектуры, не поддерживаемые текущим хостом. | |||
== Зачем == | |||
Это в первую очередь полезно при тестировании: | |||
* кросс-компиляция ядер, загрузчиков, firmware прямо в пакеты для удобства тестирования спека (особенно секций <tt>%files</tt>) и самих ядер (пакеты удобнее раскидать по нескольким тестовым системам, кучи бинарников) | |||
* <tt>gear-rpm --commit -bp --target [...]</tt> позволяет гораздо быстрее проверить архитектурно-специфичные костыли из секции %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 |
Текущая версия от 17:27, 25 июля 2023
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