LINUX.ORG.RU

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

 ,


12

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. Все предыдущие сборки вы можете скачать отсюда, но новые формироваться вряд ли будут. Там же вы найдете скрипт, с помощью которого можно будет сделать свою собственную сборку.

★★★★★

Я для себя нашел смешной лайфак в свое время. Когда очень не хочется компилять и собирать, я просто захожу в 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 ()

Приветствую всех людей, использующих 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)

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

Там есть и чисто 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 ★★★★★ ()