You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
140 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
dc86f5c543 | ||
|
d2e9fa96e2 | ||
|
d9bb5a1e45 | ||
|
d4e3581847 | ||
|
4be7c872c3 | ||
|
896b3398f1 | ||
|
9ad85e9d6f | ||
|
a2714839b3 | ||
|
85d50ecc2a | ||
|
2e4d11137f | ||
|
b03c54797e | ||
|
5ad2c41098 | ||
|
0488823205 | ||
|
fd66b3bced | ||
|
d2f012b3d1 | ||
|
7e1bf8aca0 | ||
|
f8627a6f02 | ||
|
693e189c24 | ||
|
5acbd17da2 | ||
|
d014e899bc | ||
|
397a31ae04 | ||
|
2668c19b7f | ||
|
2c0e907a4a | ||
|
fb56e8d212 | ||
|
22c57980db | ||
|
4c11394828 | ||
|
f151e1f36f | ||
|
1c6124cc6e | ||
|
e51ebcc301 | ||
|
bff92e3d44 | ||
|
1e79306b13 | ||
|
8cd8abd51f | ||
|
8adf60dc8e | ||
|
e64c3bff30 | ||
|
8d0e6ea5c8 | ||
|
4f051ce511 | ||
|
bd89770641 | ||
|
7cf357b20c | ||
|
91f812ed1b | ||
|
8e8654d76e | ||
|
d7013c255f | ||
|
9638ce9ec6 | ||
|
e1d5975f34 | ||
|
f597f5b898 | ||
|
63426eaa59 | ||
|
67dffe4dc6 | ||
|
d8cf46384c | ||
|
6494429c2f | ||
|
be51f622f7 | ||
|
922e5a0e06 | ||
|
9b1ac08c87 | ||
|
bfabcd117e | ||
|
b8c9f3454e | ||
|
3f46a6acb7 | ||
|
c83adcf25b | ||
|
091bcbce3c | ||
|
6971149e11 | ||
|
1f9e5b10e0 | ||
|
0c3120e10d | ||
|
550a60731f | ||
|
3bf5b8762a | ||
|
188b345d2e | ||
|
458dd1fbce | ||
|
216a2d8994 | ||
|
032bf69aa7 | ||
|
e80a1b9b96 | ||
|
d1801f5a5e | ||
|
317fa9382c | ||
|
e3ea1eef0d | ||
|
cc0556df4a | ||
|
0dddb28c32 | ||
|
46bd2a545f | ||
|
fbce85675d | ||
|
1ab89ae9bc | ||
|
55379f6926 | ||
|
48c78157ae | ||
|
fdf5bad886 | ||
|
b1d20ea747 | ||
|
d8c4d47bbc | ||
|
ee5271ee57 | ||
|
4adc56f74f | ||
|
4fe40942a6 | ||
|
2dc572f110 | ||
|
3307e90080 | ||
|
6b720c8cd2 | ||
|
76aa292beb | ||
|
1d3eb97763 | ||
|
3c4ad355ff | ||
|
c7c250e381 | ||
|
28d60dbd10 | ||
|
1c46676667 | ||
|
8f08951d14 | ||
|
6a06b1710e | ||
|
59e96aed08 | ||
|
784acaf1fa | ||
|
d9e1415701 | ||
|
3cee0925e8 | ||
|
eb98f4e74f | ||
|
6ef9e97ec1 | ||
|
f9edeb7354 | ||
|
f4dcef9c77 | ||
|
8b65b1c1c8 | ||
|
2a080a1262 | ||
|
1928fdacbe | ||
|
74daa3b210 | ||
|
b951b9ad09 | ||
|
0f5d19c2e0 | ||
|
c498b3557f | ||
|
65be847fcc | ||
|
70d974cad5 | ||
|
ed021737de | ||
|
5eab79aa77 | ||
|
31e4657a83 | ||
|
e5d2ae6b87 | ||
|
8073750c5c | ||
|
0d466f5e6d | ||
|
5f353ac80e | ||
|
447235f1dc | ||
|
e522c26b4b | ||
|
07de62088d | ||
|
f7950d74e6 | ||
|
e499f1c187 | ||
|
8a0c14b145 | ||
|
f64d5ad94d | ||
|
2f4c5ae81e | ||
|
0182014bed | ||
|
22331fa377 | ||
|
456eb2f553 | ||
|
4ad4553546 | ||
|
6efa37655c | ||
|
ff889f6cdc | ||
|
8ba35e61d8 | ||
|
f44120dffe | ||
|
0a96d76b16 | ||
|
ff9f5115fb | ||
|
929a331358 | ||
|
357269a486 | ||
|
23ec346541 | ||
|
2517360ebd | ||
|
08738c151c |
81
README.md
81
README.md
@@ -1,23 +1,18 @@
|
||||
What is Wine Staging?
|
||||
---------------------
|
||||
|
||||
**Warning: Do not report bugs at bugs.winehq.org when using this version!
|
||||
Please take a look [here](http://bugs.wine-staging.com) for more information
|
||||
about how to report bugs.**
|
||||
**Wine Staging** is the testing area of winehq.org. It contains bug fixes and
|
||||
features, which have not been integrated into the development branch yet. The
|
||||
idea of Wine Staging is to provide experimental features faster to end users and
|
||||
to give developers the possibility to discuss and improve their patches before
|
||||
they are integrated into the main branch. More information about Wine Staging
|
||||
can also be found on our website [wine-staging.com](http://wine-staging.com).
|
||||
|
||||
**Wine Staging** (formerly wine-compholio) is a special wine version containing
|
||||
bug fixes and features, which are not yet available in regular wine versions.
|
||||
The idea of Wine Staging is to provide new features faster to end users and to
|
||||
give developers the possibility to discuss and improve their patches before
|
||||
they are sent upstream. We also intend to create a community of wine developers
|
||||
to share experience and to make it easier for beginners to start hacking on
|
||||
wine. More information about Wine Staging can also be found on our website
|
||||
[wine-staging.com](http://wine-staging.com).
|
||||
Although we are reviewing and testing all patches carefully before adding them,
|
||||
you may encounter additional bugs, which are not present in the development
|
||||
branch. Do not hesitate to report such issues at winehq.org, so they can be
|
||||
fixed before the feature gets integrated.
|
||||
|
||||
Although we are reviewing and testing all patches before adding them, you may
|
||||
encounter additional bugs, which are not present in vanilla wine. Make sure to
|
||||
report such issues in our bug tracker instead of winehq.org so that we can try
|
||||
to solve them in future versions. Thanks!
|
||||
|
||||
How to install and use Wine Staging
|
||||
-----------------------------------
|
||||
@@ -39,7 +34,7 @@ Wine. All those differences are also documented on the
|
||||
Included bug fixes and improvements
|
||||
-----------------------------------
|
||||
|
||||
**Bug fixes and features in Wine Staging 1.7.51 [260]:**
|
||||
**Bug fixes and features in Wine Staging 1.7.54 [268]:**
|
||||
|
||||
*Note: The following list only contains features and bug fixes which are not
|
||||
yet available in vanilla Wine. They are removed from the list as soon as they
|
||||
@@ -51,19 +46,23 @@ for more details.*
|
||||
* Add IDragSourceHelper stub interface ([Wine Bug #24699](https://bugs.winehq.org/show_bug.cgi?id=24699))
|
||||
* Add IHTMLLocation::hash property's getter implementation ([Wine Bug #32967](https://bugs.winehq.org/show_bug.cgi?id=32967))
|
||||
* Add a ProfileList\<UserSID> registry subkey ([Wine Bug #15670](https://bugs.winehq.org/show_bug.cgi?id=15670))
|
||||
* Add implementation for IDXGIOutput::GetDesc ([Wine Bug #32006](https://bugs.winehq.org/show_bug.cgi?id=32006))
|
||||
* Add implementation for comctl32.PROPSHEET_InsertPage. ([Wine Bug #25625](https://bugs.winehq.org/show_bug.cgi?id=25625))
|
||||
* Add implementation for mfplat.MFTEnum ([Wine Bug #39309](https://bugs.winehq.org/show_bug.cgi?id=39309))
|
||||
* Add implementation for mfplat.MFTRegister ([Wine Bug #37811](https://bugs.winehq.org/show_bug.cgi?id=37811))
|
||||
* Add implementation for msidb commandline tool
|
||||
* Add implementation for shlwapi.AssocGetPerceivedType
|
||||
* Add nvapi stubs required for GPU PhysX support
|
||||
* Add performance library registry keys needed by MS SQL Server Management Studio Express 2008 R2 ([Wine Bug #33661](https://bugs.winehq.org/show_bug.cgi?id=33661))
|
||||
* Add semi-stub for FileFsVolumeInformation information class ([Wine Bug #21466](https://bugs.winehq.org/show_bug.cgi?id=21466))
|
||||
* Add shell32 placeholder icons to match offsets with Windows ([Wine Bug #30185](https://bugs.winehq.org/show_bug.cgi?id=30185))
|
||||
* Add stub dlls required for MSVC 2015 runtime library (Windows 10)
|
||||
* Add stub fltmgr.sys (filter manager driver) ([Wine Bug #23583](https://bugs.winehq.org/show_bug.cgi?id=23583))
|
||||
* Add stub for D3DXComputeNormalMap
|
||||
* Add stub for D3DXFrameFind ([Wine Bug #38334](https://bugs.winehq.org/show_bug.cgi?id=38334))
|
||||
* Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268))
|
||||
* Add stub for dwmapi.DwmUpdateThumbnailProperties
|
||||
* Add stub for gdiplus.GdipCreateEffect ([Wine Bug #32163](https://bugs.winehq.org/show_bug.cgi?id=32163))
|
||||
* Add stub for SetCoalescableTimer ([Wine Bug #39509](https://bugs.winehq.org/show_bug.cgi?id=39509))
|
||||
* Add stub for SetConsoleKeyShortcuts ([Wine Bug #35702](https://bugs.winehq.org/show_bug.cgi?id=35702))
|
||||
* Add stub for SfcGetNextProtectedFile ([Wine Bug #38097](https://bugs.winehq.org/show_bug.cgi?id=38097))
|
||||
* Add stub for ntoskrnl.ExAcquireResourceExclusiveLite
|
||||
* Add stub for ntoskrnl.ExDeleteResourceLite
|
||||
* Add stub for ntoskrnl.ExReleaseResourceForThread
|
||||
@@ -78,7 +77,6 @@ for more details.*
|
||||
* Add stubbed ISWbemSecurity interfaces in wbemdisp
|
||||
* Add stubs for D3DXCreateAnimationController interface
|
||||
* Add stubs for additional wininet options in InternetSetOption
|
||||
* Add stubs for d3dx10_43.D3DX10CreateEffectFromFileA/W ([Wine Bug #27739](https://bugs.winehq.org/show_bug.cgi?id=27739))
|
||||
* Add support for CopyFileEx progress callback ([Wine Bug #22692](https://bugs.winehq.org/show_bug.cgi?id=22692))
|
||||
* Add support for GTK3 theming
|
||||
* Add support for GetPropValue to PulseAudio backend
|
||||
@@ -94,6 +92,7 @@ for more details.*
|
||||
* Allow to open files/directories without any access rights in order to query attributes
|
||||
* Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE. ([Wine Bug #12652](https://bugs.winehq.org/show_bug.cgi?id=12652))
|
||||
* Allow to set pixel format for desktop window
|
||||
* Always use 64-bit registry view on WOW64 setups
|
||||
* Anno 1602 installer depends on Windows 98 behavior of SHFileOperationW ([Wine Bug #37916](https://bugs.winehq.org/show_bug.cgi?id=37916))
|
||||
* Assign a drive serial number during prefix creation/update ([Wine Bug #17823](https://bugs.winehq.org/show_bug.cgi?id=17823))
|
||||
* Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](https://bugs.winehq.org/show_bug.cgi?id=30639))
|
||||
@@ -109,14 +108,18 @@ for more details.*
|
||||
* Calculate msvcrt exponential math operations with higher precision ([Wine Bug #37149](https://bugs.winehq.org/show_bug.cgi?id=37149))
|
||||
* Catch invalid memory accesses in imagehlp.CheckSumMappedFile
|
||||
* Check architecture before trying to load libraries ([Wine Bug #38021](https://bugs.winehq.org/show_bug.cgi?id=38021))
|
||||
* Codepage conversion should fail when destination length is < 0
|
||||
* Create Microsoft\Windows\Themes directory during Wineprefix creation ([Wine Bug #34910](https://bugs.winehq.org/show_bug.cgi?id=34910))
|
||||
* Create stub files for system32/drivers/etc/{services,hosts,networks,protocol} ([Wine Bug #12076](https://bugs.winehq.org/show_bug.cgi?id=12076))
|
||||
* CreateProcess does not prioritize the working directory over the system search path ([Wine Bug #23934](https://bugs.winehq.org/show_bug.cgi?id=23934))
|
||||
* D3DCompileShader should filter specific warning messages ([Wine Bug #33770](https://bugs.winehq.org/show_bug.cgi?id=33770))
|
||||
* Do not allow interruption of system APC in server_select ([Wine Bug #14697](https://bugs.winehq.org/show_bug.cgi?id=14697))
|
||||
* Do not allow to deallocate thread stack for current thread
|
||||
* Do not fail when a used context is passed to wglShareLists ([Wine Bug #11436](https://bugs.winehq.org/show_bug.cgi?id=11436))
|
||||
* Do not signal threads until they are really gone
|
||||
* Do not use unixfs for devices without mountpoint
|
||||
* Enforce that surfaces are flushed after ReleaseDC
|
||||
* Do not wait for hook thread startup in IDirectInput8::Initialize ([Wine Bug #21403](https://bugs.winehq.org/show_bug.cgi?id=21403))
|
||||
* Enforce that surfaces are flushed after ReleaseDC ([Wine Bug #39465](https://bugs.winehq.org/show_bug.cgi?id=39465))
|
||||
* Ensure NtProtectVirtualMemory and NtCreateSection are on separate pages ([Wine Bug #33162](https://bugs.winehq.org/show_bug.cgi?id=33162))
|
||||
* Ensure X11 input events are handled even without explicit message loop ([Wine Bug #8854](https://bugs.winehq.org/show_bug.cgi?id=8854))
|
||||
* Exception during start of fr-043 caused by missing DXTn support ([Wine Bug #37391](https://bugs.winehq.org/show_bug.cgi?id=37391))
|
||||
@@ -127,8 +130,8 @@ for more details.*
|
||||
* Fake success in kernel32.SetFileCompletionNotificationModes ([Wine Bug #38960](https://bugs.winehq.org/show_bug.cgi?id=38960))
|
||||
* Fallback to default comspec when %COMSPEC% is not set
|
||||
* Fallback to system ping command when CAP_NET_RAW is not available ([Wine Bug #8332](https://bugs.winehq.org/show_bug.cgi?id=8332))
|
||||
* Fix NULL dereference in ICSeqCompressFrameStart ([Wine Bug #27595](https://bugs.winehq.org/show_bug.cgi?id=27595))
|
||||
* Fix access violation in MSYS2 git when cloning repository
|
||||
* Fix calculation of listbox size when horizontal scrollbar is present ([Wine Bug #38142](https://bugs.winehq.org/show_bug.cgi?id=38142))
|
||||
* Fix caps lock state issues with multiple processes ([Wine Bug #35907](https://bugs.winehq.org/show_bug.cgi?id=35907))
|
||||
* Fix comparison of punctuation characters in lstrcmp ([Wine Bug #10767](https://bugs.winehq.org/show_bug.cgi?id=10767))
|
||||
* Fix condition mask handling in RtlVerifyVersionInfo ([Wine Bug #36143](https://bugs.winehq.org/show_bug.cgi?id=36143))
|
||||
@@ -139,7 +142,6 @@ for more details.*
|
||||
* Fix device paths in HKLM\SYSTEM\MountedDevices ([Wine Bug #38235](https://bugs.winehq.org/show_bug.cgi?id=38235))
|
||||
* Fix endless loop in regedit when importing files with very long lines
|
||||
* Fix error handling in DeferWindowPos when passing an invalid HWND ([Wine Bug #23187](https://bugs.winehq.org/show_bug.cgi?id=23187))
|
||||
* Fix failure to create anonymous file mapping after failed open_fd server call
|
||||
* Fix flickering introduced by pixelformat changes. ([Wine Bug #35718](https://bugs.winehq.org/show_bug.cgi?id=35718))
|
||||
* Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](https://bugs.winehq.org/show_bug.cgi?id=16550))
|
||||
* Fix for programs leaking wndproc slots ([Wine Bug #32451](https://bugs.winehq.org/show_bug.cgi?id=32451))
|
||||
@@ -153,6 +155,7 @@ for more details.*
|
||||
* Fix implementation of msvcrt.close when stdout == stderr
|
||||
* Fix issues with dragging layers between images in Adobe Photoshop 7.0 ([Wine Bug #12007](https://bugs.winehq.org/show_bug.cgi?id=12007))
|
||||
* Fix missing video introduced by pixelformat changes. ([Wine Bug #36900](https://bugs.winehq.org/show_bug.cgi?id=36900))
|
||||
* Fix multiple issues in widl typelib generation
|
||||
* Fix multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087))
|
||||
* Fix possible segfault in pulse_rd_loop of PulseAudio backend
|
||||
* Fix race-condition when threads are killed during shutdown
|
||||
@@ -160,36 +163,38 @@ for more details.*
|
||||
* Fix return value of ScrollWindowEx for invisible windows ([Wine Bug #37706](https://bugs.winehq.org/show_bug.cgi?id=37706))
|
||||
* Fix scaling behaviour of images and mipmap levels in IDirect3DTexture2_Load (needed for example by Prezzie Hunt)
|
||||
* Fix texture corruption in CSI: Fatal Conspiracy ([Wine Bug #33768](https://bugs.winehq.org/show_bug.cgi?id=33768))
|
||||
* Fix the initialization of combined DACLs when the new DACL is empty ([Wine Bug #38423](https://bugs.winehq.org/show_bug.cgi?id=38423))
|
||||
* Fix unintentional leaks with ntdll internals
|
||||
* Fix wined3d performance drop introduced by pixelformat changes. ([Wine Bug #35655](https://bugs.winehq.org/show_bug.cgi?id=35655))
|
||||
* Fix wrong colors in Wolfenstein (2009) ([Wine Bug #34692](https://bugs.winehq.org/show_bug.cgi?id=34692))
|
||||
* Fix wrong defition of ntoskrnl.IoReleaseCancelSpinLock function.
|
||||
* Fix wrong version of ID3DXEffect interface for d3dx9_24
|
||||
* Fix wrong version of ID3DXEffect interface for d3dx9_25 ([Wine Bug #25138](https://bugs.winehq.org/show_bug.cgi?id=25138))
|
||||
* Forward exitcode from child process when in wineconsole
|
||||
* Free RPC parameters allocated by application before anything else ([Wine Bug #36743](https://bugs.winehq.org/show_bug.cgi?id=36743))
|
||||
* GetMessage should remove already seen messages with higher priority ([Wine Bug #28884](https://bugs.winehq.org/show_bug.cgi?id=28884))
|
||||
* GetMonitorInfo returns the same name for all monitors ([Wine Bug #37709](https://bugs.winehq.org/show_bug.cgi?id=37709))
|
||||
* GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](https://bugs.winehq.org/show_bug.cgi?id=15980))
|
||||
* Globally invalidate key state on changes in other threads ([Wine Bug #29871](https://bugs.winehq.org/show_bug.cgi?id=29871))
|
||||
* Graphical issues in Inquisitor ([Wine Bug #32490](https://bugs.winehq.org/show_bug.cgi?id=32490))
|
||||
* Ignore unsupported flags for CoInternetSetFeatureEnabled ([Wine Bug #35197](https://bugs.winehq.org/show_bug.cgi?id=35197))
|
||||
* IEnumSTATSTG::Next should zero out returned stats when enumeration ends
|
||||
* Implement AMStream GetMultiMediaStream functions ([Wine Bug #37090](https://bugs.winehq.org/show_bug.cgi?id=37090))
|
||||
* Implement D3DXGetShaderOutputSemantics
|
||||
* Implement DDENUMSURFACES_CANBECREATED in IDirectDraw7::EnumSurfaces ([Wine Bug #17233](https://bugs.winehq.org/show_bug.cgi?id=17233))
|
||||
* Implement FileNamesInformation class support for NtQueryDirectoryFile
|
||||
* Implement FolderImpl_Items and stubbed FolderItems interface
|
||||
* Implement ID3DXEffect::FindNextValidTechnique ([Wine Bug #34101](https://bugs.winehq.org/show_bug.cgi?id=34101))
|
||||
* Implement IDXGIOutput::GetDesc
|
||||
* Implement SystemHandleInformation info class
|
||||
* Implement a Courier New replacement font ([Wine Bug #20456](https://bugs.winehq.org/show_bug.cgi?id=20456))
|
||||
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](https://bugs.winehq.org/show_bug.cgi?id=13829))
|
||||
* Implement a Times New Roman replacement font ([Wine Bug #32342](https://bugs.winehq.org/show_bug.cgi?id=32342))
|
||||
* Implement additional stub functions in authz.dll
|
||||
* Implement an Arial replacement font ([Wine Bug #32323](https://bugs.winehq.org/show_bug.cgi?id=32323))
|
||||
* Implement combase.WindowsSubstring function
|
||||
* Implement default homepage button in inetcpl.cpl
|
||||
* Implement empty enumerator for IWiaDevMgr::EnumDeviceInfo ([Wine Bug #27775](https://bugs.winehq.org/show_bug.cgi?id=27775))
|
||||
* Implement enumeration of sound devices and basic properties to dxdiagn ([Wine Bug #32613](https://bugs.winehq.org/show_bug.cgi?id=32613))
|
||||
* Implement exclusive mode in PulseAudio backend ([Wine Bug #37042](https://bugs.winehq.org/show_bug.cgi?id=37042))
|
||||
* Implement general tab for file property dialog
|
||||
* Implement hal.KeQueryPerformanceCounter ([Wine Bug #39500](https://bugs.winehq.org/show_bug.cgi?id=39500))
|
||||
* Implement kernel32.GetConsoleFontSize
|
||||
* Implement locking and synchronization of key states ([Wine Bug #31899](https://bugs.winehq.org/show_bug.cgi?id=31899))
|
||||
* Implement mscoree._CorValidateImage for mono runtime ([Wine Bug #38662](https://bugs.winehq.org/show_bug.cgi?id=38662))
|
||||
* Implement ntoskrnl driver testing framework.
|
||||
@@ -197,11 +202,12 @@ for more details.*
|
||||
* Implement proper handling of CLI .NET images in Wine library loader ([Wine Bug #38661](https://bugs.winehq.org/show_bug.cgi?id=38661))
|
||||
* Implement shell32 NewMenu class with new folder item ([Wine Bug #24812](https://bugs.winehq.org/show_bug.cgi?id=24812))
|
||||
* Implement special handling for calling GetChildContainer with an empty string ([Wine Bug #38014](https://bugs.winehq.org/show_bug.cgi?id=38014))
|
||||
* Implement stub for ProcessQuotaLimits info class
|
||||
* Implement stub for ntoskrnl.IoGetAttachedDeviceReference
|
||||
* Implement stub for ntoskrnl.KeDelayExecutionThread.
|
||||
* Implement stubs for ntoskrnl.Ex{Acquire,Release}FastMutexUnsafe
|
||||
* Implement stubs for ntoskrnl.ObReferenceObjectByPointer and ntoskrnl.ObDereferenceObject
|
||||
* Implement {Set,Get}ThreadGroupAffinity and related ntdll functions ([Wine Bug #36549](https://bugs.winehq.org/show_bug.cgi?id=36549))
|
||||
* Improve INetFwAuthorizedApplication::get_ProcessImageFileName stub
|
||||
* Improve ReadDataAvailable handling in FilePipeLocalInformation class
|
||||
* Improve startup performance by delaying font initialization
|
||||
* Improve stub for AEV_GetVolumeRange ([Wine Bug #35658](https://bugs.winehq.org/show_bug.cgi?id=35658))
|
||||
@@ -216,6 +222,7 @@ for more details.*
|
||||
* Jedi Knight: Dark Forces II crashes with winmm set to native ([Wine Bug #37983](https://bugs.winehq.org/show_bug.cgi?id=37983))
|
||||
* Lego Stunt Rally requires DXTn software de/encoding support ([Wine Bug #25486](https://bugs.winehq.org/show_bug.cgi?id=25486))
|
||||
* MSYS2 expects correct handling of WRITECOPY memory protection ([Wine Bug #35561](https://bugs.winehq.org/show_bug.cgi?id=35561))
|
||||
* Make ddraw1 and ddraw_surface1 vtable as writable ([Wine Bug #39534](https://bugs.winehq.org/show_bug.cgi?id=39534))
|
||||
* Make it possible to change media center / tablet pc status ([Wine Bug #18732](https://bugs.winehq.org/show_bug.cgi?id=18732))
|
||||
* Map EXDEV error code to STATUS_NOT_SAME_DEVICE
|
||||
* MediaCoder needs CUDA for video encoding ([Wine Bug #37664](https://bugs.winehq.org/show_bug.cgi?id=37664))
|
||||
@@ -231,15 +238,16 @@ for more details.*
|
||||
* Properly implement imagehlp.ImageLoad and ImageUnload ([Wine Bug #23455](https://bugs.winehq.org/show_bug.cgi?id=23455))
|
||||
* Properly initialize caps->dwZBufferBitDepths in ddraw7_GetCaps ([Wine Bug #27002](https://bugs.winehq.org/show_bug.cgi?id=27002))
|
||||
* Properly render themed buttons when they are pressed ([Wine Bug #37584](https://bugs.winehq.org/show_bug.cgi?id=37584))
|
||||
* Protect TVM_GETITEM from invalid item pointers ([Wine Bug #33001](https://bugs.winehq.org/show_bug.cgi?id=33001))
|
||||
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
|
||||
* Refresh MDI menus when DefMDIChildProc(WM_SETTEXT) is called ([Wine Bug #21855](https://bugs.winehq.org/show_bug.cgi?id=21855))
|
||||
* Report correct ObjectName for NamedPipe wineserver objects
|
||||
* Return STATUS_OBJECT_NAME_INVALID in wine_nt_to_unix_file_name for paths that only contain a prefix ([Wine Bug #39133](https://bugs.winehq.org/show_bug.cgi?id=39133))
|
||||
* Return a dummy BIOS name in Win32_BIOS record
|
||||
* Return STATUS_INVALID_DEVICE_REQUEST when trying to call NtReadFile on directory
|
||||
* Return WN_NOT_CONNECTED from WNetGetUniversalName REMOTE_NAME_INFO_LEVEL stub ([Wine Bug #39452](https://bugs.winehq.org/show_bug.cgi?id=39452))
|
||||
* Return a valid mesh in D3DXCreateTeapot ([Wine Bug #36884](https://bugs.winehq.org/show_bug.cgi?id=36884))
|
||||
* Return an error when trying to open a terminated process ([Wine Bug #37087](https://bugs.winehq.org/show_bug.cgi?id=37087))
|
||||
* Return correct IMediaSeeking stream positions in quartz
|
||||
* Return correct values for GetThreadTimes function ([Wine Bug #20230](https://bugs.winehq.org/show_bug.cgi?id=20230))
|
||||
* Return default palette entries from GetSystemPaletteEntries for non-palette-based devices ([Wine Bug #36895](https://bugs.winehq.org/show_bug.cgi?id=36895))
|
||||
* Return dummy ID3DXSkinInfo interface when skinning info not present ([Wine Bug #33904](https://bugs.winehq.org/show_bug.cgi?id=33904))
|
||||
* Return fake device type when systemroot is located on virtual disk ([Wine Bug #36546](https://bugs.winehq.org/show_bug.cgi?id=36546))
|
||||
* Return proper status codes when NtReadFile/NtWriteFile is called on closed (but not disconnected) pipe
|
||||
@@ -251,8 +259,8 @@ for more details.*
|
||||
* Set NamedPipeState to FILE_PIPE_CLOSING_STATE on broken pipe in NtQueryInformationFile
|
||||
* Share source of d3dx9_36 with d3dx9_33 to avoid Wine DLL forwards ([Wine Bug #21817](https://bugs.winehq.org/show_bug.cgi?id=21817))
|
||||
* Show unmounted devices in winecfg and allow changing the unix path
|
||||
* Show windows version when collecting system info in winedbg
|
||||
* Silence repeated LocaleNameToLCID/LCIDToLocaleName unsupported flags FIXMEs ([Wine Bug #30076](https://bugs.winehq.org/show_bug.cgi?id=30076))
|
||||
* Silence repeated wbemprox "timeout not supported" fixme ([Wine Bug #37618](https://bugs.winehq.org/show_bug.cgi?id=37618))
|
||||
* Skip unknown item when decoding a CMS certificate ([Wine Bug #34388](https://bugs.winehq.org/show_bug.cgi?id=34388))
|
||||
* Software support for Environmental Audio Extensions (EAX)
|
||||
* Super Mario 3: Mario Forever fails to load keyboard mapping from profile files. ([Wine Bug #18099](https://bugs.winehq.org/show_bug.cgi?id=18099))
|
||||
@@ -270,28 +278,23 @@ for more details.*
|
||||
* Support for ID3DXSkinInfoImpl_UpdateSkinnedMesh ([Wine Bug #32572](https://bugs.winehq.org/show_bug.cgi?id=32572))
|
||||
* Support for Junction Points ([Wine Bug #12401](https://bugs.winehq.org/show_bug.cgi?id=12401))
|
||||
* Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath ([Wine Bug #30385](https://bugs.winehq.org/show_bug.cgi?id=30385))
|
||||
* Support for LoadIconMetric ([Wine Bug #35375](https://bugs.winehq.org/show_bug.cgi?id=35375))
|
||||
* Support for MPEG2 DXVA2 GPU video decoding through vaapi
|
||||
* Support for NVIDIA video encoder library (nvencodeapi)
|
||||
* Support for NtQuerySection ([Wine Bug #37338](https://bugs.winehq.org/show_bug.cgi?id=37338))
|
||||
* Support for PulseAudio backend for audio ([Wine Bug #10495](https://bugs.winehq.org/show_bug.cgi?id=10495))
|
||||
* Support for SHCreateSessionKey ([Wine Bug #35630](https://bugs.winehq.org/show_bug.cgi?id=35630))
|
||||
* Support for TransmitFile ([Wine Bug #5048](https://bugs.winehq.org/show_bug.cgi?id=5048))
|
||||
* Support for WTSEnumerateProcessesW ([Wine Bug #29903](https://bugs.winehq.org/show_bug.cgi?id=29903))
|
||||
* Support for extra large and jumbo icon lists in shell32 ([Wine Bug #24721](https://bugs.winehq.org/show_bug.cgi?id=24721))
|
||||
* Support for inherited file ACLs
|
||||
* Support for linux priority levels for faster performance
|
||||
* Support for loader dll redirections
|
||||
* Support for named pipe message mode (Linux only) ([Wine Bug #17195](https://bugs.winehq.org/show_bug.cgi?id=17195))
|
||||
* Support for non-blocking SIO_ADDRESS_LIST_CHANGE requests ([Wine Bug #38062](https://bugs.winehq.org/show_bug.cgi?id=38062))
|
||||
* Support for pasting HTML from Unix applications ([Wine Bug #7372](https://bugs.winehq.org/show_bug.cgi?id=7372))
|
||||
* Support for process ACLs ([Wine Bug #22006](https://bugs.winehq.org/show_bug.cgi?id=22006))
|
||||
* Support for setcap on wine-preloader ([Wine Bug #26256](https://bugs.winehq.org/show_bug.cgi?id=26256))
|
||||
* Support for shell32 file operation progress dialog
|
||||
* Support for stored file ACLs ([Wine Bug #33576](https://bugs.winehq.org/show_bug.cgi?id=33576))
|
||||
* Support for ws2_32.dll.WSAPoll ([Wine Bug #38601](https://bugs.winehq.org/show_bug.cgi?id=38601))
|
||||
* Translate flags in LaunchINFSectionW
|
||||
* Try harder to get the host name address in getaddrinfo() ([Wine Bug #29609](https://bugs.winehq.org/show_bug.cgi?id=29609))
|
||||
* Tumblebugs 2 requires DXTn software encoding support ([Wine Bug #29586](https://bugs.winehq.org/show_bug.cgi?id=29586))
|
||||
* Update a XIM candidate position when cursor location changes ([Wine Bug #30938](https://bugs.winehq.org/show_bug.cgi?id=30938))
|
||||
* Use GLX_MESA_query_renderer extension to get more exact GPU infos
|
||||
@@ -299,8 +302,8 @@ for more details.*
|
||||
* Use POSIX implementation to enumerate directory content on FreeBSD ([Wine Bug #35397](https://bugs.winehq.org/show_bug.cgi?id=35397))
|
||||
* Use actual program name if available to describe PulseAudio streams
|
||||
* Use manual relay for RunDLL_CallEntry16 in shell32 ([Wine Bug #23033](https://bugs.winehq.org/show_bug.cgi?id=23033))
|
||||
* Use proper glyph names in wineps driver to allow copying text from generated PDF files ([Wine Bug #6416](https://bugs.winehq.org/show_bug.cgi?id=6416))
|
||||
* Use video memory for rendering targets if possible ([Wine Bug #34906](https://bugs.winehq.org/show_bug.cgi?id=34906))
|
||||
* Use wrapper functions for syscalls to appease Chromium sandbox (32-bit) ([Wine Bug #39403](https://bugs.winehq.org/show_bug.cgi?id=39403))
|
||||
* Voobly expects correct handling of WRITECOPY memory protection ([Wine Bug #29384](https://bugs.winehq.org/show_bug.cgi?id=29384))
|
||||
* Wine ignores IDF_CHECKFIRST flag in SetupPromptForDisk ([Wine Bug #20465](https://bugs.winehq.org/show_bug.cgi?id=20465))
|
||||
* Workaround for shlwapi URLs with relative paths
|
||||
|
156
debian/changelog
vendored
156
debian/changelog
vendored
@@ -1,3 +1,159 @@
|
||||
wine-staging (1.7.54) unstable; urgency=low
|
||||
* Updated server-FileEndOfFileInformation patchset, growing a memory mapped
|
||||
file should still work.
|
||||
* Added patch to use wrapper function for consolidation callback during
|
||||
unwinding.
|
||||
* Added patch to implement stub for ProcessQuotaLimits info class.
|
||||
* Added patch to release capture before sending WM_COMMAND.
|
||||
* Added patch to block interruption of system APC in server_select.
|
||||
* Added patch to implement FileNamesInformation class support for
|
||||
NtQueryDirectoryFile.
|
||||
* Added patch for implementation of additional HSTRING functions.
|
||||
* Added patches for memory allocation cleanup in gdiplus functions.
|
||||
* Added patch to implement hal.KeQueryPerformanceCounter.
|
||||
* Added patch to fix build failure (introduced by makefile rewrite).
|
||||
* Added patch to pass '-read_only_relocs suppress' to the linker on OSX and
|
||||
enable patchset to use Nt* function wrappers.
|
||||
* Added patch to use close_handle instead of NtClose for internal memory
|
||||
management functions.
|
||||
* Added patch to improve INetFwAuthorizedApplication::get_ProcessImageFileName
|
||||
stub.
|
||||
* Added patch for SetCoalescableTimer stub function.
|
||||
* Added patch for SfcGetNextProtectedFile stub function.
|
||||
* Added patch to zero out returned stats when IEnumSTATSTG::Next reaches end
|
||||
of enumeration.
|
||||
* Added patch to fix multiple issues in widl typelib generation.
|
||||
* Added patch for SetConsoleKeyShortcuts stub function.
|
||||
* Added patch to implement kernel32.GetConsoleFontSize.
|
||||
* Added patch to implement SystemHandleInformation info class.
|
||||
* Removed patch to implement kernel32.GetPhysicallyInstalledSystemMemory
|
||||
(accepted upstream).
|
||||
* Partially removed patches for ws2_32 TransmitFile (accepted upstream).
|
||||
* Removed patch to fix NULL dereference in ICSeqCompressFrameStart (fixed
|
||||
upstream).
|
||||
* Removed patch to return default palette entries from GetSystemPaletteEntries
|
||||
for non-palette-based devices (accepted upstream).
|
||||
* Removed patch to use wrapper function for consolidate callback during
|
||||
unwinding on x86_64 (accepted upstream).
|
||||
* Removed patch to release capture before sending WM_COMMAND (accepted
|
||||
upstream).
|
||||
* Removed patch to avoid check for signaled object after user APC in
|
||||
server_select (accepted upstream).
|
||||
* Removed patch to implement combase.WindowsSubstring function (accepted
|
||||
upstream).
|
||||
* Removed patch to fix build failure (identical patch committed upstream).
|
||||
* Removed patch for vcruntime120 dll (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 01 Nov 2015 00:14:59 +0100
|
||||
|
||||
wine-staging (1.7.53) unstable; urgency=low
|
||||
* Added patch to implement support for msiexec /passive command line option.
|
||||
* Added patch to implement stub for DSPROPSETID_EAX20_ListenerProperties.
|
||||
* Added patch to show windows version when collecting system info in winedbg.
|
||||
* Added patch to implement DSPROPSETID_EAX20_ListenerProperties stub.
|
||||
* Added patch to implement DSPROPSETID_EAX20_BufferProperties stub.
|
||||
* Added patch to fix handling of wait interrupted by User APC.
|
||||
* Added patch to use wrapper functions for syscalls to appease Chromium
|
||||
sandbox (32-bit Linux only).
|
||||
* Added patch to fix the initialization of combined DACLs when the new DACL is
|
||||
empty.
|
||||
* Added patch to implement comctl32.PROPSHEET_InsertPage.
|
||||
* Added patch to return WN_NOT_CONNECTED from WNetGetUniversalName
|
||||
REMOTE_NAME_INFO_LEVEL stub.
|
||||
* Added patch to always use 64-bit registry view on WOW64 setups.
|
||||
* Added patch to implement kernel32.GetPhysicallyInstalledSystemMemory.
|
||||
* Added patch to delay signaling threads until they are really gone (fixes
|
||||
Wine Staging Bug #473).
|
||||
* Removed patch to mark RegOpenKeyExA, RegCloseKey and RegQueryValueExA as
|
||||
hotpatchable (accepted upstream).
|
||||
* Removed patch to mark BitBlt and StretchDIBits as hotpatchable (accepted
|
||||
upstream).
|
||||
* Removed patch to mark WritePrivateProfileStringA as hotpatchable (accepted
|
||||
upstream).
|
||||
* Removed patch to implement ws2_32.InetPtonW function (accepted upstream).
|
||||
* Removed patch to pass cookie by reference to msvcrt_local_unwind4 in
|
||||
_seh_longjmp_unwind4 (accepted upstream).
|
||||
* Removed patch to implement LoadIconMetric (accepted upstream).
|
||||
* Removed patch to correctly parse double quotes in msi token values (accepted
|
||||
upstream).
|
||||
* Removed patch to ignore width/height passed to edit control in WM_SIZE
|
||||
message (accepted upstream).
|
||||
* Removed patch to silence repeated wbemprox "timeout not supported" fixme
|
||||
(fixed upstream).
|
||||
* Removed patch to add support for /passive command line option to msiexec
|
||||
(fixed upstream).
|
||||
* Removed patch to return a dummy BIOS name in Win32_BIOS (accepted upstream).
|
||||
* Removed patch to implement empty enumerator for IWiaDevMgr::EnumDeviceInfo
|
||||
(accepted upstream).
|
||||
* Removed patch to translate flags in LaunchINFSectionW (accepted upstream).
|
||||
* Removed patch to return success when trying to disable proxy, although no
|
||||
proxy is set (accepted upstream).
|
||||
* Partially removed patches for ws2_32 TransmitFile (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Mon, 19 Oct 2015 06:08:07 +0200
|
||||
|
||||
wine-staging (1.7.52) unstable; urgency=low
|
||||
* Added patch to return STATUS_INVALID_DEVICE_REQUEST when trying to call
|
||||
NtReadFile on directory.
|
||||
* Added patch to ignore higher bits in selector for ThreadDescriptorTableEntry
|
||||
info query.
|
||||
* Added patch to ensure codepage conversion fails when destination length is
|
||||
smaller than zero.
|
||||
* Added patches for msidb commandline utility (to read and write *.msi files).
|
||||
* Added patch to implement semi-stub for d3d8 swapchain effect
|
||||
D3DSWAPEFFECT_COPY_VSYNC.
|
||||
* Added patch to reduce stack usage of virtual memory functions.
|
||||
* Added patch to fix calculation of listbox size when horizontal scrollbar is
|
||||
present.
|
||||
* Added patch to ignore width/height passed to edit control in WM_SIZE
|
||||
message.
|
||||
* Added patch to refresh MDI menus when DefMDIChildProc(WM_SETTEXT) is called.
|
||||
* Added patch to protect TVM_GETITEM from invalid item pointers.
|
||||
* Added patch to avoid using GdipAlloc and GdipFree in internal gdiplus
|
||||
functions.
|
||||
* Added patch to implement additional stub functions in authz.dll.
|
||||
* Added patch to avoid waiting for hook thread startup in
|
||||
IDirectInput8::Initialize.
|
||||
* Added patch to pass cookie by reference to msvcrt_local_unwind4 in
|
||||
_seh_longjmp_unwind4.
|
||||
* Added patch to mark RegOpenKeyExA, RegCloseKey and RegQueryValueExA as
|
||||
hotpatchable.
|
||||
* Added patch to mark BitBlt and StretchDIBits as hotpatchable.
|
||||
* Added patch to mark WritePrivateProfileStringA as hotpatchable.
|
||||
* Added patch to make ddraw1 and ddraw_surface1 vtable as writable.
|
||||
* Added patch for implementation of mfplat.MFTEnum.
|
||||
* Added patch to implement ws2_32.InetPtonA/W functions.
|
||||
* Added patch to fix random crashes of Cygwin/MSYS2 for some compilers.
|
||||
* Added patch to correctly parse double quotes in the msi token values.
|
||||
* Removed patch to fix possible memory leak in netprofm init_networks (fixed
|
||||
upstream).
|
||||
* Removed patch for stub of dwmapi.DwmUpdateThumbnailProperties (accepted
|
||||
upstream).
|
||||
* Removed patch free RPC parameters allocated by application before anything
|
||||
else (fixed upstream).
|
||||
* Removed patch to try harder to get the host name address in getaddrinfo
|
||||
(accepted upstream).
|
||||
* Rempved patch to use proper glyph names in wineps driver (accepted
|
||||
upstream).
|
||||
* Removed patches with stubs for d3dx10_43.D3DX10CreateEffectFromFileA/W
|
||||
(accepted upstream).
|
||||
* Removed patch to ignore higher bits in selector for
|
||||
ThreadDescriptorTableEntry info query (accepted upstream).
|
||||
* Removed patch to avoid deprecation warning for OpenCL 1.2 APIs (accepted
|
||||
upstream).
|
||||
* Removed patch to forward exitcode from child process in wineconsole
|
||||
(accepted upstream).
|
||||
* Removed patch to fix failure to create anonymous file mapping after failed
|
||||
open_fd server call (accepted upstream).
|
||||
* Removed patch to implement semi-stub for d3d8 swapchain effect
|
||||
D3DSWAPEFFECT_COPY_VSYNC (identical patch accepted upstream).
|
||||
* Removed patch to implement {Set,Get}ThreadGroupAffinity and related ntdll
|
||||
functions (accepted upstream).
|
||||
* Removed patch to return STATUS_OBJECT_NAME_INVALID in
|
||||
wine_nt_to_unix_file_name for paths that only contain a prefix (accepted
|
||||
upstream).
|
||||
* Removed patch to implement support for non-blocking SIO_ADDRESS_LIST_CHANGE
|
||||
requests (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sat, 03 Oct 2015 22:15:47 +0200
|
||||
|
||||
wine-staging (1.7.51) unstable; urgency=low
|
||||
* Update patchset for CSMT (commandstream multithreading), to keep in sync
|
||||
with upstream repository.
|
||||
|
25
debian/tools/README.md.in
vendored
25
debian/tools/README.md.in
vendored
@@ -1,23 +1,18 @@
|
||||
What is Wine Staging?
|
||||
---------------------
|
||||
|
||||
**Warning: Do not report bugs at bugs.winehq.org when using this version!
|
||||
Please take a look [here](http://bugs.wine-staging.com) for more information
|
||||
about how to report bugs.**
|
||||
**Wine Staging** is the testing area of winehq.org. It contains bug fixes and
|
||||
features, which have not been integrated into the development branch yet. The
|
||||
idea of Wine Staging is to provide experimental features faster to end users and
|
||||
to give developers the possibility to discuss and improve their patches before
|
||||
they are integrated into the main branch. More information about Wine Staging
|
||||
can also be found on our website [wine-staging.com](http://wine-staging.com).
|
||||
|
||||
**Wine Staging** (formerly wine-compholio) is a special wine version containing
|
||||
bug fixes and features, which are not yet available in regular wine versions.
|
||||
The idea of Wine Staging is to provide new features faster to end users and to
|
||||
give developers the possibility to discuss and improve their patches before
|
||||
they are sent upstream. We also intend to create a community of wine developers
|
||||
to share experience and to make it easier for beginners to start hacking on
|
||||
wine. More information about Wine Staging can also be found on our website
|
||||
[wine-staging.com](http://wine-staging.com).
|
||||
Although we are reviewing and testing all patches carefully before adding them,
|
||||
you may encounter additional bugs, which are not present in the development
|
||||
branch. Do not hesitate to report such issues at winehq.org, so they can be
|
||||
fixed before the feature gets integrated.
|
||||
|
||||
Although we are reviewing and testing all patches before adding them, you may
|
||||
encounter additional bugs, which are not present in vanilla wine. Make sure to
|
||||
report such issues in our bug tracker instead of winehq.org so that we can try
|
||||
to solve them in future versions. Thanks!
|
||||
|
||||
How to install and use Wine Staging
|
||||
-----------------------------------
|
||||
|
188
debian/tools/patchupdate.py
vendored
188
debian/tools/patchupdate.py
vendored
@@ -1,8 +1,10 @@
|
||||
#!/usr/bin/python2
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Automatic patch dependency checker and apply script/README.md generator.
|
||||
#
|
||||
# Copyright (C) 2014-2015 Sebastian Lackner
|
||||
# Copyright (C) 2015 Michael MĂĽller
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
@@ -38,8 +40,8 @@ import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import textwrap
|
||||
import urllib
|
||||
import xml.dom.minidom
|
||||
import xmlrpclib
|
||||
import ConfigParser
|
||||
|
||||
_devnull = open(os.devnull, 'wb')
|
||||
|
||||
@@ -50,6 +52,7 @@ cached_patch_result = {}
|
||||
|
||||
class config(object):
|
||||
path_cache = ".patchupdate.cache"
|
||||
path_config = os.path.expanduser("~/.config/patchupdate.conf")
|
||||
|
||||
path_patches = "patches"
|
||||
path_changelog = "debian/changelog"
|
||||
@@ -63,6 +66,14 @@ class config(object):
|
||||
|
||||
path_IfDefined = "9999-IfDefined.patch"
|
||||
|
||||
bugtracker_url = "https://bugs.winehq.org/xmlrpc.cgi"
|
||||
bugtracker_defaultcc = ["michael@fds-team.de", "sebastian@fds-team.de",
|
||||
"erich.e.hoover@wine-staging.com"]
|
||||
bugtracker_user = None
|
||||
bugtracker_pass = None
|
||||
|
||||
github_url = "https://github.com/wine-compholio/wine-staging"
|
||||
|
||||
class PatchUpdaterError(RuntimeError):
|
||||
"""Failed to update patches."""
|
||||
pass
|
||||
@@ -145,34 +156,6 @@ def _parse_int(val, default=0):
|
||||
except AttributeError:
|
||||
return default
|
||||
|
||||
def _winebugs_query(bugids):
|
||||
"""Query short_desc from multiple wine bugzilla bugs at the same time."""
|
||||
bugids = list(set(bugids)) # Remove duplicates and convert to fixed order
|
||||
if len(bugids) == 0: return {}
|
||||
|
||||
# Query bugzilla
|
||||
url = "http://bugs.winehq.org/show_bug.cgi?%s&ctype=xml&field=short_desc&field=bug_status&field=resolution" % \
|
||||
"&".join(["id=%d" % bugid for bugid in bugids])
|
||||
with contextlib.closing(urllib.urlopen(url)) as fp:
|
||||
data = xml.dom.minidom.parseString(fp.read())
|
||||
|
||||
# convert xml in a dictionary containing all bugs we found
|
||||
result = {}
|
||||
for element in data.getElementsByTagName('bug_id'):
|
||||
bugids.remove(int(element.firstChild.data))
|
||||
|
||||
def _get_text(n):
|
||||
return n.firstChild.data if (n and n.firstChild) else None
|
||||
|
||||
for bugid, element in zip(bugids, data.getElementsByTagName('bug')):
|
||||
if element.getElementsByTagName('bug_id'): continue
|
||||
result[bugid] = {
|
||||
'short_desc': _get_text(element.getElementsByTagName('short_desc')[0]),
|
||||
'bug_status': _get_text(element.getElementsByTagName('bug_status')[0]),
|
||||
'resolution': _get_text(element.getElementsByTagName('resolution')[0]) }
|
||||
|
||||
return result
|
||||
|
||||
def _read_changelog():
|
||||
"""Read information from changelog."""
|
||||
with open(config.path_changelog) as fp:
|
||||
@@ -180,12 +163,12 @@ def _read_changelog():
|
||||
r = re.match("^([a-zA-Z0-9][^(]*)\((.*)\) ([^;]*)", line)
|
||||
if r: yield (r.group(1).strip(), r.group(2).strip(), r.group(3).strip())
|
||||
|
||||
def _latest_staging_version(only_stable=False):
|
||||
"""Get version number of the latest stable release."""
|
||||
def _latest_staging_version(only_released=False):
|
||||
"""Get version number of the latest release / unreleased version."""
|
||||
for package, version, distro in _read_changelog():
|
||||
if distro.lower() != "unreleased":
|
||||
return version
|
||||
elif not only_stable:
|
||||
elif not only_released:
|
||||
return "%s (unreleased)" % version
|
||||
|
||||
def _latest_wine_commit(commit=None):
|
||||
@@ -235,7 +218,6 @@ def read_patchset(revision = None):
|
||||
unique_id = itertools.count()
|
||||
all_patches = {}
|
||||
name_to_id = {}
|
||||
all_bugids = set()
|
||||
categories = {}
|
||||
|
||||
# Read in sorted order (to ensure created Makefile doesn't change too much)
|
||||
@@ -317,13 +299,11 @@ def read_patchset(revision = None):
|
||||
if r:
|
||||
bugid = int(val)
|
||||
patch.fixes.append((bugid, None))
|
||||
all_bugids.add(bugid)
|
||||
continue
|
||||
r = re.match("^\\[ *([0-9]+) *\\](.*)$", val)
|
||||
if r:
|
||||
bugid = int(r.group(1))
|
||||
patch.fixes.append((bugid, r.group(2).strip()))
|
||||
all_bugids.add(bugid)
|
||||
continue
|
||||
patch.fixes.append((None, val))
|
||||
|
||||
@@ -354,21 +334,6 @@ def read_patchset(revision = None):
|
||||
all_patches[i] = patch
|
||||
name_to_id[name] = i
|
||||
|
||||
# To simplify the task of keeping the bug list up-to-date, list all bugs
|
||||
# which might require attention.
|
||||
if revision is None:
|
||||
once = True
|
||||
for bugid, bug in sorted(_winebugs_query(all_bugids).items()):
|
||||
if bug['bug_status'] not in ["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"]:
|
||||
if once:
|
||||
print ""
|
||||
print "WARNING: The following bugs might require attention:"
|
||||
print ""
|
||||
once = False
|
||||
print " #%d - \"%s\" - %s %s" % (bugid, bug['short_desc'], bug['bug_status'],
|
||||
bug['resolution'] if bug['resolution'] else "")
|
||||
print ""
|
||||
|
||||
return all_patches
|
||||
|
||||
def causal_time_combine(a, b):
|
||||
@@ -471,6 +436,81 @@ def resolve_dependencies(all_patches, index = None, depends = None, auto_deps =
|
||||
_resolve(depends)
|
||||
return resolved
|
||||
|
||||
def sync_bug_status(bugtracker, bug, url):
|
||||
"""Automatically updates the STAGED information of a referenced bug."""
|
||||
|
||||
# We don't want to reopen bugs
|
||||
if bug['status'] not in ["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "STAGED"]:
|
||||
return
|
||||
|
||||
if config.bugtracker_user is None or config.bugtracker_pass is None:
|
||||
raise PatchUpdaterError("Can't update bug without username/password set")
|
||||
|
||||
changes = { 'ids' : bug['id'],
|
||||
'Bugzilla_login' : config.bugtracker_user,
|
||||
'Bugzilla_password' : config.bugtracker_pass }
|
||||
|
||||
# Update bug status
|
||||
if bug['status'] != "STAGED":
|
||||
changes['status'] = "STAGED"
|
||||
|
||||
# Update patchset URL
|
||||
if bug['cf_staged_patchset'] != url:
|
||||
changes['cf_staged_patchset'] = url
|
||||
|
||||
# Add missing CC contacts
|
||||
missing_cc = []
|
||||
for cc in config.bugtracker_defaultcc:
|
||||
if cc not in bug['cc']:
|
||||
missing_cc.append(cc)
|
||||
if len(missing_cc):
|
||||
changes["cc"] = {"add" : missing_cc}
|
||||
|
||||
bugtracker.Bug.update(changes)
|
||||
|
||||
def check_bug_status(all_patches, sync_bugs=False):
|
||||
"""Checks the information in the referenced bugs and corrects them if sync_bugs is set."""
|
||||
|
||||
all_bugids = set()
|
||||
url_map = {}
|
||||
|
||||
for _, patch in all_patches.iteritems():
|
||||
url = "%s/tree/master/%s" % (config.github_url, patch.directory)
|
||||
for bugid, bugname in patch.fixes:
|
||||
if bugid is not None:
|
||||
url_map[bugid] = url
|
||||
all_bugids.add(bugid)
|
||||
|
||||
bugtracker = xmlrpclib.ServerProxy(config.bugtracker_url)
|
||||
bug_list = bugtracker.Bug.get(dict(ids=list(all_bugids)))
|
||||
staged_bugs = bugtracker.Bug.search(dict(status="STAGED"))
|
||||
|
||||
once = True
|
||||
for bug in bug_list['bugs']:
|
||||
if bug['status'] != "STAGED" or bug['cf_staged_patchset'] != url_map[bug['id']]:
|
||||
if once:
|
||||
print ""
|
||||
print "WARNING: The following bugs might require attention:"
|
||||
print ""
|
||||
once = False
|
||||
print " #%d - \"%s\" - %s %s - %s" % (bug['id'], bug['summary'], bug['status'],
|
||||
bug['resolution'], bug['cf_staged_patchset'])
|
||||
if sync_bugs:
|
||||
sync_bug_status(bugtracker, bug, url_map[bug['id']])
|
||||
|
||||
once = True
|
||||
for bug in staged_bugs['bugs']:
|
||||
if bug['id'] not in all_bugids:
|
||||
if once:
|
||||
print ""
|
||||
print "WARNING: The following bugs are incorrectly marked as STAGED:"
|
||||
print ""
|
||||
once = False
|
||||
print " #%d - \"%s\" - %s %s" % (bug['id'], bug['summary'], bug['status'],
|
||||
bug['resolution'])
|
||||
|
||||
print ""
|
||||
|
||||
def generate_ifdefined(all_patches, skip_checks=False):
|
||||
"""Update autogenerated ifdefined patches, which can be used to selectively disable features at compile time."""
|
||||
enabled_patches = dict([(i, patch) for i, patch in all_patches.iteritems() if not patch.disabled])
|
||||
@@ -615,22 +655,21 @@ def generate_script(all_patches, skip_checks=False):
|
||||
for i, patch1 in set_apply:
|
||||
for j, patch2 in set_skip:
|
||||
if causal_time_smaller(patch2.verify_time, patch1.verify_time):
|
||||
return None # we can skip this test
|
||||
return True # we can skip this test
|
||||
|
||||
try:
|
||||
original = original_content
|
||||
for i, _ in set_apply:
|
||||
original = patchutils.apply_patch(original, selected_patches[i][1], fuzz=0)
|
||||
except patchutils.PatchApplyError:
|
||||
return current
|
||||
return False
|
||||
|
||||
return None # everything is fine
|
||||
return True # everything is fine
|
||||
|
||||
def test_apply_seq(current_list):
|
||||
for current in current_list:
|
||||
failed = test_apply(current)
|
||||
if failed is not None:
|
||||
return failed
|
||||
if not test_apply(current):
|
||||
return current
|
||||
return None
|
||||
|
||||
iterables = []
|
||||
@@ -647,6 +686,10 @@ def generate_script(all_patches, skip_checks=False):
|
||||
# Update the dependency cache
|
||||
dependency_cache[filename] = unique_hash
|
||||
|
||||
# Delete outdated cache information
|
||||
for filename in dependency_cache.keys():
|
||||
if not modified_files.has_key(filename):
|
||||
del dependency_cache[filename]
|
||||
finally:
|
||||
pool.close()
|
||||
_save_dict(config.path_cache, dependency_cache)
|
||||
@@ -759,7 +802,7 @@ def generate_script(all_patches, skip_checks=False):
|
||||
# Add changes to git
|
||||
subprocess.call(["git", "add", config.path_script])
|
||||
|
||||
def generate_markdown(all_patches, stable_patches):
|
||||
def generate_markdown(all_patches, release_patches):
|
||||
"""Generate README.md including information about specific patches and bugfixes."""
|
||||
|
||||
def _format_bug(mode, bugid, bugname):
|
||||
@@ -776,8 +819,8 @@ def generate_markdown(all_patches, stable_patches):
|
||||
key = bugid if bugid is not None else bugname
|
||||
all_fixes[key] = [1, bugid, bugname]
|
||||
|
||||
# Compare with fixes for latest stable version
|
||||
for _, patch in stable_patches.iteritems():
|
||||
# Compare with fixes for last release
|
||||
for _, patch in release_patches.iteritems():
|
||||
for bugid, bugname in patch.fixes:
|
||||
if bugid is not None and all_fixes.has_key(bugid):
|
||||
all_fixes[bugid][0] = 0
|
||||
@@ -870,24 +913,39 @@ if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="Automatic patch dependency checker and apply script/README.md generator.")
|
||||
parser.add_argument('--skip-checks', action='store_true', help="Skip dependency checks")
|
||||
parser.add_argument('--commit', type=_check_commit_hash, help="Use given commit hash instead of HEAD")
|
||||
parser.add_argument('--sync-bugs', action='store_true', help="Update bugs in bugtracker (requires admin rights)")
|
||||
args = parser.parse_args()
|
||||
|
||||
tools_directory = os.path.dirname(os.path.realpath(__file__))
|
||||
os.chdir(os.path.join(tools_directory, "./../.."))
|
||||
|
||||
config_parser = ConfigParser.ConfigParser()
|
||||
config_parser.read(config.path_config)
|
||||
|
||||
try:
|
||||
config.bugtracker_user = config_parser.get('bugtracker', 'username')
|
||||
config.bugtracker_pass = config_parser.get('bugtracker', 'password')
|
||||
except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
|
||||
config.bugtracker_user = None
|
||||
config.bugtracker_pass = None
|
||||
|
||||
try:
|
||||
|
||||
# Get information about Wine and Staging version
|
||||
latest_wine_commit = _latest_wine_commit(args.commit)
|
||||
latest_staging_version = _latest_staging_version(only_stable=True)
|
||||
latest_staging_version = _latest_staging_version(only_released=True)
|
||||
|
||||
# Read current and stable patches
|
||||
all_patches = read_patchset()
|
||||
stable_patches = read_patchset(revision="v%s" % latest_staging_version)
|
||||
# Read current and release patches
|
||||
all_patches = read_patchset()
|
||||
release_patches = read_patchset(revision="v%s" % latest_staging_version)
|
||||
|
||||
# Check bugzilla
|
||||
check_bug_status(all_patches, sync_bugs=args.sync_bugs)
|
||||
|
||||
# Update autogenerated files
|
||||
generate_ifdefined(all_patches, skip_checks=args.skip_checks)
|
||||
generate_script(all_patches, skip_checks=args.skip_checks)
|
||||
generate_markdown(all_patches, stable_patches)
|
||||
generate_markdown(all_patches, release_patches)
|
||||
wrap_changelog()
|
||||
|
||||
except PatchUpdaterError as e:
|
||||
|
7
debian/tools/patchutils.py
vendored
7
debian/tools/patchutils.py
vendored
@@ -54,6 +54,7 @@ class PatchObject(object):
|
||||
self.patch_email = header['email']
|
||||
self.patch_subject = header['subject']
|
||||
self.patch_revision = header['revision'] if header.has_key('revision') else 1
|
||||
self.signed_off_by = header['signedoffby'] if header.has_key('signedoffby') else []
|
||||
|
||||
self.filename = filename
|
||||
self.offset_begin = None
|
||||
@@ -329,6 +330,12 @@ def read_patch(filename):
|
||||
if not subject.endswith("."): subject += "."
|
||||
header['subject'], header['revision'] = subject, revision
|
||||
|
||||
elif line.startswith("Signed-off-by: "):
|
||||
if not header.has_key('signedoffby'):
|
||||
header['signedoffby'] = []
|
||||
header['signedoffby'].append(_parse_author(line[15:]))
|
||||
assert fp.read() == line
|
||||
|
||||
elif line.startswith("diff --git "):
|
||||
tmp = line.strip().split(" ")
|
||||
if len(tmp) != 4: raise PatchParserError("Unable to parse git diff header line '%s'." % line)
|
||||
|
@@ -1,17 +1,18 @@
|
||||
From 70d9c625738a8c368e6276be3bed8baab9103083 Mon Sep 17 00:00:00 2001
|
||||
From 08d8e1c398ed6f3e237ad9fd3d29e10d09dcff3d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 2 May 2014 20:46:19 +0200
|
||||
Subject: user32: Decrease minimum SetTimer interval to 5 ms. (try 2)
|
||||
|
||||
---
|
||||
dlls/user32/message.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
dlls/user32/message.c | 2 +-
|
||||
dlls/user32/tests/msg.c | 2 ++
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/user32/message.c b/dlls/user32/message.c
|
||||
index be5d995..a371f72 100644
|
||||
index d122980..aec0938 100644
|
||||
--- a/dlls/user32/message.c
|
||||
+++ b/dlls/user32/message.c
|
||||
@@ -4439,7 +4439,7 @@ UINT_PTR WINAPI SetTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMERPROC proc )
|
||||
@@ -4443,7 +4443,7 @@ UINT_PTR WINAPI SetTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMERPROC proc )
|
||||
|
||||
if (proc) winproc = WINPROC_AllocProc( (WNDPROC)proc, FALSE );
|
||||
|
||||
@@ -20,6 +21,26 @@ index be5d995..a371f72 100644
|
||||
|
||||
SERVER_START_REQ( set_win_timer )
|
||||
{
|
||||
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
|
||||
index d92fbc7..dbaddb7 100644
|
||||
--- a/dlls/user32/tests/msg.c
|
||||
+++ b/dlls/user32/tests/msg.c
|
||||
@@ -8521,6 +8521,7 @@ static void test_timers(void)
|
||||
start = GetTickCount();
|
||||
while (GetTickCount()-start < 1001 && GetMessageA(&msg, info.hWnd, 0, 0))
|
||||
DispatchMessageA(&msg);
|
||||
+todo_wine
|
||||
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|
||||
|| broken(abs(count-64) < TIMER_COUNT_TOLERANCE) /* most common */
|
||||
|| broken(abs(count-43) < TIMER_COUNT_TOLERANCE) /* w2k3, win8 */,
|
||||
@@ -8589,6 +8590,7 @@ static void test_timers_no_wnd(void)
|
||||
start = GetTickCount();
|
||||
while (GetTickCount()-start < 1001 && GetMessageA(&msg, NULL, 0, 0))
|
||||
DispatchMessageA(&msg);
|
||||
+todo_wine
|
||||
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|
||||
|| broken(abs(count-64) < TIMER_COUNT_TOLERANCE) /* most common */,
|
||||
"did not get expected count for minimum timeout (%d != ~%d).\n",
|
||||
--
|
||||
1.8.3.2
|
||||
2.5.1
|
||||
|
||||
|
@@ -1,15 +1,15 @@
|
||||
From 598daa857778080524e3de4a5668a834ab084564 Mon Sep 17 00:00:00 2001
|
||||
From a41dac0b19ec2ba3807da4ac42d77717d79f1115 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 2 Oct 2014 19:44:31 +0200
|
||||
Subject: kernel32: Add winediag message to show warning, that this isn't
|
||||
vanilla wine.
|
||||
|
||||
---
|
||||
dlls/kernel32/process.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
dlls/kernel32/process.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
|
||||
index 2c8074b..70b2579 100644
|
||||
index b0c06e3..a2c1d4c 100644
|
||||
--- a/dlls/kernel32/process.c
|
||||
+++ b/dlls/kernel32/process.c
|
||||
@@ -65,6 +65,7 @@
|
||||
@@ -20,15 +20,14 @@ index 2c8074b..70b2579 100644
|
||||
|
||||
#ifdef __APPLE__
|
||||
extern char **__wine_get_main_environment(void);
|
||||
@@ -1099,6 +1100,15 @@ static DWORD WINAPI start_process( PEB *peb )
|
||||
@@ -1099,6 +1100,14 @@ static DWORD WINAPI start_process( PEB *peb )
|
||||
DPRINTF( "%04x:Starting process %s (entryproc=%p)\n", GetCurrentThreadId(),
|
||||
debugstr_w(peb->ProcessParameters->ImagePathName.Buffer), entry );
|
||||
|
||||
+ /* Wine developers don't like it, when bug are reported with Wine versions containing our patches. */
|
||||
+ if (CreateEventA(0, 0, 0, "__winestaging_warn_event") && GetLastError() != ERROR_ALREADY_EXISTS)
|
||||
+ {
|
||||
+ FIXME_(winediag)("Wine Staging %s is a testing version containing experimental patches.\n", wine_get_version());
|
||||
+ FIXME_(winediag)("Please report bugs at http://bugs.wine-staging.com (instead of winehq.org).\n");
|
||||
+ FIXME_(winediag)("Please mention your exact version when filing bug reports on winehq.org.\n");
|
||||
+ }
|
||||
+ else
|
||||
+ WARN_(winediag)("Wine Staging %s is a testing version containing experimental patches.\n", wine_get_version());
|
||||
@@ -37,5 +36,5 @@ index 2c8074b..70b2579 100644
|
||||
if (peb->BeingDebugged) DbgBreakPoint();
|
||||
return call_process_entry( peb, entry );
|
||||
--
|
||||
2.4.1
|
||||
2.5.1
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
From 0e76401ae2de47285c66ee0b59bdf7449136d060 Mon Sep 17 00:00:00 2001
|
||||
From 65feac97e132fb25278e7c4c904d2ae831bf8a50 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 2 Oct 2014 19:53:46 +0200
|
||||
Subject: winelib: Append '(Staging)' at the end of the version string.
|
||||
@@ -8,7 +8,7 @@ Subject: winelib: Append '(Staging)' at the end of the version string.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in
|
||||
index c961ba5..776168c 100644
|
||||
index bc5f6fe..799b032 100644
|
||||
--- a/libs/wine/Makefile.in
|
||||
+++ b/libs/wine/Makefile.in
|
||||
@@ -105,7 +105,7 @@ config_EXTRADEFS = \
|
||||
@@ -18,8 +18,8 @@ index c961ba5..776168c 100644
|
||||
- version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-@PACKAGE_VERSION@") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
|
||||
+ version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-@PACKAGE_VERSION@") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1 (Staging)";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
|
||||
|
||||
# Make sure that make_makefiles sees the generated rules
|
||||
.PHONY: install install-lib install-dev uninstall
|
||||
dummy:
|
||||
|
||||
--
|
||||
2.1.1
|
||||
2.6.1
|
||||
|
@@ -0,0 +1,110 @@
|
||||
From 646388b696afda85dccc76678af6a8955bf0b627 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
|
||||
Date: Fri, 16 Oct 2015 16:03:00 -0600
|
||||
Subject: advapi32: Move the DACL combining code into a separate routine.
|
||||
|
||||
---
|
||||
dlls/advapi32/security.c | 79 +++++++++++++++++++++++++++---------------------
|
||||
1 file changed, 45 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
|
||||
index 00dafe8..dad8b22 100644
|
||||
--- a/dlls/advapi32/security.c
|
||||
+++ b/dlls/advapi32/security.c
|
||||
@@ -5805,6 +5805,48 @@ BOOL WINAPI FileEncryptionStatusA(LPCSTR lpFileName, LPDWORD lpStatus)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+static NTSTATUS combine_dacls(ACL *parent, ACL *child, ACL **result)
|
||||
+{
|
||||
+ ACL *combined;
|
||||
+ int i;
|
||||
+
|
||||
+ /* initialize a combined DACL containing both inherited and new ACEs */
|
||||
+ combined = heap_alloc_zero(child->AclSize+parent->AclSize);
|
||||
+ if (!combined)
|
||||
+ return STATUS_NO_MEMORY;
|
||||
+
|
||||
+ memcpy(combined, child, child->AclSize);
|
||||
+ combined->AclSize = child->AclSize+parent->AclSize;
|
||||
+
|
||||
+ /* copy the inherited ACEs */
|
||||
+ for (i=0; i<parent->AceCount; i++)
|
||||
+ {
|
||||
+ ACE_HEADER *ace;
|
||||
+
|
||||
+ if (!GetAce(parent, i, (void*)&ace))
|
||||
+ continue;
|
||||
+ if (!(ace->AceFlags & (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE)))
|
||||
+ continue;
|
||||
+ if ((ace->AceFlags & (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE)) !=
|
||||
+ (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE))
|
||||
+ {
|
||||
+ FIXME("unsupported flags: %x\n", ace->AceFlags);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (ace->AceFlags & NO_PROPAGATE_INHERIT_ACE)
|
||||
+ ace->AceFlags &= ~(OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE|NO_PROPAGATE_INHERIT_ACE);
|
||||
+ ace->AceFlags &= ~INHERIT_ONLY_ACE;
|
||||
+ ace->AceFlags |= INHERITED_ACE;
|
||||
+
|
||||
+ if (!AddAce(combined, ACL_REVISION, MAXDWORD, ace, ace->AceSize))
|
||||
+ WARN("error adding inherited ACE\n");
|
||||
+ }
|
||||
+
|
||||
+ *result = combined;
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
+
|
||||
/******************************************************************************
|
||||
* SetSecurityInfo [ADVAPI32.@]
|
||||
*/
|
||||
@@ -5904,41 +5946,10 @@ DWORD WINAPI SetSecurityInfo(HANDLE handle, SE_OBJECT_TYPE ObjectType,
|
||||
|
||||
if (!err)
|
||||
{
|
||||
- int i;
|
||||
-
|
||||
- dacl = heap_alloc_zero(pDacl->AclSize+parent_dacl->AclSize);
|
||||
- if (!dacl)
|
||||
- {
|
||||
- LocalFree(parent_sd);
|
||||
- return ERROR_NOT_ENOUGH_MEMORY;
|
||||
- }
|
||||
- memcpy(dacl, pDacl, pDacl->AclSize);
|
||||
- dacl->AclSize = pDacl->AclSize+parent_dacl->AclSize;
|
||||
-
|
||||
- for (i=0; i<parent_dacl->AceCount; i++)
|
||||
- {
|
||||
- ACE_HEADER *ace;
|
||||
-
|
||||
- if (!GetAce(parent_dacl, i, (void*)&ace))
|
||||
- continue;
|
||||
- if (!(ace->AceFlags & (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE)))
|
||||
- continue;
|
||||
- if ((ace->AceFlags & (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE)) !=
|
||||
- (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE))
|
||||
- {
|
||||
- FIXME("unsupported flags: %x\n", ace->AceFlags);
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
- if (ace->AceFlags & NO_PROPAGATE_INHERIT_ACE)
|
||||
- ace->AceFlags &= ~(OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE|NO_PROPAGATE_INHERIT_ACE);
|
||||
- ace->AceFlags &= ~INHERIT_ONLY_ACE;
|
||||
- ace->AceFlags |= INHERITED_ACE;
|
||||
-
|
||||
- if(!AddAce(dacl, ACL_REVISION, MAXDWORD, ace, ace->AceSize))
|
||||
- WARN("error adding inherited ACE\n");
|
||||
- }
|
||||
+ status = combine_dacls(parent_dacl, pDacl, &dacl);
|
||||
LocalFree(parent_sd);
|
||||
+ if (status != STATUS_SUCCESS)
|
||||
+ return RtlNtStatusToDosError(status);
|
||||
}
|
||||
}
|
||||
else
|
||||
--
|
||||
2.6.1
|
||||
|
@@ -0,0 +1,54 @@
|
||||
From d1accafbe8e52b6b2c84e9fe5d08303fc05858af Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
|
||||
Date: Fri, 16 Oct 2015 13:58:38 -0600
|
||||
Subject: advapi32: Fix the initialization of combined DACLs when the new DACL
|
||||
is empty.
|
||||
|
||||
---
|
||||
dlls/advapi32/security.c | 23 +++++++++++++++++++++--
|
||||
1 file changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
|
||||
index dad8b22..11ae487 100644
|
||||
--- a/dlls/advapi32/security.c
|
||||
+++ b/dlls/advapi32/security.c
|
||||
@@ -5807,6 +5807,7 @@ BOOL WINAPI FileEncryptionStatusA(LPCSTR lpFileName, LPDWORD lpStatus)
|
||||
|
||||
static NTSTATUS combine_dacls(ACL *parent, ACL *child, ACL **result)
|
||||
{
|
||||
+ NTSTATUS status;
|
||||
ACL *combined;
|
||||
int i;
|
||||
|
||||
@@ -5815,8 +5816,26 @@ static NTSTATUS combine_dacls(ACL *parent, ACL *child, ACL **result)
|
||||
if (!combined)
|
||||
return STATUS_NO_MEMORY;
|
||||
|
||||
- memcpy(combined, child, child->AclSize);
|
||||
- combined->AclSize = child->AclSize+parent->AclSize;
|
||||
+ status = RtlCreateAcl(combined, parent->AclSize+child->AclSize, ACL_REVISION);
|
||||
+ if (status != STATUS_SUCCESS)
|
||||
+ {
|
||||
+ heap_free(combined);
|
||||
+ return status;
|
||||
+ }
|
||||
+
|
||||
+ /* copy the new ACEs */
|
||||
+ for (i=0; i<child->AceCount; i++)
|
||||
+ {
|
||||
+ ACE_HEADER *ace;
|
||||
+
|
||||
+ if (!GetAce(child, i, (void*)&ace))
|
||||
+ {
|
||||
+ WARN("error obtaining new ACE\n");
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (!AddAce(combined, ACL_REVISION, MAXDWORD, ace, ace->AceSize))
|
||||
+ WARN("error adding new ACE\n");
|
||||
+ }
|
||||
|
||||
/* copy the inherited ACEs */
|
||||
for (i=0; i<parent->AceCount; i++)
|
||||
--
|
||||
2.6.1
|
||||
|
1
patches/advapi32-SetSecurityInfo/definition
Normal file
1
patches/advapi32-SetSecurityInfo/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: [38423] Fix the initialization of combined DACLs when the new DACL is empty
|
@@ -1,85 +0,0 @@
|
||||
From e81a06349b039e60a7d9fcaa6f38b874767e7543 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 30 Aug 2015 20:55:52 +0200
|
||||
Subject: advpack: Translate flags in LaunchINFSection.
|
||||
|
||||
---
|
||||
dlls/advpack/install.c | 6 +++++-
|
||||
dlls/advpack/tests/install.c | 11 ++++++++++-
|
||||
include/advpub.h | 4 ++++
|
||||
3 files changed, 19 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/advpack/install.c b/dlls/advpack/install.c
|
||||
index f75eb01..dcd1dd7 100644
|
||||
--- a/dlls/advpack/install.c
|
||||
+++ b/dlls/advpack/install.c
|
||||
@@ -776,7 +776,11 @@ INT WINAPI LaunchINFSectionW(HWND hWnd, HINSTANCE hInst, LPWSTR cmdline, INT sho
|
||||
|
||||
str_flags = get_parameter(&cmdline_ptr, ',', TRUE);
|
||||
if (str_flags)
|
||||
- flags = atolW(str_flags);
|
||||
+ {
|
||||
+ DWORD inf_flags = atolW(str_flags);
|
||||
+ if (inf_flags & LIS_QUIET) flags |= RSC_FLAG_QUIET;
|
||||
+ if (inf_flags & LIS_NOGRPCONV) flags |= RSC_FLAG_NGCONV;
|
||||
+ }
|
||||
|
||||
ZeroMemory(&info, sizeof(ADVInfo));
|
||||
|
||||
diff --git a/dlls/advpack/tests/install.c b/dlls/advpack/tests/install.c
|
||||
index 875e7d4..c9cd720 100644
|
||||
--- a/dlls/advpack/tests/install.c
|
||||
+++ b/dlls/advpack/tests/install.c
|
||||
@@ -190,6 +190,8 @@ static void test_LaunchINFSection(void)
|
||||
HRESULT hr;
|
||||
char cmdline[MAX_PATH];
|
||||
static char file[] = "test.inf,DefaultInstall,4,0";
|
||||
+ static char file2[] = "one\\test.inf,DefaultInstall,4,0";
|
||||
+ static char file3[] = "test.inf,,1,0";
|
||||
|
||||
/* The 'No UI' flag seems to have no effect whatsoever on Windows.
|
||||
* So only do this test in interactive mode.
|
||||
@@ -207,10 +209,14 @@ static void test_LaunchINFSection(void)
|
||||
/* try a full path to the INF */
|
||||
lstrcpyA(cmdline, CURR_DIR);
|
||||
lstrcatA(cmdline, "\\");
|
||||
- lstrcatA(cmdline, "one\\test.inf,DefaultInstall,,4");
|
||||
+ lstrcatA(cmdline, file2);
|
||||
hr = pLaunchINFSection(NULL, NULL, cmdline, 0);
|
||||
ok(hr == 0, "Expected 0, got %d\n", hr);
|
||||
|
||||
+ /* try relative INF filename */
|
||||
+ hr = pLaunchINFSection(NULL, NULL, file2, 0);
|
||||
+ ok(hr == 0, "Expected 0, got %d\n", hr);
|
||||
+
|
||||
DeleteFileA("one\\test.inf");
|
||||
RemoveDirectoryA("one");
|
||||
|
||||
@@ -220,6 +226,9 @@ static void test_LaunchINFSection(void)
|
||||
hr = pLaunchINFSection(NULL, NULL, file, 0);
|
||||
ok(hr == 0, "Expected 0, got %d\n", hr);
|
||||
|
||||
+ hr = pLaunchINFSection(NULL, NULL, file3, 0);
|
||||
+ ok(hr == 0, "Expected 0, got %d\n", hr);
|
||||
+
|
||||
DeleteFileA("test.inf");
|
||||
}
|
||||
|
||||
diff --git a/include/advpub.h b/include/advpub.h
|
||||
index b213b1f..7823e0a 100644
|
||||
--- a/include/advpub.h
|
||||
+++ b/include/advpub.h
|
||||
@@ -135,6 +135,10 @@ DECL_WINELIB_TYPE_AW(LPCSTRTABLE)
|
||||
#define RSC_FLAG_DELAYREGISTEROCX 0x00000200
|
||||
#define RSC_FLAG_SETUPAPI 0x00000400
|
||||
|
||||
+/* Flags for LaunchINFSection */
|
||||
+#define LIS_QUIET 0x00000001
|
||||
+#define LIS_NOGRPCONV 0x00000002
|
||||
+
|
||||
/* Flags for DelNode */
|
||||
#define ADN_DEL_IF_EMPTY 0x00000001
|
||||
#define ADN_DONT_DEL_SUBDIRS 0x00000002
|
||||
--
|
||||
2.5.0
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: Translate flags in LaunchINFSectionW
|
@@ -1,163 +0,0 @@
|
||||
From 5bf6e56850354195aec9ec1146e3f82a0b2bcfdb Mon Sep 17 00:00:00 2001
|
||||
From: Martin Storsjo <martin@martin.st>
|
||||
Date: Mon, 3 Aug 2015 22:26:02 +0300
|
||||
Subject: vcruntime140: Add the new MSVC 2015 compiler specific DLL.
|
||||
|
||||
Since MSVC 2015/Windows 10, the C runtime has now been split into two
|
||||
parts, ucrtbase, which is the generic C runtime which is now considered
|
||||
a system component, and vcruntimeX which is specific to the compiler
|
||||
version.
|
||||
|
||||
Even if this DLL only has a fraction of the functions of the full
|
||||
msvcrt/ucrtbase, it still requires almost all the object files from
|
||||
msvcrt.
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/vcruntime140/Makefile.in | 33 +++++++++++++++
|
||||
dlls/vcruntime140/vcruntime140.spec | 82 +++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 116 insertions(+)
|
||||
create mode 100644 dlls/vcruntime140/Makefile.in
|
||||
create mode 100644 dlls/vcruntime140/vcruntime140.spec
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index ed1052c..16d87ac 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3328,6 +3328,7 @@ WINE_CONFIG_TEST(dlls/vcomp/tests)
|
||||
WINE_CONFIG_DLL(vcomp100)
|
||||
WINE_CONFIG_DLL(vcomp110)
|
||||
WINE_CONFIG_DLL(vcomp90)
|
||||
+WINE_CONFIG_DLL(vcruntime140,,[implib])
|
||||
WINE_CONFIG_DLL(vdhcp.vxd,enable_win16)
|
||||
WINE_CONFIG_DLL(vdmdbg,,[implib])
|
||||
WINE_CONFIG_DLL(ver.dll16,enable_win16)
|
||||
diff --git a/dlls/vcruntime140/Makefile.in b/dlls/vcruntime140/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..92f99c4
|
||||
--- /dev/null
|
||||
+++ b/dlls/vcruntime140/Makefile.in
|
||||
@@ -0,0 +1,33 @@
|
||||
+EXTRADEFS = -D_MT -D_MSVCR_VER=140
|
||||
+MODULE = vcruntime140.dll
|
||||
+IMPORTLIB = vcruntime140
|
||||
+DELAYIMPORTS = advapi32 user32
|
||||
+PARENTSRC = ../msvcrt
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ console.c \
|
||||
+ cpp.c \
|
||||
+ ctype.c \
|
||||
+ data.c \
|
||||
+ dir.c \
|
||||
+ environ.c \
|
||||
+ errno.c \
|
||||
+ except.c \
|
||||
+ except_arm.c \
|
||||
+ except_i386.c \
|
||||
+ except_x86_64.c \
|
||||
+ exit.c \
|
||||
+ file.c \
|
||||
+ heap.c \
|
||||
+ locale.c \
|
||||
+ lock.c \
|
||||
+ main.c \
|
||||
+ math.c \
|
||||
+ mbcs.c \
|
||||
+ misc.c \
|
||||
+ process.c \
|
||||
+ string.c \
|
||||
+ thread.c \
|
||||
+ time.c \
|
||||
+ undname.c \
|
||||
+ wcs.c
|
||||
diff --git a/dlls/vcruntime140/vcruntime140.spec b/dlls/vcruntime140/vcruntime140.spec
|
||||
new file mode 100644
|
||||
index 0000000..9027955
|
||||
--- /dev/null
|
||||
+++ b/dlls/vcruntime140/vcruntime140.spec
|
||||
@@ -0,0 +1,82 @@
|
||||
+@ stub _CreateFrameInfo
|
||||
+@ stdcall _CxxThrowException(long long)
|
||||
+@ cdecl -arch=i386 -norelay _EH_prolog()
|
||||
+@ stub _FindAndUnlinkFrame
|
||||
+@ stub _IsExceptionObjectToBeDestroyed
|
||||
+@ stub _NLG_Dispatch2
|
||||
+@ stub _NLG_Return
|
||||
+@ stub _NLG_Return2
|
||||
+@ stub _SetWinRTOutOfMemoryExceptionCallback
|
||||
+@ cdecl __AdjustPointer(ptr ptr)
|
||||
+@ stub __BuildCatchObject
|
||||
+@ stub __BuildCatchObjectHelper
|
||||
+@ cdecl -arch=i386,x86_64,arm __CxxDetectRethrow(ptr)
|
||||
+@ stub __CxxExceptionFilter
|
||||
+@ cdecl -arch=i386,x86_64,arm -norelay __CxxFrameHandler(ptr ptr ptr ptr)
|
||||
+@ cdecl -arch=i386,x86_64,arm -norelay __CxxFrameHandler2(ptr ptr ptr ptr) __CxxFrameHandler
|
||||
+@ cdecl -arch=i386,x86_64,arm -norelay __CxxFrameHandler3(ptr ptr ptr ptr) __CxxFrameHandler
|
||||
+@ stdcall -arch=i386 __CxxLongjmpUnwind(ptr)
|
||||
+@ cdecl -arch=i386,x86_64,arm __CxxQueryExceptionSize()
|
||||
+@ stub __CxxRegisterExceptionObject
|
||||
+@ stub __CxxUnregisterExceptionObject
|
||||
+@ stub __DestructExceptionObject
|
||||
+@ stub __FrameUnwindFilter
|
||||
+@ stub __GetPlatformExceptionInfo
|
||||
+@ cdecl __RTCastToVoid(ptr) MSVCRT___RTCastToVoid
|
||||
+@ cdecl __RTDynamicCast(ptr long ptr ptr long) MSVCRT___RTDynamicCast
|
||||
+@ cdecl __RTtypeid(ptr) MSVCRT___RTtypeid
|
||||
+@ stub __TypeMatch
|
||||
+@ stub __current_exception
|
||||
+@ stub __current_exception_context
|
||||
+@ stub __intrinsic_setjmp
|
||||
+@ stub __processing_throw
|
||||
+@ stub __report_gsfailure
|
||||
+@ stub __std_exception_copy
|
||||
+@ stub __std_exception_destroy
|
||||
+@ stub __std_terminate
|
||||
+@ stub __std_type_info_compare
|
||||
+@ stub __std_type_info_destroy_list
|
||||
+@ stub __std_type_info_hash
|
||||
+@ stub __std_type_info_name
|
||||
+@ stub __telemetry_main_invoke_trigger
|
||||
+@ stub __telemetry_main_return_trigger
|
||||
+@ cdecl __unDName(ptr str long ptr ptr long)
|
||||
+@ cdecl __unDNameEx(ptr str long ptr ptr ptr long)
|
||||
+@ cdecl __uncaught_exception() MSVCRT___uncaught_exception
|
||||
+@ stub __uncaught_exceptions
|
||||
+@ stub __vcrt_GetModuleFileNameW
|
||||
+@ stub __vcrt_GetModuleHandleW
|
||||
+@ stub __vcrt_InitializeCriticalSectionEx
|
||||
+@ stub __vcrt_LoadLibraryExW
|
||||
+@ cdecl -arch=i386 -norelay _chkesp()
|
||||
+@ cdecl -arch=i386 _except_handler2(ptr ptr ptr ptr)
|
||||
+@ cdecl -arch=i386 _except_handler3(ptr ptr ptr ptr)
|
||||
+@ cdecl -arch=i386 _except_handler4_common(ptr ptr ptr ptr ptr ptr)
|
||||
+@ stub _get_purecall_handler
|
||||
+@ cdecl _get_unexpected() MSVCRT__get_unexpected
|
||||
+@ cdecl -arch=i386 _global_unwind2(ptr)
|
||||
+@ stub _is_exception_typeof
|
||||
+@ cdecl -arch=i386 _local_unwind2(ptr long)
|
||||
+@ cdecl -arch=i386 _local_unwind4(ptr ptr long)
|
||||
+@ cdecl -arch=i386 _longjmpex(ptr long) MSVCRT_longjmp
|
||||
+@ cdecl _purecall()
|
||||
+@ stdcall -arch=i386 _seh_longjmp_unwind4(ptr)
|
||||
+@ stdcall -arch=i386 _seh_longjmp_unwind(ptr)
|
||||
+@ cdecl _set_purecall_handler(ptr)
|
||||
+@ stub -arch=win32 ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z # void(__cdecl*__cdecl _set_se_translator(int))(unsigned int,struct _EXCEPTION_POINTERS *)
|
||||
+@ stub -arch=win64 ?_set_se_translator@@YAP6AXIPEAU_EXCEPTION_POINTERS@@@ZH@Z # void(__cdecl*__cdecl _set_se_translator(int))(unsigned int,struct _EXCEPTION_POINTERS * __ptr64)
|
||||
+@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
|
||||
+@ cdecl -arch=i386,x86_64,arm longjmp(ptr long) MSVCRT_longjmp
|
||||
+@ cdecl memchr(ptr long long) MSVCRT_memchr
|
||||
+@ cdecl memcmp(ptr ptr long) MSVCRT_memcmp
|
||||
+@ cdecl memcpy(ptr ptr long) MSVCRT_memcpy
|
||||
+@ cdecl memmove(ptr ptr long) MSVCRT_memmove
|
||||
+@ cdecl memset(ptr long long) MSVCRT_memset
|
||||
+@ stub set_unexpected
|
||||
+@ cdecl strchr(str long) MSVCRT_strchr
|
||||
+@ cdecl strrchr(str long) MSVCRT_strrchr
|
||||
+@ cdecl strstr(str str) MSVCRT_strstr
|
||||
+@ stub unexpected
|
||||
+@ cdecl wcschr(wstr long) MSVCRT_wcschr
|
||||
+@ cdecl wcsrchr(wstr long) ntdll.wcsrchr
|
||||
+@ cdecl wcsstr(wstr wstr) MSVCRT_wcsstr
|
||||
--
|
||||
2.5.0
|
||||
|
@@ -1,26 +0,0 @@
|
||||
From 3d3dd8491369119ee0dea8ec571b917f8613910a Mon Sep 17 00:00:00 2001
|
||||
From: Martin Storsjo <martin@martin.st>
|
||||
Date: Mon, 3 Aug 2015 22:26:03 +0300
|
||||
Subject: vcruntime140: Hook up a function with a new name to the existing
|
||||
implementation
|
||||
|
||||
---
|
||||
dlls/vcruntime140/vcruntime140.spec | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/vcruntime140/vcruntime140.spec b/dlls/vcruntime140/vcruntime140.spec
|
||||
index 9027955..adfb0f0 100644
|
||||
--- a/dlls/vcruntime140/vcruntime140.spec
|
||||
+++ b/dlls/vcruntime140/vcruntime140.spec
|
||||
@@ -46,7 +46,7 @@
|
||||
@ stub __uncaught_exceptions
|
||||
@ stub __vcrt_GetModuleFileNameW
|
||||
@ stub __vcrt_GetModuleHandleW
|
||||
-@ stub __vcrt_InitializeCriticalSectionEx
|
||||
+@ cdecl -arch=i386,win64 __vcrt_InitializeCriticalSectionEx(ptr long long) MSVCR110__crtInitializeCriticalSectionEx
|
||||
@ stub __vcrt_LoadLibraryExW
|
||||
@ cdecl -arch=i386 -norelay _chkesp()
|
||||
@ cdecl -arch=i386 _except_handler2(ptr ptr ptr ptr)
|
||||
--
|
||||
2.5.0
|
||||
|
@@ -1,54 +0,0 @@
|
||||
From 00e2e0a38d5ef81502d35a5aa3f62cb4ed834488 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Storsjo <martin@martin.st>
|
||||
Date: Mon, 3 Aug 2015 22:26:05 +0300
|
||||
Subject: vcruntime140: Add stubs for telemetry functions
|
||||
|
||||
These are required for a plain empty exe built with MSVC 2015 with
|
||||
dynamic C runtime to start up with the builtin vcruntime140.dll.
|
||||
---
|
||||
dlls/msvcrt/misc.c | 16 ++++++++++++++++
|
||||
dlls/vcruntime140/vcruntime140.spec | 4 ++--
|
||||
2 files changed, 18 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/msvcrt/misc.c b/dlls/msvcrt/misc.c
|
||||
index 4e9f288..556ca62 100644
|
||||
--- a/dlls/msvcrt/misc.c
|
||||
+++ b/dlls/msvcrt/misc.c
|
||||
@@ -498,3 +498,19 @@ void CDECL MSVCR120__vacopy(__ms_va_list *dest, __ms_va_list src)
|
||||
{
|
||||
__ms_va_copy(*dest, src);
|
||||
}
|
||||
+
|
||||
+/*********************************************************************
|
||||
+ * __telemetry_main_invoke_trigger (MSVCRT.@)
|
||||
+ */
|
||||
+void CDECL __telemetry_main_invoke_trigger(const HINSTANCE hinst)
|
||||
+{
|
||||
+ TRACE("(%p)\n", hinst);
|
||||
+}
|
||||
+
|
||||
+/*********************************************************************
|
||||
+ * __telemetry_main_return_trigger (MSVCRT.@)
|
||||
+ */
|
||||
+void CDECL __telemetry_main_return_trigger(const HINSTANCE hinst)
|
||||
+{
|
||||
+ TRACE("(%p)\n", hinst);
|
||||
+}
|
||||
diff --git a/dlls/vcruntime140/vcruntime140.spec b/dlls/vcruntime140/vcruntime140.spec
|
||||
index adfb0f0..efd967f 100644
|
||||
--- a/dlls/vcruntime140/vcruntime140.spec
|
||||
+++ b/dlls/vcruntime140/vcruntime140.spec
|
||||
@@ -38,8 +38,8 @@
|
||||
@ stub __std_type_info_destroy_list
|
||||
@ stub __std_type_info_hash
|
||||
@ stub __std_type_info_name
|
||||
-@ stub __telemetry_main_invoke_trigger
|
||||
-@ stub __telemetry_main_return_trigger
|
||||
+@ cdecl __telemetry_main_invoke_trigger(ptr)
|
||||
+@ cdecl __telemetry_main_return_trigger(ptr)
|
||||
@ cdecl __unDName(ptr str long ptr ptr long)
|
||||
@ cdecl __unDNameEx(ptr str long ptr ptr ptr long)
|
||||
@ cdecl __uncaught_exception() MSVCRT___uncaught_exception
|
||||
--
|
||||
2.5.0
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user