vk.com

Выберите язык

Команда разработчиков Wine с гордостью сообщает, что стабильный выпуск Wine 6.0 теперь доступен для скачивания

   

  Этот выпуск представляет собой год разработки и более 8 300 индивидуальных изменений. Он содержит большое количество улучшений, которые перечислены в примечаниях к выпуску ниже.

Основные изменения:

- Основные модули в формате PE.
- Бэкэнд Vulkan для WineD3D.
- Поддержка DirectShow и Media Foundation.
- Редизайн текстовой консоли.

Этот выпуск посвящен памяти Кена Томаса, ушедшего из жизни незадолго до Рождества в возрасте 51 год. Кен был невероятно блестящим разработчиком и вдохновителем поддержки Wine в MacOS.

Нам всем не хватает его навыков, его терпения и его черного чувства юмора.

Источник доступен в следующих местах:

https://dl.winehq.org/wine/source/6.0/wine-6.0.tar.xz
http://mirrors.ibiblio.org/wine/source/6.0/wine-6.0.tar.xz

Бинарные пакеты для различных дистрибутивов будут доступны по адресу:

https://www.winehq.org/download

Вы найдете документацию на https://www.winehq.org/documentation.

Вы также можете получить текущий источник прямо из git
репозиторий. Проверьте https://www.winehq.org/git для деталей.

----------------------------------------------------------------

Что нового в Wine 6.0
======================


*** PE модули

- Основные библиотеки DLL, включая NTDLL, KERNEL32, GDI32, USER32 и т. д. построены в формате PE. Это должно помочь ряду приложений в которых присутствует защита от копирования.

- Появился новый механизм для связывания библиотеки Unix с PE. Модуль, чтобы можно было вызывать библиотеки Unix из PE для функций, которые не могут быть обработаны с помощью API Win32.
Эти библиотеки можно найти, заменив расширение файла модуля PE. с .so, например ntdll.dll -> ntdll.so. Они должны быть расположены рядом с PE-файлом на диске.

- Модули Winelib больше не связываются с libwine.so и не требуют его на время выполнения. Это обратно несовместимое изменение, означающее, что модули, созданные с помощью Wine 6.0, не будут работать в более старых версиях Wine.

- Библиотека libwine больше не используется, но по-прежнему предоставляется поддержка запуска модулей Winelib, созданных для более старых версий, однако это устарело и будет удалено в будущих выпусках Wine. Приложения, которые явно вызывают функции libwine, будет необходимо изменить для вызова эквивалентных API Win32 или Unix. Как следствие, заголовок wine/library.h также был удален.

- Модули PE могут быть построены с разделением их отладочной информации на отдельный файл, чтобы уменьшить размер файлов, установленных в префиксе Wine.


*** Direct3D

- Реализован экспериментальный рендерер Vulkan для WineD3D. Для этого требуется библиотека vkd3d-shader для перевода Direct3D шейдеры в шейдеры SPIR-V. В этом выпуске поддержка шейдеров в
средство визуализации Vulkan ограничено шейдерами модели 4 и 5. На практике, которая ограничивает его полезность Direct3D 10 и 11 приложений. Рендерер Vulkan можно включить, установив параметр реестра Direct3D "renderer" значение "vulkan".

- Реализованы следующие функции Direct3D 11:
- Для каждого целевого («независимого») состояния смешивания.
- Смешивание с двумя источниками.
- Маски сэмплов с несколькими выборками сглаживания.
- Еще несколько запросов о возможностях.

- Реализована поддержка множественной выборки Direct3D 9 alpha-to-cover.

- Когда расширение OpenGL EXT_framebuffer_multisample_blit_scaled доступно, масштабируемые операции разрешения нескольких выборок могут происходить как разовая операция.

- Когда расширение ARB_buffer_storage OpenGL доступно, оно будет использоваться для размещения буферных объектов OpenGL. Это может привести к незначительным улучшениям производительности с помощью некоторых приложений и драйверов комбинации.

- База данных видеокарт Direct3D распознает больше видеокарт, и указанные версии драйверов были обновлены.

- Новые или измененные ключи реестра HKEY_CURRENT_USER \ Software \ Wine \ Direct3D:
- «рендерер» (REG_SZ)
API серверной части для таргетинга. Этот существующий параметр имеет дополнительное допустимое значение в этом выпуске: "vulkan". Возможные значения сейчас "gl" (по умолчанию) для OpenGL, "gdi" или "no3d" для GDI и "vulkan" для вулкана.
- «csmt» (REG_DWORD)
Включение или отключение функций многопоточного потока команд. Это существующая настройка имеет дополнительное допустимое значение битового поля в этом выпуске. Допустимые битовые поля в этой версии:
- 0x1 Включить функцию многопоточного потока команд.
- 0x2 Включить сериализацию между несколькими потоками команд в то же приложение. Эта функция в первую очередь полезна для приложения, использующего несколько экземпляров Direct3D из
различных потоков в сочетании с драйверами OpenGL, которые сами не поддерживают многопоточный доступ должным образом. В виде этого выпуска, как известно, влияет на Microsoft Office 2013 г. и более поздние версии в сочетании с системой на основе нового драйвера Mesa.
Обратите внимание, что этот параметр является битовым полем; чтобы включить оба
выше, установите значение 0x3.

- Удален ключ реестра HKEY_CURRENT_USER \ Software \ Wine \ Direct3D:
- «DirectDrawRenderer» 

Этот параметр ранее был объявлен устаревшим и заменен на "средство визуализации" и был удален в этом выпуске.


*** D3DX

- Реализовано рисование текста с использованием интерфейса ID3DXFont.

- Реализован интерфейс отражения шейдера ID3D12ShaderReflection

- D3DX10GetImageInfoFromMemory () и связанная информация об изображении
реализованы функции запросов.


*** Графика

- Реализовано рисование дуг, эллипсов и прямоугольников с закругленными углами с помощью Direct2D API.

- В префикс установлен стандартный цветовой профиль sRGB, для
приложений, которые рассчитывают загрузить его напрямую.

- Драйвер дисплея Null можно использовать в качестве подходящего драйвера дисплея для
случая, когда пользовательский интерфейс не нужен.

- WindowsCodecs поддерживает декодирование изображений в DDS (DirectDraw Surface)
и JPEG-XR, а также кодирование изображений в формат GIF.

- Драйвер Vulkan создает используемый манифест JSON и запись реестра официальным загрузчиком Vulkan.

- Драйвер Vulkan поддерживает до версии 1.2.162 спецификации Vulkan.

- В GdiPlus внесен ряд улучшений, включая поддержку расширяющиеся линии, больше стилей штриховки и больше типов записей в метафайлы.


*** Audio/video

Структура Media Foundation более полная, в том числе:
- Первоначальная реализация медиа-сеанса для изменений состояния и данных.
- Реализован компонент конвейера Initial Streaming Audio Renderer (SAR).
- Первоначальная реализация Video Renderer, компонента конвейера
хостинг микшера и ведущего EVR.
- Реализация начального загрузчика топологии.
- Различные исправления для Source Reader.
- Первоначальная реализация Media Engine.
- Функциональность асинхронных очередей перенесена в rtworkq.dll.

- Реализована полностью библиотека AMStream (ActiveMovie Multimedia Streaming), включая поддержку потоковой передачи и выборки управления.

Средство визуализации микширования видео поддерживает следующие функции:
- Режим без окон и без рендеринга.
- Автоматическое растяжение и изменение размера видео в соответствии с размером окна.
- Аппаратно-ускоренное преобразование цветового пространства форматов YUV, если поддерживается базовой реализацией Direct3D.
- Сохранение соотношения сторон видео через почтовый ящик.

- Средство визуализации микширования видео используется в качестве средства визуализации видео по умолчанию, если поддерживается базовой реализацией Direct3D, заменяя Средство визуализации видео GDI.

- Реализован фильтр DirectShow File Writer.

- Реализован фильтр оболочки DirectX Media Object (DMO). DMO может быть автоматически пронумерован и вставлен в граф фильтра.

- Фильтр видеозахвата поддерживает предоставление дополнительной информации о
видеоформатах, включая поддерживаемые размеры и частоту кадров.

- Реализовано больше API-интерфейсов Media Detector.

- Фильтр-оболочка GStreamer поддерживает видео и аудио форматы, преобразование в конвейере GStreamer. Это устраняет необходимость в дополнительных фильтрах преобразования и, соответственно, YUV на основе GStreamer в Конвертер ARGB, аудиоконвертер и декодер mp3 были удалены. Любое видео можно выводить в любом из нескольких RGB и YUV форматах, что в некоторых случаях позволяет повысить производительность.

- Enhanced Video Renderer (EVR) содержит исходный микшер по умолчанию и реализация презентатора с использованием DXVA2 API.

- Библиотека движка XACT3 (кроссплатформенное создание аудио) и интерфейсы реализованы через FAudio.


*** Текст и шрифты

- Реализована поддержка текстовой консоли с использованием архитектуры последней версии Windows, что ближе к способу работы Unix вещей. В частности:

- Реализованы псевдоконсоли (эквивалент псевдо-TTY в Unix).

- Вся обработка консоли выполняется в процессе ConHost. WineConsole теперь только тонкая обертка вокруг ConHost.

- ConHost обрабатывает escape-последовательности VT, что означает, что Unix Curses библиотека больше не нужна.

- Функции формирования по умолчанию включены для всех скриптов в DirectWrite. Поддерживаются все типы поиска в GSUB / GPOS.

- В DirectWrite данные CMAP считываются непосредственно из шрифта без глобального кеша или необходимости создания объектов FreeType для улучшения.

- Инициализация шрифта в GDI32 позволяет избежать загрузки шрифтов через FreeType, когда это возможно, для более быстрого запуска. Реестр шрифтов кеш также более эффективен.

- Поддержка Uniscribe в библиотеке USP10 перемещена в GDI32, как согласно последним версиям Windows.

- Реализована начальная версия шрифта Webdings, только с несколько глифов на данный момент.


*** Устройства ввода

- Необработанные устройства ввода и сообщения реализованы и используются DirectInput вместо менее эффективных низкоуровневых хуков.

- Реализован начальный драйвер ядра USB на основе LibUSB библиотек, чтобы обеспечить доступ к USB-устройствам.

- Реализована история положения мыши для игр, которые хотят больше точного положения мыши.

- Сопоставления контроллеров SDL можно настроить через переменную среды SDL_GAMECONTROLLERCONFIG.

- Реализованы уведомления устройств Plug & Play.


*** Интеграция с рабочим столом

- Настройки дисплея загружаются через XRandR 1.4, если они доступны. Это также обеспечивает поддержку нескольких ориентаций дисплея.

- Графические адаптеры X11 одинаковы, API OpenGL и Vulkan.

- Макет рабочей области рабочего стола поддерживается в настройках с несколькими мониторами
используя свойство _GTK_WORKAREAS.


*** Интернационализация

- Таблицы символов Юникода основаны на версии 13.0.0 Юникода. Стандарт.

- Нормализация Unicode полностью соответствует стандартам, включая поддержку для хангыля, дополнительных плоскостей символов и нормализации IDN.

- Совместимая с Windows кодовая страница и другие таблицы Unicode хранятся во внешних файлах NLS. Это дает возможность тестировать собственные файлы для отслеживания проблем с отображением символов.

- Таблицы сопоставления кодовых страниц создаются из Microsoft Open Данные спецификации для лучшей совместимости.

- Реализованы лингвистические преобразования Unicode для таких языков, как турецкий.

- Поддерживается кодовая страница 708 (арабский ASMO).


*** Ядро

- Реализован режим совместимости версий Windows, только для отчета, новейшие версии Windows для приложений, которые заявили, что они их поддерживают.

- Реализованы сопоставления файлов INI для перенаправления записей файла .ini в ключи реестра.

- Реализовано гораздо больше объектов и функций ядра NT, чтобы осуществить поддержку античит-систем, загружающих драйверы ядра.

- Реализован драйвер ядра NetIO.sys для поддержки защиты от копирования. Драйверы, которые хотят получить доступ к сети.

- Регистры AVX поддерживаются в контексте регистров и исключениях обработки на платформах x86.

- Блок общих данных пользователя ядра содержит актуальные временные метки, чтобы
избегать системных вызовов при получении текущего счетчика времени.


*** C Время выполнения

- Библиотеки импорта среды выполнения C обеспечивают необходимую поддержку среды выполнения, так что модули PE больше не зависят от среды выполнения MinGW.

- Все модули Wine построены на новой среде выполнения UCRT.

- Winegcc по умолчанию использует новую среду выполнения UCRT, кроме более старой версии C
библиотека времени выполнения явно импортирована.

- Среда выполнения C поддерживает локали Windows, в которых используется кодовая страница UTF-8.

- Ряд математических функций времени выполнения C реализованы внутри, на основе кода из библиотеки Musl C, чтобы избежать зависимости от системной математической библиотеки.

- Форматирование с плавающей запятой повторно реализовано в среде выполнения C, чтобы избежать зависимости от системной функции printf.


*** Интернет и сети

- Движок Gecko обновлен до версии 2.47.2.

- Реализован API WebSocket.

- JScript и VBScript сообщают правильное местоположение ошибок в скрипты.

- Есть различные улучшения LDAP и Active Directory. Служба поддержки.

- Есть начальная реализация сетевого драйвера NDIS.

- Диалог связи данных OLE поддерживает настройку данных ODBC.
подключение.


*** Криптография

- Библиотека BCrypt поддерживает дополнительные алгоритмы, включая DSA.
ключи и шифр 3DES.

- Поставщик криптографии DSSENH (цифровые подписи)
реализовано и включено по умолчанию.


*** Альтернативные платформы

- Поддержка обработки исключений и раскрутки стека на платформах ARM. (как 32-битные, так и 64-битные) должны быть на одном уровне с x86 архитектурой.

- Имеется начальная поддержка ARM64 на macOS, для нового процессора Apple.

- Удалена поддержка устаревшей 32-битной архитектуры PowerPC.

- Оптимизация файловой системы без учета регистра включена во FreeBSD.


*** Встроенные приложения

- WineCfg поддерживает запросы и изменение настроенной Windows версию через командную строку с новым параметром / v.

- Конфигурация папок оболочки в WineCfg также поддерживает папки "Загрузки" и "Шаблоны".

- Автоматическое определение съемного диска было удалено в WineCfg, теперь что поддержка динамических устройств dbus стабильна.

- Инструмент FSUTIL поддерживает команду «жестких ссылок» для создания жестких ссылок.

- Инструмент FIND поддерживает поиск по нескольким файлам, помимо стандартного ввода.

- Реализован инструмент WHOAMI для отображения текущего имени пользователя.


*** Инструменты разработки

- Winegcc поддерживает создание файлов PDB при сборке PE DLL, для совместимости с отладчиками Windows.

- DbgHelp поддерживает отладочную информацию в стиле GNU также в файлах PE.

- Winegcc может сгенерировать библиотеку импорта непосредственно при сборке DLL, с опцией '-Wl, - out-implib'.

- Различные инструменты сборки также ищут включаемые файлы и файлы библиотеки в пути относительно двоичного файла инструмента, чтобы позволить перемещать Winelib установки.

- Компилятор ресурсов (wrc) и компилятор сообщений (wmc) используют внешние файлы NLS для преобразования кодовых страниц. При необходимости путь к внешним файлам можно указать с помощью опции --nls-dir.

- В WineDbg внесены различные улучшения в режим прокси-сервера gdb, включая поддержку аппаратных точек наблюдения и загрузки символов из PE модулей.

- Компилятор сообщений (wmc) обрабатывает спецификацию Unicode для обнаружения формата входного файла.

- Компилятор ресурсов (wrc) имеет параметр --utf8 для указания UTF-8. input, как альтернатива помещению кодовой страницы #pragma внутри файла.

- Компилятор IDL (widl) поддерживает режим WinRT и различные конструкции, специфичные для этого режима.

- Компилятор IDL (widl) поддерживает настраиваемые атрибуты в типе библиотеки.


*** Построение инфраструктуры

- Make-файлы больше не рекурсивны; один Makefile создается для построения всего дерева с правильными зависимостями между модулями.

- Поддерживаются правила тихой сборки в стиле Automake. Они не работают по умолчанию, но их можно включить, передав параметр --enable-silent-rules.

- Новый компилятор LLVM-MinGW поддерживает кросс-компиляцию PE.

- Поддерживается сборка с помощью компилятора Clang в режиме MSVC.

- В файлах спецификаций поддерживается флаг точки входа '-syscall', чтобы генерировать точки входа для системных вызовов в стиле NT.


*** Разное

- Движок Mono обновлен до версии 5.1.1, содержащей открытый исходные части платформы WPF и первоначальные замены для некоторых из частей с закрытым исходным кодом.

- Большинство модулей были преобразованы для использования строки широких символов константы типа L "abc" вместо явных массивов для большей читабельности кода.

- Поддерживаются многие из менее распространенных часовых поясов (для различных удаленных островов).

- Просмотр списков и кнопки изображений поддерживаются в установщиках MSI.

- Имеется начальная поддержка API Print Ticket.


*** Новые внешние зависимости

- Библиотека LibUSB используется для реализации драйвера USB.

- Библиотека VkD3D-Shader используется для перевода шейдеров Direct3D в Шейдеры SPIR-V для модуля рендеринга WineD3D Vulkan.

- Библиотеки Curses, GLU и Zlib больше не используются.


--
Александр Жульяр