Предисловие
Почему Linux многие не любят? У каждого найдётся множество уникальных причин, однако самая настоящая боль происходит именно тогда, когда ломают что ранее прекрасно работало...
Раньше я уже писал статью про поломанный драйвер LLVMpipe в составе MESA, похоже пришло время написать и про знаменитый Wine, что позволяет запускать Windows приложения в среде Linux.
Хотя, если честно, само существование и необходимость в таких "костылях" уже говорит многое о несостоятельности операционной системы и её экосистемы: когда тащить софт из другой экосистемы (Windows) это необходимость, а не просто какая-то забава... Ну да ладно, не будем отходить от темы Wine.
Wine...
С чего всё началось в данном случае? Я работал над новой версией дистрибутива Chimbalix Linux, и вдруг задумался, а не обновить ли Wine? Ну и начал обновлять локальный репозиторий, долго скачивал новые пакеты, часа полтора несмотря на оптоволоконный доступ к интернету, но это же вечно убогие репозитории для Linux, разве можно ожидать от них нормальной работы?
Потом обновил Wine Staging с 8.12 до последней версии 9.9, и он просто не хотел нормально работать! В итоге пакетным менеджером Synaptic пытался откатить версию Wine до более старой, однако получил лишь проблемы с зависимостями, как бы не форсировал версии пакетов пакетным менеджером - всё работает через задницу в Linux:
Собственно ничего нового, если бы все нормально работало - многие не плевались бы от вечно дряхлого "пингвина"...
В итоге мне пришлось плясать с бубном через терминал вручную ковыряя пакеты, ибо пакетный менеджер Synaptic "выполняет" свои прямые обязанности через задницу:
Методом перебора была выявлена рабочая версия Wine Staging 9.3, однако она несовместима с префиксами от старых версий Wine, и просто уходит в бесконечный цикл обновления префикса запуская процесс msiexec, что висит мёртвым грузом в памяти системы и крайне неприятно:
Однако если пересоздать префикс - Wine Staging версии 9.3 кое-как работает, но начиная с версии 9.4 не помогает даже пересозданный префикс, увы...
Поломали что работало...
Так как сейчас у меня установлен и настроен префикс Wine Staging 9.3, сразу же наглядно продемонстрирую тот факт, что целевое приложение работает:
Делаю резервную копию папку префикса чтобы Wine создал всё заново (не хочу опять всё настраивать после экспериментов для статьи):
Далее обновляю Wine до версии 9.4, всё вручную, ибо линуксоидные пакетные менеджеры говно, говорю как есть:
Осталось только запустить игру, ждём пока будет подготовлен новый префикс:
Префикс подготовился, всё вроде как продвинулось, но закрылось само по себе, даже не появилось окно игрового лаунчера:
Ради интереса запускаю более простую игру, лаунчер запустился, значит Wine работает, но при попытке запустить саму игру получаю "Unhandled exception code c0000005":
Окей, устанавливаю Wine Staging версии 9.9, последнюю доступную, так же удаляю папку префикса чтобы она создалась заново и не случилось никаких конфликтов:
Снова лаунчер простой игры запустился, что в принципе было ожидаемо:
Проверяю саму игру и она работает! Хотя для меня это не удивительно, ибо проверяя версии с 9.3 по 9.8 выяснилось, что именно версия 9.4 оказалась наиболее "переломной", когда разработчики всё основательно сломали...
Окей, а как там гораздо более сложная игра? А никак, всё поломано и не работает:
Возвращаю назад Wine Staging версии 9.3:
Запускаю простую игру и она падает, значит сам Wine поломали ещё до версии 9.3, и без помощи DXVK он не способен запустить даже простую игру:
Однако без проблем работает лаунчер игры Genshin Impact, который не работал с Wine 9.4 и новее, это говорит о том, что Wine ломают намеренно с каждой новой версией:
Откатываю версию до 9.1:
И всё прекрасно работает:
Уже за кадром проверил и версию 9.2, она точно так же прекрасно работает, как и 9.1, а это значит лишь одно - начиная с версии 9.3 включительно, разработчики Wine начали заниматься вандализмом по отношению к приложению...
-
Заключение
Что сказать... Линуксоиды опять поломали что раньше нормально работало, в первый раз что ли? А потом думают - почему никто не хочет пользоваться линуксами, наверное просто злые корпорации принуждают всех использовать Mac OS и Windows (сарказм)...
А ведь я уже молчу про автоматически обновления, которыми линуксы порой любят злоупотреблять, вот так, залетит новая версия Wine через автоматическое обновление и танцуйте с бубном как хотите, С - стабильность, Н - надёжность.
Ну а если смотреть по спискам обновлений, сразу бросается в глаза как разработчики удаляют какой-то "устаревший" функционал, браво, удалили, теперь игры не работают!
Прямо как AMD со своими вечно кривыми и проблемными драйверами, повырезали расширения OpenGL:
А потом у людей вот такое дерьмо в играх происходит, спасибо AMD за "качественные" драйверы:
Итого имеем, что разработчики Wine начиная с версии 9.3 включительно, просто берут и ломают всё, а когда починят неизвестно, и починят ли вообще. На данный момент последняя адекватная версия, это Wine Staging 9.2, именно её встрою в новую версию дистрибутива Chimbalix Linux если не обнаружу новых проблем.
Хотя стоит заметить, в новых версиях Wine исправили косяк с потерей фокуса на приложении при переключении или сворачивании окон, теперь одним костылём меньше будет, что был необходим для исправления косяка, и вполне возможно исправили некоторые другие косяки, которые не были мной замечены особо, однако когда ломают то что нормально работало, ну это чистое мракобесие...
И никто не знает, когда линуксы действительно станут пригодными для нормального использования, пока в них постоянно что-то ломают оставляя пользователя с новыми проблемами.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.