Welcome! Log In Create A New Profile

Advanced

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

Konstantin Pavlov
January 24, 2023 05:08PM
Здравствуйте, Alex,

On 24/01/2023 12:31 PM, Alex Kubyshkin wrote:
> Добрый день, Константин!
>
> Спасибо за оперативный ответ!
>
>>> Вопрос возник в связи с тем, что при попытке использовать его для многих 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'а работать будет.
> Да, действительно, на r23 модуль собирается. Но r22 вышел 2.5 года назад всего, что по меркам сурового энтерпрайза фактически "вчера". Хотелось бы конечно, обратной совместимости, тем более в данном случае там совсем немного - путь в rpmbuild передается неверный.

Вероятно, чуть больше - там как минимум changelog'и еще не создаются на
первый взгляд.

>> Патчи приветствуются.
> А патчи как отсылать? Может у вас github/gitlab/bitbucket какой есть для простоты процесса?

Можно аттачами в nginx-packaging@f5.com - это адрес рассылки со мной и
моими коллегами, которые занимаются пакетированием продуктов NGINX/NGINX
Plus в F5.

К сожалению, репозитория в git-формате для pkg-oss нет (как и другого
web ui вместо hgweb), и не хотелось бы делать зеркало без лишней надобности.

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

Документации в виде текстового описания, увы, нет.

В целом схема примерно такая: в pkg-oss/rpm/SPECS есть Makefile, который
умеет запускать сборку поддерживаемых пакетов - nginx или модулей.  В
случае модулей используются темплейт spec-файла
(nginx-plus-module.spec.in) и наполнение его контентом через нехитрый
sed.  В этом же Makefile через include добавляются Makefile'ы для
модулей (Makefile.module-rtmp например), в которых заданы основные
параметры вроде тарболла с исходниками, configure arguments, патчей,
тестов и т.п. сборочной информации.

Для сборки под NGINX Plus достаточно в pkg-oss/rpm/SPECS в бранче для
желаемого релиза (target-plus-rXX, где XX номер релиза) можно сказать
что-то вида:

$ BASE_TARGET=plus MODULE_TARGET=plus make module-rtmp

При этом версия модуля, чексумма, url откуда его качать и т.п. вещи
задаются в pkg-oss/contrib/src/$name/.

В вашем случае, полагаю, будет достаточно держать патчсет с добавлением
rpm/SPECS/Makefile.module-$foo,
contrib/src/$foo/{Makefile,version,SHA512SUMS} и время от времени его
rebase'ить на новые бранчи релизов target-plus-rXX.  Если требуется еще
и писать осмысленные changelog'и для пакетов, то стоит добавить и
docs/nginx-module-$foo.xml по аналогии с уже существующими - на его
основне при сборке будет генерироваться changelog, нативный для пакета
(rpm и debian) и добавляться в пакет.

Хорошего дня,
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

Alex Kubyshkin January 24, 2023 07:42AM

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

Konstantin Pavlov January 24, 2023 02:02PM

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

Alex Kubyshkin January 24, 2023 03:34PM

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

Konstantin Pavlov January 24, 2023 05:08PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 133
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready