Стабільны рэліз Wine 5.0

Пасля года распрацоўкі і 28 эксперыментальных версій прадстаўлены стабільны рэліз адкрытай рэалізацыі Win32 API віно 5.0, які ўвабраў у сябе больш за 7400 змен. З ключавых дасягненняў новай версіі адзначаецца пастаўка ўбудаваных модуляў Wine у ​​фармаце PE, падтрымка шматманіторных канфігурацый, новая рэалізацыя гукавога API XAudio2 і падтрымка графічнага API Vulkan 1.1.

У Wine пацверджана паўнавартасная праца 4869 (год таму 4737) праграм для Windows, яшчэ 4136 (год таму 4045) праграм выдатна працуюць пры дадатковых наладах і вонкавых DLL. У 3635 праграм назіраюцца невялікія праблемы ў працы, якія не мяшаюць выкарыстанню асноўных функцый прыкладанняў.

ключавыя навіны Wine 5.0:

  • Модулі ў фармаце PE
    • Пры наяўнасці кампілятара MinGW большасць модуляў Wine зараз збіраюцца ў фармаце выкананых файлаў PE (Portable Executable, ужываецца ў Windows) замест ELF. Ужыванне PE вырашае праблемы з падтрымкай розных схем абароны ад капіявання, якія здзяйсняюць зверку ідэнтычнасці сістэмных модуляў на дыску і ў памяці;
    • Выконваныя файлы PE зараз капіююцца ў каталог ~/.wine ($WINEPREFIX) замест ужывання фіктыўных DLL-файлаў, што робіць начынне больш падобнай на рэальныя ўсталёўкі Windows, коштам спажывання дадатковай дыскавай прасторы;
    • Модулі, ператвораныя ў фармат PE, могуць выкарыстоўваць штатныя wchar Сі-функцый і канстанты з юнікод (напрыклад, L "abc");
    • У Wine C runtime дададзена падтрымка звязвання з двайковымі файламі, сабранымі ў MinGW, якая пры зборцы DLL выкарыстоўваецца па змаўчанні замест MinGW runtime;
  • Графічная падсістэма
    • Дададзена падтрымка працы з некалькімі маніторамі і графічнымі адаптарамі, уключаючы магчымасць дынамічнай змены налад;
    • Абноўлены драйвер для графічнага API Vulkan, які прыведзены ў адпаведнасць са спецыфікацыяй Vulkan 1.1.126;
    • У бібліятэцы WindowsCodecs рэалізавана магчымасць пераўтварэння дадатковых растравых фарматаў, уключаючы фарматы з індэксаваннай палітрай;
  • Direct3D
    • Пры выкананні поўнаэкранных прыкладанняў Direct3D забяспечана блакіроўка выкліку захавальніка экрана;
    • У DXGI (DirectX Graphics Infrastructure) дададзеная падтрымка інфармавання прыкладання аб мінімізацыі яго акна, што дазваляе з дадаткам знізіць выкананне рэсурсаёмістых аперацый пры згортванні акна;
    • Для прыкладанняў, якія выкарыстоўваюць DXGI, рэалізавана магчымасць пераключэння паміж поўнаэкранным і аконным рэжымам пры дапамозе камбінацыі Alt+Enter;
    • Пашыраныя магчымасці рэалізацыі Direct3D 12, напрыклад, з'явілася падтрымка пераключэння паміж поўнаэкранным і аконным рэжымам, змены рэжымаў экрана, высновы з маштабаваннем і кіраванні інтэрвалам замены буфераў адмалёўкі (swap interval);
    • Палепшана апрацоўка розных памежных сітуацый, такіх як ужыванне якія выходзяць за дапушчальныя дыяпазоны зыходных значэнняў для тэстаў празрыстасці і глыбіні, адмалёўка з адлюстраванымі тэкстурамі і буферамі, выкарыстанне некарэктных DirectDraw аб'ектаў кліпер, стварэнне прылад Direct3 для некарэктных вокнаў, выкарыстанне бачных абласцей, мінімальныя значэнні параметраў якіх роўныя максімальным і да т.п.
    • У Direct3D 8 і 9 забяспечана больш дакладнае адсочваннебрудных» абласцей загружаных тэкстур;
    • Зніжаны памер неабходнай адраснай прасторы пры загрузцы 3D-тэкстур, сціснутых метадам S3TC (замест загрузкі цалкам, тэкстуры грузяцца кавалкамі).
    • Рэалізаваны інтэрфейс ID3D11Multithread для абароны крытычных секцый у шматструменных дадатках;
    • Для старых прыкладанняў DirectDraw унесены розных паляпшэнні і выпраўленні, звязаных з разлікам асвятлення;
    • Рэалізаваны дадатковыя выклікі для атрымання інфармацыі аб шэйдарах у API ShaderReflection;
    • У wined3d дададзена падтрымка блітэра на базе CPU для апрацоўкі сціснутых рэсурсаў;
    • Пашырана БД графічных карт, якія распазнаюцца ў Direct3D;
    • Дададзеныя новыя ключы рэестра HKEY_CURRENT_USERSoftwareWineDirect3D: shader_backend (бэкэнд для працы з шэйдарамі: glsl для GLSL, arb для ARB vertex/fragment і none для адключэння падтрымкі шэйдараў), strict_shader_math ( 0x1 - уключыць, 0x0 - адключыць пераўтварэнне шэйдараў Direct3D). Аб'яўлены састарэлым ключ "UseGLSL" (варта выкарыстоўваць "shader_backend");
  • D3DX
    • Рэалізаваная падтрымка механізму сціску 3D-тэкстур S3TC (S3 Texture Compression);
    • Дададзеныя карэктныя рэалізацыі такіх аперацый, як заліванне тэкстурай і неадлюстроўваныя (unmappable) паверхні;
    • Унесены розныя паляпшэнні і выпраўленні ў фрэймворк стварэння візуальных эфектаў;
  • Ядро (інтэрфейсы ядра Windows)
    • Большасць функцый, якія выкарыстоўваюцца ў Kernel32, перамешчаныя ў
      KernelBase, прытрымліваючыся зменам у архітэктуры Windows;

    • Магчымасць змешвання 32 – і 64-разрадных DLL у каталогах, якія выкарыстоўваюцца для загрузкі. Забяспечана ігнараванне бібліятэк, якія не адпавядаюць бягучай разраднасці (32/64), на выпадак калі далей у шляху атрымаецца знайсці карэктную для бягучай разраднасці бібліятэку;
    • Для драйвераў прылад палепшана эмуляцыя аб'ектаў ядра;
    • Рэалізаваны якія працуюць на ўзроўні ядра аб'екты сінхранізацыі, такія як spin-блакаванні, хуткія мьютексы і якія прымацоўваюцца да рэсурсу зменныя;
    • Забяспечана карэктнае інфармаванне дадаткаў аб стане акумулятара;
  • Інтэрфейс карыстальніка і інтэграцыя з працоўным сталом
    • Мінімізаваныя вокны зараз адлюстроўваюцца з выкарыстаннем загалоўка, а не піктаграмы ў стылі Windows 3.1;
    • Дададзены новыя стылі кнопак SplitButton (кнопка з выпадаючым спісам дзеянняў) і Command Links (спасылкі ў дыялогавых вокнах, якія выкарыстоўваюцца для пераходу на наступную стадыю);
    • Для тэчак 'Downloads' і 'Templates' створаны знакавыя спасылкі, якія паказваюць на адпаведныя каталогі ў Unix-сістэмах;
  • прылады ўводу
    • Пры запуску забяспечана ўстаноўка і загрузка неабходных драйвераў прылад Plug & Play;
    • Палепшана падтрымка гульнявых кантролераў, у тым ліку міні-джойсцік (hat switch), руль, педалі для газу і тармазоў.
    • Спыненая падтрымка старога Linux API узаемадзеяння з джойсцікамі, выкарыстоўванага ў ядрах Linux да версіі 2.2;
  • . NET
    • Рухавічок Mono абноўлены да выпуску 4.9.4 і зараз уключае часткі фрэймворка Windows Presentation Foundation (WPF);
    • Дададзена магчымасць усталёўкі дадаткаў з Mono і Gecko у адзін агульны каталог з размяшчэннем файлаў у іерархіі /usr/share/wine замест капіявання ў новыя прэфіксы;
  • сеткавыя магчымасці
    • Браўзэрны рухавічок Wine Gecko, які выкарыстоўваецца ў бібліятэцы MSHTML, абноўлены да выпуску 2.47.1. Рэалізаваная падтрымка новых HTML API;
    • У MSHTML рэалізавана падтрымка элементаў SVG;
    • Дададзена шмат новых функцый VBScript (напрыклад, апрацоўшчыкі памылак і выключэнняў, функцыі Hour, Day, Month, String, LBound, RegExp.Replace, РScriptTypeInfo_* і ScriptTypeComp_Bind* і да т.п.);
    • Забяспечана захаванне стану кода ў VBScript і JScript (script persistence);
    • Дададзена пачатковая рэалізацыя сэрвісу HTTP (WinHTTP) і звязанага з ім API (HTTPAPI) для кліенцкіх і серверных прыкладанняў, якія атручваюць і прымаюць запыты пры дапамозе пратаколу HTTP;
    • Рэалізаваная магчымасць атрымання параметраў налады HTTP-проксі праз DHCP;
    • Дададзена падтрымка перанакіравання запытаў аўтэнтыфікацыі праз службу Microsoft Passport;
  • Крыптаграфія
    • Рэалізавана падтрымка крыптаграфічных ключоў на аснове эліптычных крывых (ECC) пры выкарыстанні GnuTLS;
    • Дададзена магчымасць імпарту ключоў і сертыфікатаў з файлаў у фармаце PFX;
    • Дададзена падтрымка схемы фармавання ключа на аснове пароля PBKDF2;
  • Тэкст і шрыфты
    • У рэалізацыі API DirectWrite дададзена падтрымка магчымасцяў OpenType, злучаных з пазіцыянаваннем гліфаў, якія ўключаны па змаўчанні для напісання Latin, уключаючы кернінг;
    • Павышана бяспека апрацоўкі шрыфтавых даных за кошт праверкі карэктнасці розных табліц даных перад іх выкарыстаннем;
    • Інтэрфейсы DirectWrite прыведзены ў адпаведнасць са свежым SDK;
  • Гук і відэа
    • Прапанавана новая рэалізацыя гукавога API XAudio2, пабудаваная на аснове праекта FAudio. Выкарыстанне FAudio у Wine дазваляе дамагчыся больш высокай якасці гуку ў гульнях і задзейнічаць такія магчымасці як змешванне гучнасці і пашыраныя гукавыя эфекты;
    • Дададзена вялікая колькасць новых выклікаў у рэалізацыю фрэймворка Media Foundation, уключаючы падтрымку ўбудаваных і карыстацкіх асінхронных чэргаў, Source Reader API, Media Session і да т.п.
    • Фільтр захопу відэа пераведзены на выкарыстанне API v4l2 замест v4l1 API, што дазволіла пашырыць дыяпазон падтрымліваемых камер;
    • Выдалены ўбудаваныя дэкадавальнікі AVI, MPEG-I і WAVE, замест якіх зараз выкарыстоўваюцца сістэмныя GStreamer або QuickTime;
    • Дададзена падмноства канфігурацыйных API VMR7;
    • У гукавыя драйверы дададзена падтрымка налады гучнасці асобных каналаў;
  • Інтэрнацыяналізацыя
    • Табліцы Unicode абноўлены да версіі 12.1.0;
    • Рэалізаваная падтрымка нармалізацыі Unicode;
    • Забяспечана аўтаматычная ўстаноўка геаграфічнага рэгіёну (HKEY_CURRENT_USER Control Panel International Geo) на аснове бягучай лакалі;
  • RPC/COM
    • У typelib дададзена падтрымка складаных структур і масіваў;
    • Дададзена пачатковая рэалізацыя runtime-бібліятэкі Windows Script;
    • Дададзена пачатковая рэалізацыя бібліятэкі ADO (Microsoft ActiveX Data Objects);
  • Усталёўшчыкі
    • Для ўсталёўшчыка MSI рэалізавана падтрымка пастаўкі патчаў (Patch Files);
    • Ва ўтыліце WUSA (Windows Update Standalone Installer) з'явілася магчымасць усталёўкі абнаўленняў у фармаце .MSU;
  • Платформа ARM
    • Для архітэктуры ARM64 у ntdll дададзеная падтрымка раскруткі стэка (stack unwinding). Дададзена падтрымка падключэння знешніх бібліятэк libunwind;
    • Для архітэктуры ARM64 рэалізавана падтрымка бясшвовых проксі (stubless proxies) для інтэрфейсаў аб'ектаў;
  • Інструменты для распрацоўкі / Winelib
    • Дададзена магчымасць ужывання адладчыка з Visual Studio для выдаленай адладкі прыкладанняў, запушчаных у Wine;
    • Часткова рэалізавана бібліятэка DBGENG (Debug Engine);
    • Сабраныя для Windows выкананыя файлы больш не залежаць ад libwine, што дазваляе запускаць іх у Windows без дадатковых залежнасцяў;
    • У Resource Compiler і IDL Compiler дададзена опцыя '—sysroot' для вызначэння шляху размяшчэння загалоўкавых файлаў;
    • У winegcc дададзены опцыі '—target', '—wine-objdir',
      '—winebuild' і '-fuse-ld', якія спрашчаюць наладу асяроддзя для крос-кампіляцыі;

  • Убудаваныя прыкладанні
    • Рэалізавана ўтыліта CHCP для налады кадоўкі кансолі;
    • Рэалізавана ўтыліта MSIDB для маніпуляцыі з базамі ў фармаце MSI;
  • аптымізацыя прадукцыйнасці
    • Розныя функцыі працы з часам перакладзены на выкарыстанне высокапрадукцыйных сістэмных функцый працы з таймерам, што дазволіла зменшыць накладныя выдаткі ў цыкле адмалёўкі шматлікіх гульняў;
    • Дададзена магчымасць выкарыстання ў ФС Ext4 рэжыму работы без уліку рэгістра сімвалаў;
    • Праведзена аптымізацыя прадукцыйнасці апрацоўкі вялікай колькасці элементаў у дыялогах вываду спісаў, якія працуюць у рэжыме LBS_NODATA;
    • Дададзена хутчэйшая рэалізацыя SRW-блакіровак (Slim Reader/Writer) для Linux, перакладзеная на Futex;
  • Вонкавыя залежнасці
    • Для зборкі модуляў у фармаце PE задзейнічаны крос-кампілятар MinGW-w64;
    • Рэалізацыя XAudio2 патрабуе наяўнасці бібліятэкі FAudio;
    • Для адсочвання змен файлаў на сістэмах BSD
      задзейнічана бібліятэка Inotify;

    • Для апрацоўкі выключэнняў на платформе ARM64 неабходна бібліятэка Unwind;
    • Замест Video4Linux1 зараз патрабуецца бібліятэка Video4Linux2.

Крыніца: opennet.ru

Дадаць каментар