LINUX.ORG.RU

Wine 6.15

 


1

2

Вышла новая версия Wine 6.15. Wine – прослойка совместимости приложений для Windows с POSIX-совместимыми ОС, транслирующая вызовы Windows API в вызовы POSIX на лету вместо эмуляции логики Windows вроде виртуальной машины. С момента выпуска версии 6.14 было закрыто 49 отчётов об ошибках и внесено 390 изменений.

Наиболее важные изменения:

  • библиотека WinSock (WS2_32) преобразована в формат PE (Portable Executable) (работы велись еще с версии 6.12);
  • в реестре реализована поддержка счётчиков HKEY_PERFORMANCE_DATA, связанных с производительностью;
  • в NTDLL добавлены новые преобразователи (thunk) 32-разрядных системных вызовов в 64-разрядные;
  • улучшена обработка состояния в C runtime при вычислениях с плавающей запятой;
  • продолжена подготовка для реализации интерфейса системных вызовов GDI (работа ведётся ещё с версии 6.13).

Исправления в ПО:

  • игры: Resident Evil 4, Civilization 4, Cryostasis: Sleep of Reason, Split/Second Velocity, Gas Guzzlers Combat Carnage, Zafehouse: Diaries, Heroes of Might and Magic 3, The Park, DARQ, HITMAN 2 (2018), Little Nightmares, Metal Gear Solid V: The Phantom Pain;
  • другое: The Bat!, Windows Movie Maker 2.0, File Encryption 2.1, Windows Double Explorer, Visual Studio 6, eMbedded Visual C++ 4.0, SQL Server Management Studio Express 2008 R2, AOMEI Backupper, Google-Earth, MRAC Anti-Cheat (My.Com Warface), DELL BIOS flash utility, BattlEye Anti-Cheat, Waves VST Plugins, DTS Master Audio Suite, ChrisPC Free VPN Connection 2.x, Wavelab 6, Logos Bible Software, Counter:Side, GreedFall 1.0.5684, iBall Soft AP Manager, PlayOnline Viewer, Steam, Native Access 1.13.3, Toon Boom Harmony 15.

>>> OpenNet

>>> Подробности

★★

Проверено: xaizek ()

Я правильно понимаю текущий use case Wine, который заключается в запуске Легаси софта, который раньше запускался под Windows XP, 98, ME, а сейчас в десятке его уже не запустить?

Я надеюсь сам Wine можно запустить под Windows 10?

Если это не так, то оно не нужно.

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

А можете наконец объяснить суть мема с опеннетом?

Расскажу тебе легенду. Опеннет и ЛОР это два брата которые родились практический в один день. Опеннет взял наставнечество и ведал всем опенсорсом, а ЛОР как скромный брат взял только линукс и всё что его касается. Опеннет гостил и своего брата в землях, со временем он стал частым гостем и забирал у своего скромного брата все новости. Скромный брат молчал, так как был скромен. Однажды богатства ЛОРа ушли, прошлая слава ушла в небытие. ЛОР вспомнил про богатства брата. И вот однажды ЛОР взял без спроса новость о линуксе у своего брата, в котором специализировался и опеннет стал гневится. Он стал посылать некоторых своих анонимов возмущаться его действиями. Анонимы которые были посланы ЛОРом забыли те дни, когда опеннет был постоянным гостем скромного брата. Такова легенда. Хладен был мой сказ!

anonymous ()
Ответ на: комментарий от Vochatrak-az-ezm

Он там как бе есть, уважаемый пользователь криокамеры.

Но смысл моего выброса заключается в том, что это возможно только используя API Linux через WSL

GP ()
Последнее исправление: GP (всего исправлений: 1)

The Bat!

Аж прям ностальгией дохнуло из 90-х. Оно что, до сих пор живое и используется?!

Steam

Да в общем-то враньё. Браузер стимовский уже делает вид что работает, но отваливается/перезапускается постоянно (в частности при выводе мыши из его области вверх в меню store/library/etc).

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

Оно что, до сих пор живое и используется?!

Не поверишь, но во многих госконторах его только и признают. Мол, "тхундэрбирд", по их мнению, какой-то каличный.

Лично наблюдал оное в Департаменте здравоохранения Житомира.

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

Ну, начнём с основ.

Как ты знаешь, у каждого пользователя есть домашний каталог (ну, или папка, или директория, как кому удобнее). У меня например это /home/boss. Кстати, чтобы было удобнее воспринимать, для таких данных я буду использовать LORCODE [inline][/inline]: /home/boss

Когда ты только установил свою систему, в твоём домашнем каталоге будут только папки Desktop и Documents. Хотя в новых линуксах там, кажется, много папок: всякие там Музыка, Изображения... Да и вместо Desktop там сейчас «Рабочий стол», хотя в моей старой системе этот каталог был без локализации.

Так вот, а если открыть диспетчер файлов, посмотреть на свои две директории «Desktop» и «Documents»... В каждом файловом менеджере есть меню «Файл, Правка, Вид» и так далее. Если нажать «Вид > Показывать скрытые файлы и каталоги», то ты увидишь, что в домашней директории у тебя полно скрытых файлов!

Ааа! Как их много!!!

Стойте! Подождите... А разве в линуксе есть атрибут «скрытый файл»? Так... Открываем файловый менеджер, смотрим параметры файлов... Вот они, и атрибута «скрытый» среди них нет. Это в каком-нибудь FAT32 и NTFS такой атрибут есть.

Так как же мы получили много скрытых файлов и папок, если такого атрибута нет? Оказывается, что если имя файла начинается с точки, то файловые менеджеры в Linux относятся к ним, как к скрытым.

Ладно, с этим разобрались. Зачем я вообще попросил посмотреть скрытые файлы? Оказывается, многие программы хранят свои настройки в директории /home/имя_пользователя/.название программы. Например вы можете найти каталог /home/имя_пользователя/.mozilla, в котором хранятся файлы данных Firefox.

Раньше, примерно до 2012 года, каждая программа создавала такую директорию. Потом оказалось, что таких каталогов создаётся слишком много. Теперь программы хранят свои настройки в /home/имя_пользователя/.config/Название программы, свой кеш в /home/имя_пользователя/.cache/Название программы, и прочие настройки в /home/имя_пользователя/.local/share/Имя программы.

Нас больше всего интересует папка /home/имя_пользователя/.wine. В ней Wine хранит директорию drive_c, в которой находится виртуальный диск C:, используемый виртуальной виндой.

Да, к слову, большинство программ хранит в своих каталогах лишь *.conf файлы с настройками, но некоторые программы хранят в своих каталогах прям данные, которые могут занимать гигабайты. К таким программам относятся, например, браузер, стим, и Wine.

Если вы не видите директорию .wine в своём домашнем каталоге, значит её необходимо создать. И нет, не правой кнопкой по пустому месту, выбрав пункт меню «Создать папку», а запустить любое приложение Windows. Тогда папка создастся автоматически.

Например так:

cd /mnt/windows/Windows/System32/
wine sol.exe

Лично я всегда создаю новый префикс Wine при помощи команды winecfg. Хотя на самом деле разницы нет, и запуск любой программы (по типу вышеупомянутого wine sol.exe) создаст ровно тот же WINEPREFIX, что и команда winecfg.

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

Ага, то есть WINEPREFIX создавать не надо, да? А про параметр WINEARCH=win32 ты тоже не слышал? Что если я хочу создать особый WINEPREFIX? Создавать WINEPREFIX вручную может быть полезно.

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

Что если я хочу создать особый

во-первых, это уже пост-фактум смена твоя показаний

во-вторых, если оСоБыЙ, то сам знаешь, как его получить

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

Продолжаем.

winecfg, это программа настройки эмулятора Wine. Я называю его эмулятором просто для удобства, хотя это не эмулятор, а транслятор одна из реализаций WinAPI. Ну, и транслятор тоже, да. Например трансляция вызовов Direct3D в вызовы OpenGL.

Посмотри winecfg, посмотри что там можно делать. Например там можно включить виртуальный рабочий стол. В этом случае, все программы для Windows будут работать в окне. Хм, окна в окне, как мило.

Дальше. Что делать, если зависло приложение Windows, и не хочет выключаться? Команда wineserver -killall. Можно ввести её в терминал. Можно нажать «Пуск > Выполнить...» и ввести её туда. Кстати, «Выполнить...» можно вызвать сочетанием клавиш Alt-F2. Можно даже нажать Ctrl-Alt-F1, и выполнить её в виртуальном терминале (если зависшее приложение не даёт добраться до кнопки Пуск). Обратно вернуться по Ctrl-Alt-F7.

Дальше. Что если какая-то программа не работает? Идёшь на сайт http://appdb.winehq.org/ и ищешь инструкцию по запуску. Бывает, что программа работает сразу, а бывает, что надо что-то настраивать. Впрочем, бывает, что программа не работает вообще.

Дальше. Есть такая штука, называется winetricks. Это сторонняя, помогающая устанавливать те или иные программы под Wine.

Удачи!

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

А всё потому что ты не дал мне отредактировать коммент, ответив на него слишком быстро! Я хотел добавить скриншоты winecfg и виртуальных рабочих столов. А ещё рассказать про Wine Staging, Proton, Crossover, DXVK, vkd3d, Gallium Nine, PlayOnLinux, Lutris, и про PPA-репозитории с новыми версиями Wine. Но ты меня перебил и всё испортил!

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

Ладно. Ждём, когда nanosecond ответит на мой коммент. Может быть, задаст наводящие вопросы. И я ему расскажу, как запускать героев 3 под Wine.

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

Что делать, если зависло приложение Windows, и не хочет выключаться? Команда wineserver -killall.

Точнее, просто wineserver -k. Однако -krandomword тоже будет работать, так как значение имеет только первая буква.

Kron4ek ★★★★★ ()
Последнее исправление: Kron4ek (всего исправлений: 1)

Запускаем Героев 3 на примере немного старого дистрибутива Debian 7

Да, я знаю, что уже вышел 10-й Дебиан, а 11-й готовится к выпуску. Я просто люблю старый Linux, и мне доставляет удовольствие его использование. И да, ни в коем случае так не делаете, это плохие советы.

Для начала, редактируем «sources.list», переключившись на архивный репозиторий (пакеты перенесли в архив), а также разрешаем репозиторий DEB-SRC. Обновляем репозитории.

Скачиваем исходники последнего Wine. Накладываем на него патчи Staging командой:

bash ./wine-staging-6.15/patches/patchinstall.sh --all

Теперь выполняем:

./configure --prefix=/usr --disable-tests

Естественно, будет куча неудовлетворённых зависимостей. Например «Не найдены библиотеки X11, поддержка графики будет отключена».

Фиксится командой:

sudo apt-get build-dep wine

Основные зависимости установлены, но ./configure всё ещё выдаёт несколько строк «компонент xxx не найден, поддержка yyy будет отключена». Это всё потому, что wine из репозитория довольно старый (версия 1.4), и с тех пор было добавлено много новых возможностей. build-dep не станет устанавливать ни ffmpeg-4.0, ни SDL2.

Удовлетворяем зависимости вручную. Доустанавливаем ocl-icd-dev, чтобы собрать Wine с поддержкой OpenCL. Доустанавливаем libgtk3-dev, чтобы добавить поддержку мимикрирования приложений Windows под приложения GTK3. Доустанавливаем libva-dev, чтобы добавить поддержку аппаратного ускорения видео DXVA.

Смотря на остальные сообщения ./configure, доустанавливаем и всё остальное. От чего-то придётся отказаться (например от ffmpeg-4.0, потому что его нет в репозитории), а что-то не нужно, например поддержка HAL. HAL был заменён на libudev в 2010 году, и поддержка HAL в Wine нужна в случае, если у вас старый Linux, либо для пользователей FreeBSD и Solaris, в которых нет libudev, и всё ещё используется HAL. Также для пользователей этих операционных систем будет полезна поддержка OSSv4, тогда как для пользователей Linux она скорее всего будет не нужна, и компилировать с ней не нужно. Хотя конечно, можно положить файл soundcard.h в /usr/include/linux, выдрав его из DEB-ки с oss4, но вряд ли это вам понадобится.

Компилируем:

make -j3

Параметр -jN задаёт количество потоков. В моём случае, это 3 потока. У меня двухъядерный процессор. Для компиляции советую использовать количество потоков, равное количеству ядер, плюс один.

Всё, мы скомпилировали.

Теперь устанавливаем при помощи sudo make install, либо создаём пакет при помощи sudo checkinstall.

Генерируем новый WINEPREFIX:

winecfg

Если у нас 64-битная система, то делаем так:

WINEARCH=win32 winecfg

Потому что нафиг 64 бит!

На вопрос «Устанавливать ли Wine Gecko?» отвечаем согласием, а на вопрос «Устанавливать ли Wine Mono» отвечаем отказом. В winecfg выставляем версию Windows XP, потому что нафиг нужны более новые версии винды.

Теперь скачиваем последний Winetricks и копируем его в /usr/bin:

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
sudo mv winetricks /usr/bin/
sudo chmod +x /usr/bin/winetricks

Устанавливаем .NET 2.0: winetricks dotnet20, устанавливаем DirectX: winetricks directx9. Это должно увеличить совместимость с играми.

Теперь монтируем образ игры Герои 3 в CDemu, или вставляем диск в физический CD-ROM. Устанавливаем и играем!

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 7)

а на вопрос «Устанавливать ли Wine Mono» отвечаем отказом.

Лучше установить. Mono вполне полезен и позволяет обойтись без Net Framework в некоторых случаях. Например, я через Mono запускал лаунчер для Skyrim Enderal Forgotten Stories, Settings Editor для Star Wars KotOR и многие прочие лаунчеры от разных игр, а в ином случае пришлось бы Net Framework ставить.

winetricks directx9

Полный рантайм лучше не ставить, ломает некоторые игры. Впрочем, современный winetricks все равно не даст его установить. Обычно достаточно установить d3dx9, иногда еще и xact нужен.

Kron4ek ★★★★★ ()
Последнее исправление: Kron4ek (всего исправлений: 1)

компилять нафига? особенно нубам

Потому что нафиг 64 бит!

тупак, более-менее свежие игры и софт 64битные

Устанавливаем .NET 2.0 … устанавливаем DirectX

плохая практика в таком виде в общем случае

anonymous ()

Кстати, вместо компиляции можно через контейнер Wine запускать. Я так запускал свежий Wine-TkG, собранный на Arch, на Ubuntu 12.04. Ядро, правда, пришлось вручную обновить.

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

>> Потому что нафиг 64 бит!
> тупак, более-менее свежие игры и софт 64битные

Но ведь новые игры не нужны. Там повесточка, там Press X to win, там «пройди по коридору, убей трёх врагов, посмотри катсцену, goto 1». Только игры времён Win98 и WinXP нужны.

Хотите новые игры - ставьте Crossover или Proton

>> Устанавливаем .NET 2.0 … устанавливаем DirectX
> плохая практика в таком виде в общем случае

Ну, не знаю, 13 лет уже так делаю, мне норм. За 13 лет в привычный рецепт добавились только патчи Wine Staging. Хотя зачем они мне, если я играю только в Сталкер и Героев?

Ну так тупак, да, я поэтому в начале текста написал, что это плохие советы, и что так не нужно делать.

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

> Кстати, вместо компиляции можно через контейнер Wine запускать. Я так запускал свежий Wine-TkG, собранный на Arch, на Ubuntu 12.04. Ядро, правда, пришлось вручную обновить.

Нифига себе. Это как? Docker? chroot?

Хм, ядро обновлять вручную... Ну, я в стародавние времена поставил в свой Debian 7 - ядро из Debian 8, пересобрав DEB-SRC пакет. Новые боюсь ставить, так как там защита от Спектра сожрёт производительность. А у меня и так двухъядерный атлон из 2009, ему новые линуксы с замедляющими патчами противопоказаны

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

Кстати, вместо компиляции можно через контейнер Wine запускать. Я так запускал свежий Wine-TkG, собранный на Arch, на Ubuntu 12.04. Ядро, правда, пришлось вручную обновить.

Нифига себе. Это как? Docker? chroot?

Можно chroot, можно Docker, а можно bubblewrap. У меня даже проект есть специально для этого - Conty.

Однако если у тебя пропритерный драйвер Nvidia, то придется внутрь контейнера класть библиотеки Nvidia версии идентичной версии модуля ядра, что не очень удобно. Зато с графикой Intel, AMD и nouveau (одним словом, с Mesa) проблем быть вообще не должно.

Хм, ядро обновлять вручную… Ну, я в стародавние времена поставил в свой Debian 7 - ядро из Debian 8, пересобрав DEB-SRC пакет. Новые боюсь ставить, так как там защита от Спектра сожрёт производительность. А у меня и так двухъядерный атлон из 2009, ему новые линуксы с замедляющими патчами противопоказаны

А я просто взял готовый пакет с kernel.ubuntu.com, да и установил его на Ubuntu 12.04. Dpkg выдал ошибки, но это неважно, файлы все равно установились. Я потом просто сгенерировал initramfs и загрузился в новое ядро.

Ядро ведь ни от чего не зависит. По идее, можно хоть готовое ядро из Arch взять и вручную положить в /boot, а модули в /lib/modules на любом дистрибутиве. Я еще, помню, брал ядро из Debian и запускал его на Arch - вполне себе работало.

p.s. Ядро пришлось обновить, потому что бинарники, собранные в Arch, требуют как минимум ядро версии 4.4. Такие дела.

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

Там повесточка, там Press X to win

давай ты не будешь загонять всё под одну гребёнку

там «пройди по коридору, убей трёх врагов, посмотри катсцену, goto 1

неплохо описал значительное число игр времён Win98 и WinXP

мне норм

не тянет на технический аргумент, совобенно с

играю только в Сталкер и Героев

отсутствием достаточной выборки и опыта

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

Однажды я обновил ядро в SLES 11 SP4. Было ядро 3.0. Я скомпилировал 4.9. Причём не ванильное, а с официального репозитория суси.

На драйвере Intel спотыкнулось, ошибка компиляции. Проблема была в том, что компилятор gcc-4.3 чего-то не знал. В системе также был компилятор gcc-4.8, я скомпилировал им, и всё заработало.

Начал ставить драйвер NVIDIA, и инсталлятор меня предупредил, что ядро скомпилировано с компилятором GCC 4.8, а драйвер NVIDIA я пытаюсь скомпилировать с компилятором GCC 4.3. Поэтому драйвер скомпилируется, но не будет работать. Так и произошло. В общем, когда ядро скомпилировано слишком новым компилятором, то дополнительные модули ядра ты не скомпилируешь, пока не установишь компилятор минимум той же версии.

P.S. Баг с драйвером Intel я зарепортил, но его закрыли. Не знаю почему. То ли написали, что исправили в ядре 4.10, а бэкпортировать в 4.9 не будут. Не помню.

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