LINUX.ORG.RU

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

 ,


13

7

Часто бывает так, что в очередной минорной версии разработчики 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)

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

Вопрос не по теме, заранее извиняюсь за это

Что нужно сделать чтобы я мог написать вопрос на форуме? Я не знаю к кому обратиться и как это уточнить, так что простите что тут пишу)

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

Вопрос не по теме, заранее извиняюсь за это

Что нужно сделать чтобы я мог написать вопрос на форуме? Я не знаю к кому обратиться и как это уточнить, так что простите что тут пишу)

Pasha_ua
()
24 октября 2020 г.

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

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

Он компилит без поддержки mingw, а мне теперь обязательно нужно с поддержкой. Он правда сказал, что пересоберет и перезальет, но зачем я буду заставлять человека адаптироваться под свои специфические запросы? Я отредактировал свой скрипт, который у меня 2 года был заброшен и валялся в недрах компа, собрал с его помощью последнюю версию wine в соответствии со своими нуждами и выложил скрипт как альтернативу, чтоб было. Мне ведь не жалко. Мало ли кому он еще пригодится, а я порадуюсь, что внес свой посильный вклад в развитие open source.

Rinaldus ★★★★★
() автор топика
Последнее исправление: Rinaldus (всего исправлений: 1)
24 декабря 2020 г.
4 октября 2021 г.

Ну, скажем проще - бинарные сборки в репах Mint 20.1 и Mint 20.2 нормально не работают. Проверено. Но, поскольку у меня Half-Life 2, нативный, все эпизоды, включая первый, общим обьёмом на все 8 гигабайт - было бы странно их зря терять.

Видите-ли какая штука, без установки wine - не хватает десятка библиотек i386. И где их отыскать я не имею понятия. А вот после - хватает маленькой методички, на пару строк apt-get.

Собственно, установил с официального winehq, без особых проблем и вопросов. Разве что, в менюшке ярлыков не появилось, с консоли конфигуратор запускал. Но тут опять-же, свои приколы. Как запустил в первый раз - запустилась установка Gecko и Mono, подождите пока установится.

Собственно, что у меня работает: Diablo 2 +LOD, Postal 2 Complete, Return To Castle Wolfenstein, Red alert 2 Yuri's Revenge, Serious Sam HD The second Encounter. Ну, как минимум. HL2, как уже упоминалось, нативный, весь.

Ха! Чуть не забыл - Red Faction. Это ж классика, кто помнит. На моей памяти - впервые полностью разрушаемые уровни. При желании, гранатомётом можно дыру в соседний проделать. Такого раньше, да и впоследствии, никогда не встречалось на моей памяти.

cadaber ★★
()
Последнее исправление: cadaber (всего исправлений: 2)
30 января 2022 г.
Ответ на: комментарий от cadaber

Ха! Чуть не забыл - Red Faction. Это ж классика, кто помнит. На моей памяти - впервые полностью разрушаемые уровни. При желании, гранатомётом можно дыру в соседний проделать. Такого раньше, да и впоследствии, никогда не встречалось на моей памяти.

Не везде там можно дыры проделать и не все разрушается, но тем не менее, таки действительно нередко можно дыру продолбать куда-нибудь. Подобного больше даже не упомню. Многие control упоминают как пример возможностей раздолбать что-нибудь, но не дотягивает он и осень сильно. Стены там вообще нельзя ломать. Похоже геометрию сейчас жёстко рисуют очень.

anonymous
()
22 мая 2022 г.

Товарищ Rinaldus конечно хорошее дело делает. Даёшь больше wine-ов, хороших и разных.

Но у меня, как и у многих думаю, всё прекрасно получается с winehq. По работе запускаю через оный МИС МедОфис, ПАРУС 8 Бюджет и ещё кое-что по мелочи. Хотя, если учесть импортозамещение во все поля, то ли ещё будет.

Себе и знакомцам, вне работы, только игрульки.
Из старенького (тяготею к олдскульным игрушкам) Age of Wonders все части, Disciples все части, Etherlords 2, Imperial Glory, все стратегии от GSC Game World, BlitzKrieg все части.
Из более свежего World of tanks да Sims 4, знакомцам. Мне неинтересны.

Osomatsu-kun
()
Ответ на: комментарий от Osomatsu-kun

Репозитрий в архиве, проект не разрабатывается (упс, автор просто пеиенес код на свой gitea, хорошее решение). Сейчас этим @Kron4ek занимается

https://github.com/Kron4ek/Wine-Builds

IIIypuk ★★★
()
Последнее исправление: IIIypuk (всего исправлений: 1)
3 августа 2022 г.
Ответ на: комментарий от Krassirthu

Вы лингвофил или сочувствующий?

А нравится мне буква ё по нескольким причинам. Одна из таких причин. Это, одна из n-ого количества, буква дореволюционной орфографии, которую большевики не репрессировали)

Видимо, не зря Лихачев Дмитрий Сергеевич «коротал» свои 5 лет на Соловках.

Osomatsu-kun
()
14 апреля 2023 г.
22 мая 2023 г.