Re: pkg-oss - каков статус этого проекта?

Konstantin Pavlov thresh на nginx.com
Вт Янв 24 19:00:54 UTC 2023


Здравствуйте, Alex,

On 24/01/2023 4:41 AM, Alex Kubyshkin wrote:
> Добрый день всем!
>
> Хотелось бы уточнить, насколько активно развивается pkg-oss для билда модулей?

Вполне активно.  С некоторых пор на основе pkg-oss (с небольшими 
изменениями, нерелевантными для самой сборки) мы собираем пакеты модулей 
для коммерческой версии, предварительно проверяя сборку на опенсорсном 
релизе.

> Вопрос возник в связи с тем, что при попытке использовать его для многих docker images, которые по идее должны поддерживаться, возникают различные ошибки при работе скрипта build_module.sh.
>
> Пробовал images:
> almalinux:8
> almalinux:9
> centos:8
> registry.access.redhat.com/ubi8/ubi:8.7
> rockylinux:8
> rockylinux:9
>
> Воспроизвести можно так:
> docker run --rm rockylinux:9 bash -c 'yum install -y wget && wget https://hg.nginx.org/pkg-oss/raw-file/default/build_module.sh && bash build_module.sh -y -r 20 https://github.com/arut/nginx-rtmp-module.git'

Работоспособность build_module.sh из tip проверяем на современных 
релизах, для NGINX Plus R20 система сборки была немного иная. Рекомендую 
чекаутить версию из бранча target-plus-r20 для настолько старого релиза 
- ну или обновиться на современный, для R27-R28 build_module.sh из tip 
default'а работать будет.

docker run --rm rockylinux:8 bash -c 'yum install -y wget sudo && wget 
https://hg.nginx.org/pkg-oss/raw-file/target-plus-r20/build_module.sh && 
bash build_module.sh -y -r 20 https://github.com/arut/nginx-rtmp-module.git'

Ну и с девятой версией rockylinux, вероятно, команда должна быть 
несколько иная, без репозитория EPEL (и, возможно, CRB для некоторых 
случаев) не обойтись.  Но это видимо, не так важно, ибо NGINX Plus для 
RHEL 9 и деривативов мы собираем начиная с R26.

> Так же есть вопросы к быстродействию всего процесса, который весьма нестабилен и некоторые его компоненты избыточны и можно оптимизировать его, сократив время сборки на радость всем девопсам.

Патчи приветствуются.

В целом правильный путь - не использовать build_module.sh, а написать 
Makefile для нужного модуля и использовать его для своих сборок. Это 
позволит кастомизировать свои сборки, например добавлять свои патчи 
поверх исходников модуля.  См. например 
https://hg.nginx.org/pkg-oss/file/tip/rpm/SPECS/Makefile.module-rtmp, но 
работать это будет только для современных релизов.


Подробная информация о списке рассылки nginx-ru