> В том что опции по умолчанию в портах должны совпадать с опциями
> сборки бинарных пакетов. В противном случае появляется системная неоднородность.
> Никаких разумных причин для которой нет. Единственное объяснение которое приходит в голову
> - по*** мейнтейнеров и прочих участников проекта.Никуя не понял.
Дефолтные опции портов == опции с которыми из них собирают пакеты. Естественно, что не все возможные комбинации совместимы (или тестируются) - при нестандартных хотелках уже желательно немного подключать голову и иметь какое-то представление, что делаешь и зачем.
Я почти два года спокойно сидел в репе "latest" (которая по актуальности и обновляемости софта переплевывает AUR c Федорой: https://repology.org/) c замороженным harfbuzz-2.1.3 кастомной сборки.
До сих пор спокойно использую (принцип "... или ишак или падишах", как c harfbuzz)
freetype2 2.9.1
Installed on : Fri Nov 23 15:19:19 2018 CET
(актуальная версия в репе - freetype2-2.10.4)
Это самые "интересноые" (т.к. имеют большие обратные зависимости) - а так, из 1595 установленных пакетов только 54 "самосбор", в основном из-за отличных от дефолта опций сборки или кастомных патчей или убирания "лишних" зависимостей.
Куда уж тут еще "неоднороднее" ...
> Кроме всего прочего, большая часть прикладного ПО в FreeBSD банально не тестируется
> перед выкладыванием пакетов или добавлением изменений в порты.
> Частая ситуация - порт не собирается.
Это частая байка опеннета, разве что.
Еще раз, медленно и по буквам: бинарные пакеты - это собранные в эти самые пакеты порты.
cd /usr/ports/foo
make package clean
соберет пакет foo.txz в /usr/ports/packages
pkg repo /usr/ports/packages/ - сделает (или обновит) из этого "настоящую" репу, из которой pkg update/upgrade/install сможет брать пакеты.
Далее, сборка оф. пакетов из портов предельно автоматизированна, пакеты _никем_ не выкладываются, а собираются билдсервером из среза портов. И весь смысл портов в том, что их сборка юзверем - это штатная операция, а не ритаул одинокого мейнтейнера раз в полгода, с танцами и бубном как-то чудом собрать бинарный пакет.
При сборке оф. репы, не собирающиеся порты автоматом помечаются как "broken" (и со временем, если их не фиксят, удалаются).
Сейчас таких в портах аж 87
https://www.freshports.org/
Calculated hourly:
Port count 44153
Broken 87
Deprecated 169
Ignore 320
Остальное - проблемы окружения сборки (обычно - излишних наворотов и опций компилятора в make.conf). Не можешь/хочешь/умеешь определить причину - тупо собирай в чистом джейле/poudriere.
А собираемость во всех возиожных 100500 вариациях окружения и комбинаций никто не обещал.
> Вторая частая ситуация - программа при запуске крашится,
Угу-угу. Частота (и причины) - примерно как с первым пунктом. Но мне лень комментировать очередные "предания опеннета о бздах".