Хочется запускать rpmbuild указав ему любой --target из теоретически поддерживаемых, например --target aarch64 или --target riscv64 на обычной x86_64 машине. Это в первую очередь полезно при тестировании: * кросс-компиляция ядер, загрузчиков, firmware прямо в пакеты для удобства тестирования спека (особенно секций %files) и самих ядер (пакеты удобнее раскидать по нескольким тестовым системам, кучи бинарников) * gear-rpm --commit -bp --target [...] позволяет гораздо быстрее проверить архитектурно-специфичные костыли из секции %prep. Речи о сборке какого-то софта и публикации собранных так пакетов в каких-то репозиторях не идёт. В апстриме RPM так уже давно можно, а вот у нас попытка собрать пакет под "неподходящуюю" архитектуру заканчивается ошибкой, например: $ rpmbuild --target riscv64 -bp ~/RPM/SPECS/banner.spec Building target platforms: riscv64 Building for target riscv64 warning: Macro %configure not found warning: Macro %make_build not found warning: Macro %make_install not found error: Macro %_man1dir not found error: line 33: %_man1dir/* Дело в том, что rpmbuild содержит базовые макросы только для текущей платфромы, а для остальных платформ их нет. В апстриме генерируют конфигурации для всех известных платформ начиная с коммита https://git.altlinux.org/gears/r/rpm.git?a=commitdiff;h=07ec480c180e4005a629242b8f9f8ab640e3e950 Однако на наш rpmbuild это изменение тривиальным образом не бекпортируется. jqt4@ реализовал в rpmbuild аналогичное изменение, а я его дополнил до следующей серии патчей: https://git.altlinux.org/people/iv/packages/?p=rpm.git;a=commitdiff;h=71a398845fe3b98be77c1582d624dd97fdcc3892 https://git.altlinux.org/people/iv/packages/?p=rpm.git;a=commitdiff;h=292ca9e8d83bb10c4723100810073b1b84ef11fe https://git.altlinux.org/people/iv/packages/?p=rpm.git;a=commitdiff;h=dd927d983441e10af871d173fbecd1f47a733bb6 https://git.altlinux.org/people/iv/packages/?p=rpm.git;a=commitdiff;h=b3a86d4d77b955f6613f68864e7bc67974ef8688 Я проверил, что после применения этих патчей файлы macros, сгенерированные на x86_64 для aarch64, armh (а также armv7l и armv8l), ppc64le и x86_64 ничем не отличаются от таких же файлов, имеющихся сейчас в Сизифе на соответствующих платформах. rpmbuild c этими патчами уже довольно давно используется нами (iv@, jqt4@, nir@, voropaevdmtr@) при подготовке обновлений ядер для mipsel, riscv64 а также для Raspberry Pi. Патчи доказали свою работоспособность и полезность. Прошу рассмотреть и принять.
any thoughts?
rpm-build-extra-targets-0.1-alt1 -> sisyphus: * Tue Jul 25 2023 Ivan A. Melnikov <iv@altlinux> 0.1-alt1 - Initial build as a separate package (ALT #44453).