> это было бы так, если бы во всех дистрибутивах были одинаковые версии
> библиотек, и присутствовали все необходимые.Это всё кристально ясно, но работать-то приходится с тем, что есть.
> старый ffmpeg - не работает заявленная поддержка форматов (TAK, opus).
Выхлоп в configure +/- About, отвалилось, едем дальше. Для меня как для пользователя было бы неважно совсем, например.
> до версии 2.0 вообще приходилось использовать конкретный снапшот из svn [...]
Потому и упомянул ffmpeg как один из наиболее феерических примеров.
> в других дистрах, наоборот, библиотеки слишком новые.
Это значит ровно то, что в следующих версиях "многих дистров" также следует ожидать "слишком новые библиотеки". Из того, на что недавно натыкался -- апстрим graphviz переработал основную библиотеку некоторое время тому, сознательно сломав API (пришлось). Некоторые из линкующихся со старой библиотекой уже доработали на использование новой (т.е. умеют и так, и этак), но даже три года спустя ещё не все.
> поддерживать все многообразие разных (в т.ч. сломанных) версий библиотек,
> и обходить глабли в каждой из них, задача просто неподъемная.
Есть подход, у буржуев называемый graceful degradation: стараться не разваливаться сразу при отпадании кусков. А в остальном стоит не баррикадироваться в своём углу, но стараться наладить взаимодействие как с разработчиками библиотек, так и с дистрибутивами.
> с непредсказуемыми версиями библиотек, можно невзначай попортить юзерам файлы из
> собранной за десятилетия музыкальной коллекции.
Как, deadbeef пишет в читаемые файлы? Или это про те же теги?
> вобщем, я даже не знаю, что тут еще добавить.
Если вдруг будет интересно, могу попытаться рассказать о том, что обычно ожидают майнтейнеры и пользователи дистрибутивов (субъективно и не будучи таковым применительно к deadbeef -- хотя он в альте есть, как и его пользователи). И о том, как в качестве апстрима доводилось взаимодействовать со своими апстримами. В том числе отсюда родилась такая метрика проектов -- вменяемость ;-)
Также вынужден отметить то, что у проектов наших разработчиков (либо с их преимущественным участием) нередко начисто отсутствует культура релизов, которые заменяются именно что "бери svn". Что само по себе более-менее понятно, если каждый коммит улучшает продукт, но может усложнить разбор багов (т.к. рост разнообразия ситуаций, которые труднее закэшировать в голове -- аналог того, про что в теме о Baikal рассказывал User294'у про заводское производство vs R&D). Ну, лесная дорога без километровых столбиков.
Совсем клиника начинается тогда, когда имеется N или вообще K библиотек, образующих стек с плавающим API, собрать который по инструкциям годичной давности получается разве что с багами годичной давности, а обновлять инструкции никто из тех, кто "в теме", особо не чешется. Наиболее жёсткий пример из пока виденных -- rigsofrods, на нём я сломался.