LINUX.ORG.RU

Бинарные сборки Wine

 ,


13

8

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

Чтобы предотвратить это неудобство, я с некоторых пор делаю бинарные сборки Wine и выкладываю их для всех желающих. Располагаются они здесь. Когда задумывал это, то вдохновлялся примером PlayOnLinux, которые тоже делают собственные бинарные сборки Wine, но обладают некоторыми недостатками:

  1. Выходят нерегулярно.
  2. Скрипта, который их формирует, я так и не нашел.
  3. Мне нужна еще версия с патчами Staging, а они не для каждой версии их делают.

Поэтому я несколько месяцев назад написал свой собственный скрипт, c помощью которого можно скомпиллировать любую версию Wine, в том числе на выбор, со staging патчами или без.

Преимущество бинарных сборок:

  1. Идут практически любом современном дистрибутиве. За абсолютно все дистрибутивы любой давности ручаться не буду, сам проверял только на паре дистрибутивов, поэтому хотелось бы чтобы вы их протестировали и подтвердили или опровергли это утверждение.
  2. Для использования не требуется ничего, установленных зависимостей для Wine. Сам системный Wine при этом даже необязателен.
  3. Можно иметь хоть с десяток разных версий Wine для разных программ и с легкостью переключаться между ними без каких-то переустановок. Чтобы установить бинарную сборку, достаточно лишь ее распаковать в любой каталог.

В процессе создания бинарных сборок я целенаправленно не применял никаких сторонних патчей. В версии с патчами Staging присутствует только набор патчей из Staging и больше ничего. В ванильной версии не применяются никакие патчи. Даже несмотря на то, что начиная с какой-то версии из ветки 1.9.x Wine стало невозможно скомпиллировать с помощью gcc 5.3.0 и патч довольно оперативно написали, я предпочел откатиться до gcc 4.8.5, чем применять этот патч. Сомневающимся могу порекомендовать скачать мой скрипт, собрать Wine самому с помощью gcc 4.8.5 и после чего сравнить свой хэш получившегося архива с моим.

Для чего эта тема? Во-первых, для информации. Может кому-нибудь пригодятся мои бинарные сборки, мне будет приятно. И еще протестируйте их пожалуйста на своих разных дистрибутивах разных версий, чтобы посмотреть, действительно ли они дистронезависимые или нет?

И еще раз ссылки:

  1. Сайт с бинарными сборками Wine
  2. Скрипт, по которому они формируются

P.S. Перед использованием скрипта отредактируйте его и измените содержимое переменных WORKDIR (каталог, в котором будет компиллироваться Wine) и GCC_VERSION (версия GCC, которая применяется для сборки) в соответствии со своими предпочтениями. А то там сейчас стоят мои значения.

Обновлено 04.02.17:
В связи с тем, что после выхода Wine 2.0 сменилась нумерация промежуточных версий (промежуточная версия теперь 2.1 и все исходники будут лежать в папке 2.x и еще они сменили формат архива), то скрипт для сборки разделен. Скрипт wine_build_1.9.x-2.0.sh - для сборки всех предыдущих версий Wine до версии 2.0 включительно и wine_build-2.x.sh - для всех версий после 2.0. Да, это неудобно. Но это лучше, чем если бы в одном скрипте писать кучу костылей по парсингу мажорной версии, минорной версии и их какого-то совмещения. Размер скрипта значительно увеличился бы, он стал бы трудночитаемым и вряд ли это решение было бы совсем безглючным.

Обновлено 25.10.18:
Я закрываю формирование бинарных сборок в связи с тем, что Wine в последнее время оброс сторонними патчсетами, вроде esync, да и самому мне это все надоело. К тому же появился Steam Play. Все предыдущие сборки вы можете скачать отсюда, но новые формироваться вряд ли будут. Там же вы найдете скрипт, с помощью которого можно будет сделать свою собственную сборку.

Обновлено 24.10.20:
В силу некоторых причин пришлось снова расчехлить мой скрипт для формирования бинарных сборок. Только сами бинарные сборки я выкладывать не буду: мне и влом, и места на хостинге жалко, да и проблемы совместимости с разными версиями glibc в разных дистрибутивах.
Вместо этого я адаптировал сам скрипт согласно современным реалиям и выложил его на GitHub - пользуйтесь, если хотите. Скрипт пришлось практически полностью переписать, убрать костыли, а заодно и поддержку сборки из git. Для сборки из git надо писать отдельный скрипт, поскольку там другие пути и сценарии распаковки и сборки. Может займусь этим когда-нибудь.

★★★★★

Последнее исправление: Rinaldus (всего исправлений: 5)
27 августа 2017 г.

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

t500s ★★★
()
Ответ на: комментарий от Kron4ek

для новой версии

гугле пустота - неужли до меня не было желающих http://www.doskaua.com.ua

#!/bin/bash

wget http://wine.rinaldus.ru/vanilla/1.9/wine-$1-vanilla.tar.gz tar xvf wine-$1-vanilla.tar.gz rm wine-latest-vanilla # удаляем симлинк от старой версии ln -s /media/Other/Programs/wine/wine-$1-vanilla /media/Other/Programs/wine/wine-latest-vanilla # делаем симлинк для новой версии rm wine-$1-vanilla.tar.gz ls -la wine-latest-vanilla # можно обойтись без этой строчки, но я предпочитаю убедиться, что все сделано правильно спасибо просто супер.

mailist
()
11 февраля 2018 г.

Приветствую всех людей, использующих openSUSE 11.4!

- Ситуация критическая. Я хочу чтобы вы выслали все вертолёты!
- Что, сразу два?

Это - последняя хорошая версия openSUSE! Потом начались Systemd, GNOME 3...

«Это просто ужасно! Каждый следующий день я зарабатываю меньше денег, чем вчера!»

«Ну так радуйтесь! Каждый день вы зарабатываете больше денег, чем завтра!»

Сейчас вроде Leap 42.2 - хороший релиз. Да, с гномом3 и Systemd. Но по сравнению с 42.3 и 15, это хороший релиз.

Так о чём я? Я тут собрал Wine для openSUSE 11.4 и SLES 11:

https://download.opensuse.org/repositories/home:/linux4humans:/wine-staging/o...

Налетайте! В основном репозитории Emulators:Wine поддержка 11.4 не дропнута, но сборка фейлится. Я завёл баги в баг-трекере, скоро пофиксят в апстриме.

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 2)
4 июня 2018 г.

Как видно, новые сборки перестали появляться. Если кому нужно, я начал собирать свои сборки. Можно скачать здесь.

Там есть и чисто 32-битные сборки, и сборки для 64-бит, и 64-бит без multilib.

Собираю на Debian Jessie, поэтому сборки будут работать и на дистрибутивах с устаревшим GLIBC.

Kron4ek ★★★★★
()
Ответ на: комментарий от genryRar

а подскажи плиз, esync версии включают в себя staging патчи как в лютрисе?

Да. Те сборки, что находятся в каталоге esync-staging-pba, включают в себя esync, staging и pba патчи. Сборки в корне каталога esync собираются без staging и pba патчей.

Kron4ek ★★★★★
()
Ответ на: комментарий от Kron4ek

благодарю. просто pba в какойто игруле у меня рендеринг ломал. если можно - еще бы отдельно esync+staging, извиняюсь за наглость. так, навсякий случай. если нельзя, ну и ладно, всеравно это здоровски!

а поделись личным опытом, esync гдето у тебя заметный прирост дал? я проверил в 4 батле и в вахе онлайн - ну батла итак летает и очевидно разницы я не увидел, тормоза при компиляции шейдеров само собой остались. а в вахе тоже при компиляции все тупит (хотя там и dx9 и вообще я хз возможно это и не шейдеры, но симптомы теже) но в массовом замесе вродебы фпс поднялся на 5-7 но я не уверен, возможно плацебо

genryRar ★★
()
Ответ на: комментарий от genryRar

благодарю. просто pba в какойто игруле у меня рендеринг ломал

Его можно отключить переменной PBA_DISABLE=1, у меня он тоже рендеринг ломал (в Witcher 3, например). Другое дело, если даже с этой переменной рендеринг будет сломан.

еще бы отдельно esync+staging

Так-то можно, просто не хочу плодить слишком много сборок.

а поделись личным опытом, esync гдето у тебя заметный прирост дал?

Ни в одной игре разницы не заметил. Однако мой опыт особой ценности не представляет, так как у меня интеграшка (HD 630) вместо видеокарты и у меня все игры в нее упираются, а не в процессор. Но разница есть в тяжелых играх, если судить по всяким комментариям и бенчмаркам. Вот, к примеру, бенчмарк GTA V (хотя, ты, наверное, уже видел) - прирост 20 кадров в некоторых сценах. По сути, esync должен снижать нагрузку на процессор во всех играх (где-то больше, где-то меньше), так что он в любом случае полезен.

Kron4ek ★★★★★
()
Ответ на: комментарий от Kron4ek

Его можно отключить переменной PBA_DISABLE=1, у меня он тоже рендеринг ломал (в Witcher 3, например).

упс... вот это я тупанул)) вопрос снимается

Вот, к примеру, бенчмарк GTA V (хотя, ты, наверное, уже видел) - прирост 20 кадров в некоторых сценах. По сути, esync должен снижать нагрузку на процессор во всех играх (где-то больше, где-то меньше), так что он в любом случае полезен.

благодарю, нет не видел. гугл мне вообще по запросу «wine esync test» выдает дегустацию вин и переходники какието :)

genryRar ★★
()
Ответ на: комментарий от genryRar

интересный список патчей, в том числе фиксы для фолача (и даже фикс дерганной мыши)

Я из этого репозитория использую патчи - те, что относятся к esync.

кстати а esync-staging-pba ты больше не собираешь?

С pba выдает ошибку на этапе компиляции, разбираться пока не стал. Потом, наверное, снова попробую.

Kron4ek ★★★★★
()

Я закрываю формирование бинарных сборок в связи с тем, что Wine в последнее время оброс сторонними патчсетами, вроде esync, да и самому мне это все надоело. К тому же появился Steam Play. Все предыдущие сборки вы можете скачать отсюда, но новые формироваться вряд ли будут. Там же вы найдете скрипт, с помощью которого можно будет сделать свою собственную сборку.

Rinaldus ★★★★★
() автор топика
4 января 2019 г.
21 мая 2020 г.
Ответ на: комментарий от genryRar

https://github.com/Tk-Glitch/PKGBUILDS/releases

Вот здесь в релизах есть.

Но ещё лучше использовать эти

https://github.com/GloriousEggroll/proton-ge-custom/releases

Они на основе тех что выше + всякие патчи сверху. Правда они под Steam заточены.

Те что первые, там есть как proton версии, так и wine.

shpinog ★★★★
()
Ответ на: комментарий от ZenitharChampion

Попыталась скачать wine по вашей команде. Но терминал выдал ошибку E: Unable to fetch some archives, maybe run apt-get update or try with –fix-missing? E: Failed to process build dependencies Возможно ли с ней что-то сделать? Еще при попытке открыть playonlinux программа просит установить python. Хотя он у меня установлен. Возможно виной этому старенькая версия debian 7.

Inna20
()
Ответ на: комментарий от Inna20

В своём комменте я писал, что на убунте всё-таки можно пересобрать Wine из исходников. Например apt-get build-dep название_программы устанавливает зависимости для сборки, которые можно будет удалить после сборки. Это избавляет от массы проблем при компиляции вручную. Таких проблем, как «в середине компиляции стало ругаться на отсутствие какого-то файла в /usr/include» или «configure не нашёл что-то в системе».

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от Kron4ek

Т.е чтобы собранный Wine запустился у максимально широкой аудитории, его надо собирать минимум в CentOS 6. Там сейчас glibc 2.12, судя по distrowatch.com. Я сравнил с другими популярными дистрибутивами (Ubuntu, Debian), эта версия была примерно в 2010-2011 году. Это примерно уровень Debian 7 или Ubuntu 11.04. Т.е это уже достаточно старые дистрибутивы, у которых поддержка уже истекает и мало кто на них сидит. Значит обхват аудитории будет практически максимальным: у всех уже более новые версии glibc. Проблема в том, что мне накладно арендовать еще одну VDS с CentOS 6. Может быть bootstrap поможет для того, чтобы оставаться в рамках моей текущей VDS или что-нибудь в этом роде?

Albert12
()
Ответ на: комментарий от Inna20

старенькая версия debian 7

Зачем? Такая старая система это боль и унижение, особенно если ты там игры запускаешь под вайном. И одно обновление вайна ничего не даст, нужны новые драйвера.

anonymous
()
Ответ на: комментарий от Albert12

Может быть bootstrap поможет для того, чтобы оставаться в рамках моей текущей VDS или что-нибудь в этом роде?

Да, bootstrap + chroot или контейнер какой-нибудь.

Kron4ek ★★★★★
()
Ответ на: комментарий от anonymous

Проприетарный драйвер NVIDIA позволяет поюзать Vulkan в том числе и в старых дистрибутивах Linux. Но не в случае с Wheezy. Для запуска Steam нужен минимум Glibc 2.15, а там 2.14.

ZenitharChampion ★★★★★
()
15 августа 2020 г.