Привет, друзья. Вот уже 2 года, как я свалил с OpenSUSE Evergreen 11.4 на SLE 11. Последняя версия Crossover Wine, которая работает с этой версией дистрибутива, это 14.1.11. Начиная с 15 версии, GUI стало зависеть от GTK 2.24 (в CentOS 6 и SLE 11 - 2.18), а начиная с 17 - от Glibc 2.16 (даже Ubuntu 12.04 «пролетела»). Однако сам Wine разрабатывается с упором на RHEL/CentOS 6: этот дистр - нижняя граница того, что поддерживают.
Мой дистр выпущен примерно в то же время, но на полгода раньше. И вот в Wine 2.21 добавили некий код, который работает с libGnuTLS 2.6 (версия из CentOS 6), но не работает с 2.4 (версия из SLES 11). Был создан баг, и люди разорались в чём дело. Оказывается, в header-файлах версии 2.4 задефайнена переменная «key», а в 2.6 она не задефайнена. В хедерах версии 2.4 эту переменную можно элементарно стереть, и тогда всё собирается. Что сделали разработчики? Они сделали проверку «если libGnuTLS < 2.6, то не собирать поддержку bcrypt».
Потом вышла версия Wine 3.1, в которой улучшили код авторизации KRB5. И опять: в CentOS 6 версия этой библиотеки - 1.8, а в SLE 11 - 1.6. Со старой не собирается. Сегодня проблему решили ещё радикальнее, чем проблему с libGnuTLS: отключив сборку с KRB5 < 1.8 вообще. А я ещё злился на предыдущий раз, но там хотя бы оставили сборку старого, работавшего ранее кода! А тут отключили.
Разве так сложно сделать условие «если libGnuTLS < 2.6, то не дефайнить key, иначе - дефайнить»? Это всё равно, что болит палец - отрезать руку!
А в случае с KRB5:
#if krb5 < 1.8 then
CODE1
#else
CODE2
#endif
Сначала я думал, что этот код будет активно «пилиться», и поэтому просить сделать бэкпорт - преждевременно. Но нет: он уже не менялся 5 версий.
Я платил за годовую подписку на Crossover 3 раза. А компания плюёт на своих покупателей.
// вот бы аналог Devuan для openSUSE? Запрос в обществе есть