webserver-llc / angie

Angie - drop-in replacement for Nginx
https://angie.software/en/
BSD 2-Clause "Simplified" License
1.16k stars 64 forks source link

Angie in FreeBSD official repos #91

Open asyslinux opened 1 month ago

asyslinux commented 1 month ago

Здравствуйте. В FreeBSD в официальных репозиториях до сих пор старенькая версия Angie 1.3.2

[root@srv /home/andrew]# pkg search angie | head -n 1
angie-1.3.2                    Efficient, powerful and scalable reverse proxy and web server

В Ваших репозиториях я вижу новенькая версия. Может раз уже Angie размещен в официальных репозиториях FreeBSD, там тоже обновите? Спасибо.

asyslinux commented 1 month ago

Дополнительно поправьте на сайте инструкцию установки пакетов в FreeBSD:

https://angie.software/en/installation/oss_packages/#install-freebsd-oss

В пункте 3 надо заменить:

 sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
            https://angie.software/keys/angie-signing.gpg

На:

sudo curl -o /usr/local/etc/pkg/angie/angie-signing.rsa \
            https://angie.software/keys/angie-signing.rsa

Спасибо.

VBart commented 1 month ago

В Ваших репозиториях я вижу новенькая версия. Может раз уже Angie размещен в официальных репозиториях FreeBSD, там тоже обновите? Спасибо.

У нас нет прямого доступа к официальным репозиториям FreeBSD. Предложенный патч с обновлением до 1.4.1 пролежал с марта месяца без движения, никто его не подобрал: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277516 И, к сожалению, такая ситуация там повторяется регулярно.

lonerr commented 1 month ago

Здравствуйте. В FreeBSD в официальных репозиториях до сих пор старенькая версия Angie 1.3.2

[root@srv /home/andrew]# pkg search angie | head -n 1
angie-1.3.2                    Efficient, powerful and scalable reverse proxy and web server

В Ваших репозиториях я вижу новенькая версия. Может раз уже Angie размещен в официальных репозиториях FreeBSD, там тоже обновите? Спасибо.

С обновлениями в портах FreeBSD у нас имеются некоторые сложности - как со своевременной реакцией коммитеров, так и с теми подходами, которые приняты к использованию в самой системе сборки.

С первой частью, выше вам показали наглядный пример.

А что касается второй - мы в ряде своих пакетов используем bundling для гарантированного поведения (собираем необходимые зависимости внутри пакета или используем статическую линковку). К сожалению, коммитеры портов это не одобряют и нам приходится переделывать патчи на использование тех зависимостей, которые имеются в портах на текущий момент.

Например: https://cgit.freebsd.org/ports/tree/www/angie-module-lua/Makefile Как видно из GH_TUPLE, мы фиксируем версию модуля, которую считаем актуальной для работы с angie. Но при этом, в USES мы вынужденно используем ту версию luajit-openresty, которую предоставляют порты в текущий момент. До кучи, все осложняется еще и тем, что в RUN_DEPENDS мы ссылаемся на lua-resty-core, а его версия жестко прибивается внутри lua-nginx-module автором модуля. Итоговая конструкция получается весьма хрупкой и разваливающейся в момент, когда в портах luajit-openresty и/или lua-resty-core меняется версия.

В пакетах для своего репозитория мы не стеснены выбором подхода и используем bundling там, где считаем это полезным. Таким образом, еще и нарастает разница между портами, отдаваемыми в официальный репозиторий и используемыми для внутренней сборки, что тоже не выглядит здраво. По этой же причине, часть наших пакетов (например opentelemetry) даже не отправлялась в официальные порты.

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

lonerr commented 1 month ago

Дополнительно поправьте на сайте инструкцию установки пакетов в FreeBSD:

https://angie.software/en/installation/oss_packages/#install-freebsd-oss

В пункте 3 надо заменить:

 sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
            https://angie.software/keys/angie-signing.gpg

На:

sudo curl -o /usr/local/etc/pkg/angie/angie-signing.rsa \
            https://angie.software/keys/angie-signing.rsa

Спасибо.

Да, это опечатка, обязательно поправим, спасибо.

asyslinux commented 1 month ago

Еще вопрос, я поставил angie + модуль brotli и теперь pkg, чтобы я не ставил выдает такое (но так-то всё работает):

Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
Updating angie repository catalogue...
angie repository is up to date.
All repositories are up to date.
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
The following 1 package(s) will be affected (of 0 checked):
lonerr commented 1 month ago

Еще вопрос, я поставил angie + модуль brotli и теперь pkg, чтобы я не ставил выдает такое (но так-то всё работает):

Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
Updating angie repository catalogue...
angie repository is up to date.
All repositories are up to date.
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
pkg: angie-module-brotli: duplicate dependency listing: angie
The following 1 package(s) will be affected (of 0 checked):

Это следствие того, что pkg не очень приспособлен для работы с репозиторием, содержащим нескольких версий одного пакета. В Linux такое в порядке вещей, поэтому и для FreeBSD мы тоже поддерживаем в репозитории несколько версий, а не только последнюю. По нашим наблюдениям, pkg действительно выдает эти предупреждения, но ведет себя корректно.