Compare commits

...

79 Commits

Author SHA1 Message Date
Sebastian Lackner
c282ffecac Release 1.7.41. 2015-04-19 01:20:00 +02:00
Sebastian Lackner
11b27f5d7f Added patch to insert a missing break in dlls/msxml3/node.c (Coverity). 2015-04-18 23:32:18 +02:00
Sebastian Lackner
923966f191 Added patch to avoid crash when trying to bind mshtml event scripts to window. 2015-04-18 21:50:25 +02:00
Sebastian Lackner
f1064ee0bd advapi32-LsaLookupSids: Add additional patch to fallback to Sid string when LookupAccountSid fails. 2015-04-18 21:43:36 +02:00
Sebastian Lackner
743184f7be wbemprox-Win32_SystemEnclosure: Remove const to avoid warnings with gcc >= 5.0. 2015-04-18 17:08:09 +02:00
Sebastian Lackner
15041e6b96 Added patch for ProfileList\<UserSID> registry subkey. 2015-04-18 16:39:34 +02:00
Sebastian Lackner
cf4a1f5af2 Added patch for stub of ntdll.WinSqmIsOptedIn. 2015-04-18 15:34:28 +02:00
Sebastian Lackner
b9a1a97057 ntdll-FileDispositionInformation: Add additional tests for setting FileDispositionInformation on mapped files. 2015-04-18 09:32:19 +02:00
Sebastian Lackner
69f3294d35 Updated ntdll-FileDispositionInformation patchset to block deleting mapped files (by Qian Hong, fixes Wine Staging Bug #228). 2015-04-17 21:24:21 +02:00
Sebastian Lackner
f2ecb762ea Added patch for implementation of mfplat.MFTRegister. 2015-04-17 21:00:19 +02:00
Sebastian Lackner
a2dd6b6ede wbemprox-Win32_SystemEnclosure: Mark an additional upstream bug as fixed. 2015-04-17 15:07:32 +02:00
Sebastian Lackner
4befe663b8 Added patch to fix handling of opening read-only files for FILE_DELETE_ON_CLOSE. 2015-04-17 13:48:21 +02:00
Sebastian Lackner
178d669519 Added patch to implement support for wbemprox Win32_SystemEnclosure table. 2015-04-17 09:54:01 +02:00
Sebastian Lackner
04afcf114c Added patch to recognize localhost as local machine in wbemprox. 2015-04-17 06:29:29 +02:00
Sebastian Lackner
d8cb439f29 patchupdate.py: Do not warn about ASSIGNED bugs. 2015-04-17 06:25:58 +02:00
Sebastian Lackner
d9bdc6ae51 Added patch for support of process specific debug channels. 2015-04-17 06:23:19 +02:00
Sebastian Lackner
572c6fe243 Rebase against upstream changes. 2015-04-16 19:29:50 +02:00
Sebastian Lackner
3a65a99375 Added patch to properly handle closing sockets during a select call. 2015-04-16 13:02:10 +02:00
Sebastian Lackner
5b313a54e2 wined3d-CSMT_Main: Rebase against upstream changes. 2015-04-15 20:08:28 +02:00
Sebastian Lackner
04e3ce9865 server-{Stored,Inherited}_ACLs: Rework of ACL patches, use upstream code to inherit ACL attributes in advapi32 code. 2015-04-15 16:09:11 +02:00
Sebastian Lackner
96325cabed Removed patch to increase wineconsole commandline buffer size (fixed upstream). 2015-04-14 19:11:31 +02:00
Sebastian Lackner
2bb0477ca0 dsound-EAX: Disable EAX support by default.
Several older games seem to trigger various bugs when EAX 1 support is enabled.
2015-04-13 00:38:12 +02:00
Sebastian Lackner
bbbdc32ff4 patchupdate.py: Reimplement patchupdate cache.
The cache was removed some time ago when the patchsystem was rewritten from scratch.
2015-04-13 00:24:07 +02:00
Sebastian Lackner
24af7f9090 Added patch to reset device state in SysKeyboard*Impl_Acquire. 2015-04-11 10:07:56 +02:00
Sebastian Lackner
c9ec45a0e3 Updated server-PeekMessage patchset to reset message filter in accept_hardware_message call (fixes Wine Staging Bug #211). 2015-04-10 22:53:14 +02:00
Sebastian Lackner
ea8db60185 Rebase against upstream changes. 2015-04-10 17:58:40 +02:00
Sebastian Lackner
44c159ca06 Added patch to fix regression caused by blacklisting supported OpenGL extensions. 2015-04-10 08:21:45 +02:00
Sebastian Lackner
c382d2430b Added patch to calculate msvcrt exponential math operations with higher precision. 2015-04-10 08:16:17 +02:00
Sebastian Lackner
77bc095cb4 Added first part of patchset containing various improvements for LsaLookupSids. 2015-04-10 05:28:45 +02:00
Sebastian Lackner
0412f2dcbc server-Realtime_Priority: Fix compilation on FreeBSD. 2015-04-10 02:53:11 +02:00
Sebastian Lackner
3f56243b9b Added patch with stub for setupapi.SetupDiSetDeviceInstallParamsW. 2015-04-10 00:13:54 +02:00
Sebastian Lackner
f1b780f2e7 Removed patch to fix compatibility with gnutls28 (accepted upstream). 2015-04-09 18:21:07 +02:00
Sebastian Lackner
31639cf6d5 ddraw-EnumSurfaces: Add additional patch to fix arguments to IDirectDraw7::EnumSurfaces in DllMain. 2015-04-09 05:47:16 +02:00
Sebastian Lackner
c5bbea55d2 Rebase against upstream changes. 2015-04-08 04:02:57 +02:00
Sebastian Lackner
d28a7ba29e mscoree-CorValidateImage: Only update entry point for IL-only images on 32-bit. 2015-04-07 11:35:24 +02:00
Sebastian Lackner
13a3cadc66 Removed multiple patchsets (accepted upstream). 2015-04-06 17:53:34 +02:00
Sebastian Lackner
2821e85d06 winebuild-LinkerVersion: Set linker version for both memory layout and fake module. 2015-04-06 11:22:36 +02:00
Sebastian Lackner
182d868560 Added tests for RtlIpv6AddressToString and RtlIpv6AddressToStringEx. 2015-04-06 08:15:53 +02:00
Sebastian Lackner
8b06b71275 Merge pull request #315 from maharmstone/master (works around Wine Staging bug 199)
Various Windows apps (like Max Payne 2) seem to contain a broken eax.dll library,
which is affected by various use-after-free bugs. To work around such issues EAX
support can be globally disabled in winecfg. Moreover a winediag message is added
to inform the user about possible issues related to EAX.
2015-04-05 20:11:34 +02:00
Mark Harmstone
9138b6d929 Added patches to allow EAX support to be disabled. 2015-04-05 14:54:03 +01:00
Sebastian Lackner
55da87044b winecfg-Staging: Disable DXVA2 configuration when support is not compiled in. 2015-04-05 10:10:46 +02:00
Sebastian Lackner
139ec6bfe7 Split 'Miscellaneous' patchset into individual patches. 2015-04-05 09:46:18 +02:00
Sebastian Lackner
c931ff9dad Partially remove advapi32-Revert_DACL patches. 2015-04-05 06:02:38 +02:00
Sebastian Lackner
9e0bb28fcb Release 1.7.40. 2015-04-05 01:29:49 +02:00
Sebastian Lackner
e298b95f54 Added patch with stub for setupapi.SetupDiSelectBestCompatDrv. 2015-04-04 22:45:27 +02:00
Sebastian Lackner
4ad22c8418 Added patch to allow NULL pointer as keystate argument in ToUnicodeEx. 2015-04-04 22:32:25 +02:00
Sebastian Lackner
9f091b033c Added patch to ignore unsupported job object restrictions. 2015-04-04 22:17:38 +02:00
Sebastian Lackner
e5a4f11591 dsound-EAX: Various improvements to EAX support (fixes Wine-Staging bug 195). 2015-04-04 21:53:57 +02:00
Michael MĂĽller
f925ee9336 Added patch to implement DDENUMSURFACES_CANBECREATED in IDirectDraw7::EnumSurfaces and fix some bugs. 2015-04-04 05:57:17 +02:00
Sebastian Lackner
174fd8ca69 server-JobObjects: Fix variable name (was renamed upstream). 2015-04-03 18:53:28 +02:00
Sebastian Lackner
da14f3201a Added patch to allow to open files/directories without any access rights in order to query attributes. 2015-04-03 18:36:35 +02:00
Sebastian Lackner
70ca8ccdee Added patch to fix invalid memory access in get_registry_locale_info. 2015-04-03 17:30:35 +02:00
Michael MĂĽller
a6bdf0d803 Added patch to stub ntoskrnl.PsRemoveLoadImageNotifyRoutine. 2015-04-03 17:13:12 +02:00
Sebastian Lackner
031d8707e6 Removed patch to fix various bugs in RtlUnwindEx on x86_64 (accepted upstream). 2015-04-03 15:17:42 +02:00
Sebastian Lackner
e417298237 README.md: Various improvements to the readme file. 2015-04-03 01:09:22 +02:00
Sebastian Lackner
363bf09254 progressbar.py: Ignore 'inappropriate ioctl for device' exceptions when resizing window. 2015-04-02 23:56:15 +02:00
Sebastian Lackner
4e8ec61e11 patchupdate.py: Run a pre-check to reduce the waiting time while rebasing ;) 2015-04-02 23:42:37 +02:00
Sebastian Lackner
e67a0a27b4 debian/control: Explicitly list a couple more dependencies. 2015-04-02 22:23:47 +02:00
Sebastian Lackner
b06dab11cd server-Realtime_Priority: Show a warning when changing the child priority fails, even without WINEDEBUG=+server. 2015-04-02 22:14:53 +02:00
Sebastian Lackner
0dc851870e Move gitapply.sh into patches/, remove unused Makefile.in file. 2015-04-02 21:59:18 +02:00
Sebastian Lackner
bd6e9c6b12 Rebase against upstream changes. 2015-04-02 21:37:06 +02:00
Sebastian Lackner
9b05154f9e Added patch to implement proper handling of CLI .NET images in Wine library loader. 2015-04-02 06:28:01 +02:00
Sebastian Lackner
7a76ebf786 Added patch to implement mscoree._CorValidateImage for mono runtime. 2015-04-02 06:23:34 +02:00
Sebastian Lackner
3b9b44454b Added patch to implement support for linux priority levels (by Joakim Hernberg, various modifications by Sebastian Lackner). 2015-04-02 06:19:21 +02:00
Sebastian Lackner
655ba010d9 debian: Add additional (optional) package 'wine-staging-compat' to replace system Wine. 2015-04-02 06:19:21 +02:00
Sebastian Lackner
c6b84caa19 Rebase against upstream changes, partially removed patches for job objects (accepted upstream). 2015-04-01 22:09:49 +02:00
Sebastian Lackner
2aadb491e9 debian/control: Remove unnecessary quilt build dependency (thanks darealshinji). 2015-04-01 03:38:47 +02:00
Sebastian Lackner
e6884fe334 Merge pull request #312 from darealshinji/patch-2
More improvements to the Debian packaging files.
2015-04-01 03:35:32 +02:00
Sebastian Lackner
7995c78fbf Added patch for support of 8bpp grayscale TIFF images with 8bpp alpha channel (replaces previous stub). 2015-04-01 03:14:19 +02:00
Sebastian Lackner
168c9879a0 Rebase against upstream changes. 2015-03-31 20:59:38 +02:00
Sebastian Lackner
99d383dca7 ws2_32-TransmitFile: Rebase and fix compile error. 2015-03-31 08:55:12 +02:00
Sebastian Lackner
6a0153d46c Added patch to show unmounted devices in winecfg and allow changing the unix path. 2015-03-31 01:28:35 +02:00
Sebastian Lackner
cc9f3cfa0e Rebase against upstream changes. 2015-03-31 00:53:08 +02:00
Sebastian Lackner
006db23dab Added patch to fix device paths in HKLM\SYSTEM\MountedDevices. 2015-03-30 04:28:05 +02:00
Sebastian Lackner
41c3e670d9 Added patch to return correct device type for cd devices without medium. 2015-03-30 04:11:47 +02:00
darealshinji
15a87f7353 Update Standards-Version to 3.9.5
Fixes:
W: wine-staging source: ancient-standards-version 3.9.2 (current is 3.9.5)
2015-03-28 22:48:58 +01:00
darealshinji
15fc36c7d0 remove coreutils and gzip from Build-Depends
Fixes these errors:
E: wine-staging source: build-depends-on-essential-package-without-using-version build-depends: coreutils
E: wine-staging source: build-depends-on-essential-package-without-using-version build-depends: gzip
2015-03-28 22:43:37 +01:00
darealshinji
1592f18501 Create wine-staging-i386.lintian-overrides 2015-03-28 22:40:31 +01:00
darealshinji
28b1fe7134 Create wine-staging-amd64.lintian-overrides 2015-03-28 22:39:39 +01:00
184 changed files with 7186 additions and 6239 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
debian/tools/wine
*.pyc
.patchupdate.cache

View File

@@ -1,25 +1,26 @@
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** (formerly wine-compholio) is a special wine version containing
bug fixes and features that are not yet available in regular wine versions. The
idea behind Wine Staging is to provide new features faster to end users and to
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.
wine. More information about Wine Staging can also be found on our website
[wine-staging.com](http://wine-staging.com).
Although we are reviewing all patches before adding them, you may encounter
additional bugs, which are not present in regular 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!
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
===================================
-----------------------------------
Ready-to-use packages for Wine Staging are available for a variety
of different Linux distributions directly for download. Just follow the
@@ -36,69 +37,70 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
===================================
-----------------------------------
**Bugfixes and features included in the next upcoming release [9]:**
**Bug fixes and features in Wine Staging 1.7.41 [218]:**
* Add stub fltmgr.sys (filter manager driver) ([Wine Bug #23583](https://bugs.winehq.org/show_bug.cgi?id=23583))
* Add stubs for Power[Set|Clear]Request
* Avoid spam of FIXME messages for PsLookupProcessByProcessId stub ([Wine Bug #36821](https://bugs.winehq.org/show_bug.cgi?id=36821))
* Don't return an error in WS_select when EINTR happens during timeout
* Fix calculation of 3D sound source ([Wine Bug #38041](https://bugs.winehq.org/show_bug.cgi?id=38041))
* Fix compatibility of Uplay with gnutls28 ([Wine Bug #38134](https://bugs.winehq.org/show_bug.cgi?id=38134))
* Fix handling of ANSI NTLM credentials ([Wine Bug #37063](https://bugs.winehq.org/show_bug.cgi?id=37063))
* Implement empty enumerator for IWiaDevMgr::EnumDeviceInfo ([Wine Bug #27775](https://bugs.winehq.org/show_bug.cgi?id=27775))
* Software support for Environmental Audio Extensions (EAX)
**Bugs fixed in Wine Staging 1.7.39 [205]:**
*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
are included upstream. The list also includes features and fixes from previous
releases, take a look at the
[changelog](https://github.com/wine-compholio/wine-staging/blob/master/debian/changelog)
for more details.*
* Add Dynamic DST exceptions for Israel Standard Time ([Wine Bug #36374](https://bugs.winehq.org/show_bug.cgi?id=36374))
* Add a ProfileList\<UserSID> registry subkey ([Wine Bug #15670](https://bugs.winehq.org/show_bug.cgi?id=15670))
* Add default ACLs for user shell folders
* Add implementation for CreateThreadpool ([Wine Bug #35192](https://bugs.winehq.org/show_bug.cgi?id=35192))
* Add implementation for mfplat.MFTRegister ([Wine Bug #37811](https://bugs.winehq.org/show_bug.cgi?id=37811))
* 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 GetFileVersionInfoExA/W ([Wine Bug #38098](https://bugs.winehq.org/show_bug.cgi?id=38098))
* Add semi-stub for GetFileVersionInfoSizeExA/W ([Wine Bug #38090](https://bugs.winehq.org/show_bug.cgi?id=38090))
* 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 D3DXComputeTangentFrameEx ([Wine Bug #31984](https://bugs.winehq.org/show_bug.cgi?id=31984))
* Add stub for D3DXIntersect
* Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268))
* Add stub for PowerCreateRequest
* Add stub for WinSqmIsOptedIn ([Wine Bug #38388](https://bugs.winehq.org/show_bug.cgi?id=38388))
* Add stub for gdiplus.GdipCreateEffect ([Wine Bug #32163](https://bugs.winehq.org/show_bug.cgi?id=32163))
* Add stub for ntoskrnl.ExAcquireResourceExclusiveLite
* Add stub for ntoskrnl.ExDeleteResourceLite
* Add stub for ntoskrnl.ExReleaseResourceForThread
* Add stub for ntoskrnl.KeWaitForMultipleObjects
* Add stub for ntoskrnl.Mm{Map,Unmap}LockedPages
* Add stub for ntoskrnl.PsRemoveLoadImageNotifyRoutine
* Add stub for setupapi.SetupDiSelectBestCompatDrv ([Wine Bug #32088](https://bugs.winehq.org/show_bug.cgi?id=32088))
* Add stub for wininet.ParseX509EncodedCertificateForListBoxEntry ([Wine Bug #29842](https://bugs.winehq.org/show_bug.cgi?id=29842))
* Add stubs for D3DXCreateAnimationController interface
* Add support for CopyFileEx progress callback ([Wine Bug #22692](https://bugs.winehq.org/show_bug.cgi?id=22692))
* Add support for GetPropValue to PulseAudio backend
* Add support for process specific debug channels
* Add support for wbemprox Win32_SystemEnclosure table ([Wine Bug #34517](https://bugs.winehq.org/show_bug.cgi?id=34517))
* Adobe Reader needs ITextSelection_fnGetDuplicate implementation
* Allow selection of audio device for PulseAudio backend
* Allow special characters in pipe names ([Wine Bug #28995](https://bugs.winehq.org/show_bug.cgi?id=28995))
* Allow to cancel a file operation via progress callback ([Wine Bug #22690](https://bugs.winehq.org/show_bug.cgi?id=22690))
* Allow to edit winecfg library override by double clicking
* 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))
* Anno 1602 installer depends on Windows 98 behavior of SHFileOperationW ([Wine Bug #37916](https://bugs.winehq.org/show_bug.cgi?id=37916))
* Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](https://bugs.winehq.org/show_bug.cgi?id=30639))
* Avoid crash when trying to bind mshtml event scripts to window ([Wine Bug #38419](https://bugs.winehq.org/show_bug.cgi?id=38419))
* Avoid crashing when broken app tries to release surface although refcount is zero ([Wine Bug #18477](https://bugs.winehq.org/show_bug.cgi?id=18477))
* Avoid race-conditions in NtReadFile() operations with write watches.
* Avoid race-conditions of async WSARecv() operations with write watches.
* Avoid race-conditions with write watches in WS2_async_accept.
* Avoid unloading msctf library while textservices are activated ([Wine Bug #31579](https://bugs.winehq.org/show_bug.cgi?id=31579))
* Avseq crashes when multisampling is enabled ([Wine Bug #31998](https://bugs.winehq.org/show_bug.cgi?id=31998))
* Basic handling of write watches triggered while we're on the signal stack.
* Basic support for CUDA
* Black & White needs DXTn software decoding support ([Wine Bug #14939](https://bugs.winehq.org/show_bug.cgi?id=14939))
* CPU-Z fails to start because GetLogicalProcessorInformationEx returns FALSE
* ~~Child of Light expects FindConnectionPoint to succeed and increase the refcount~~ ([Wine Bug #36408](https://bugs.winehq.org/show_bug.cgi?id=36408))
* Calculate msvcrt exponential math operations with higher precision ([Wine Bug #37149](https://bugs.winehq.org/show_bug.cgi?id=37149))
* 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 append duplicate NULL characters when importing keys with regedit ([Wine Bug #37575](https://bugs.winehq.org/show_bug.cgi?id=37575))
* Do not fail when a used context is passed to wglShareLists ([Wine Bug #11436](https://bugs.winehq.org/show_bug.cgi?id=11436))
* EA Origin needs support for job objects ([Wine Bug #33723](https://bugs.winehq.org/show_bug.cgi?id=33723))
* Emulate access to KI_USER_SHARED_DATA kernel page on x86_64 ([Wine Bug #33849](https://bugs.winehq.org/show_bug.cgi?id=33849))
* Enforce that surfaces are flushed after ReleaseDC
* Ensure NtProtectVirtualMemory and NtCreateSection are on separate pages ([Wine Bug #33162](https://bugs.winehq.org/show_bug.cgi?id=33162))
@@ -111,7 +113,6 @@ Included bug fixes and improvements
* Fix access violation when calling GetStringTypeW with NULL src. ([Wine Bug #37759](https://bugs.winehq.org/show_bug.cgi?id=37759))
* Fix black screen on startup introduced by pixelformat changes. ([Wine Bug #35950](https://bugs.winehq.org/show_bug.cgi?id=35950))
* Fix caps lock state issues with multiple processes ([Wine Bug #35907](https://bugs.winehq.org/show_bug.cgi?id=35907))
* Fix check for end_frame in RtlUnwindEx on x86_64. ([Wine Bug #34254](https://bugs.winehq.org/show_bug.cgi?id=34254))
* 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))
* Fix crash in Space Rangers2 caused by missing DXTn support ([Wine Bug #24983](https://bugs.winehq.org/show_bug.cgi?id=24983))
@@ -119,21 +120,23 @@ Included bug fixes and improvements
* Fix crash of Trine Demo on start ([Wine Bug #19231](https://bugs.winehq.org/show_bug.cgi?id=19231))
* Fix crash of winedevice when relocation entry crosses page boundary ([Wine Bug #28254](https://bugs.winehq.org/show_bug.cgi?id=28254))
* Fix cursor clip regression / broken raw input in multiple games ([Wine Bug #33479](https://bugs.winehq.org/show_bug.cgi?id=33479))
* Fix device paths in HKLM\SYSTEM\MountedDevices ([Wine Bug #38235](https://bugs.winehq.org/show_bug.cgi?id=38235))
* 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))
* Fix graphical corruption in FarCry 3 with NVIDIA drivers ([Wine Bug #35062](https://bugs.winehq.org/show_bug.cgi?id=35062))
* Fix gray screen on startup introduced by pixelformat changes. ([Wine Bug #35975](https://bugs.winehq.org/show_bug.cgi?id=35975))
* Fix handling of ANSI NTLM credentials ([Wine Bug #37063](https://bugs.winehq.org/show_bug.cgi?id=37063))
* Fix handling of empty section and key name for profile files. ([Wine Bug #8036](https://bugs.winehq.org/show_bug.cgi?id=8036))
* Fix handling of invert_y in DrawTextExW ([Wine Bug #22109](https://bugs.winehq.org/show_bug.cgi?id=22109))
* Fix handling of opening read-only files for FILE_DELETE_ON_CLOSE ([Wine Bug #38417](https://bugs.winehq.org/show_bug.cgi?id=38417))
* Fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED ([Wine Bug #37876](https://bugs.winehq.org/show_bug.cgi?id=37876))
* 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 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
* ~~Fix regression causing black screen on startup~~ ([Wine Bug #38248](https://bugs.winehq.org/show_bug.cgi?id=38248))
* ~~Fix regression causing too dark/missing textures in several games~~ ([Wine Bug #38256](https://bugs.winehq.org/show_bug.cgi?id=38256))
* Fix regression caused by blacklisting supported OpenGL extensions ([Wine Bug #38264](https://bugs.winehq.org/show_bug.cgi?id=38264))
* Fix return value of ScrollWindowEx for invisible windows ([Wine Bug #37706](https://bugs.winehq.org/show_bug.cgi?id=37706))
* Fix texture corruption in CSI: Fatal Conspiracy ([Wine Bug #33768](https://bugs.winehq.org/show_bug.cgi?id=33768))
* Fix unintentional leaks with ntdll internals
@@ -149,21 +152,23 @@ Included bug fixes and improvements
* Graphical issues in Inquisitor ([Wine Bug #32490](https://bugs.winehq.org/show_bug.cgi?id=32490))
* Hearthstone fails to start ([Wine Bug #36216](https://bugs.winehq.org/show_bug.cgi?id=36216))
* IOCTL_DVD_READ_STRUCTURE expects the wrong size of output buffer for some requests ([Wine Bug #37767](https://bugs.winehq.org/show_bug.cgi?id=37767))
* Ignore unsupported alpha channels in TIFF decoder ([Wine Bug #38027](https://bugs.winehq.org/show_bug.cgi?id=38027))
* Ignore unsupported flags for CoInternetSetFeatureEnabled ([Wine Bug #35197](https://bugs.winehq.org/show_bug.cgi?id=35197))
* Implement D3DXGetShaderOutputSemantics
* Implement DDENUMSURFACES_CANBECREATED in IDirectDraw7::EnumSurfaces ([Wine Bug #17233](https://bugs.winehq.org/show_bug.cgi?id=17233))
* Implement ID3DXEffect::FindNextValidTechnique ([Wine Bug #34101](https://bugs.winehq.org/show_bug.cgi?id=34101))
* Implement IDXGIOutput::GetDesc
* Implement SetFileInformationByHandle
* ~~Implement SetupLogError[A|W] and Setup[Open|Close]Log~~
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](https://bugs.winehq.org/show_bug.cgi?id=13829))
* Implement additional stubs for vcomp dlls ([Wine Bug #31640](https://bugs.winehq.org/show_bug.cgi?id=31640))
* Implement an Arial replacement font ([Wine Bug #32323](https://bugs.winehq.org/show_bug.cgi?id=32323))
* Implement combase.WindowsSubstring function
* Implement empty enumerator for IWiaDevMgr::EnumDeviceInfo ([Wine Bug #27775](https://bugs.winehq.org/show_bug.cgi?id=27775))
* Implement exclusive mode in PulseAudio backend ([Wine Bug #37042](https://bugs.winehq.org/show_bug.cgi?id=37042))
* 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
* Implement ntoskrnl driver testing framework.
* Implement ntoskrnl.KeInitializeMutex
* Implement proper handling of CLI .NET images in Wine library loader
* Implement stub for ntoskrnl.IoGetAttachedDeviceReference
* Implement stub for ntoskrnl.KeDelayExecutionThread.
* Implement stubs for ntoskrnl.Ex{Acquire,Release}FastMutexUnsafe
@@ -176,8 +181,6 @@ Included bug fixes and improvements
* Improve stubs for AEV_{Get,Set}MasterVolumeLevel
* Improve stubs for AEV_{Get,Set}Mute
* Improvement for heap allocation performance
* Increase wineconsole commandline buffer size ([Wine Bug #34814](https://bugs.winehq.org/show_bug.cgi?id=34814))
* Invalidate key state cache globally after calling LL hooks ([Wine Bug #29871](https://bugs.winehq.org/show_bug.cgi?id=29871))
* 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))
* Lockfree algorithm for filedescriptor cache (improves file access speed)
@@ -193,18 +196,23 @@ Included bug fixes and improvements
* Prevent window managers from grouping all wine programs together ([Wine Bug #32699](https://bugs.winehq.org/show_bug.cgi?id=32699))
* Process APC calls before starting process
* Process Hacker 2.x needs ntoskrnl.ProbeForRead ([Wine Bug #38103](https://bugs.winehq.org/show_bug.cgi?id=38103))
* Properly track handle count of wineserver objects
* Properly handle closing sockets during a select call ([Wine Bug #38399](https://bugs.winehq.org/show_bug.cgi?id=38399))
* Python PIP needs better NtQueryInformationJobObject stub
* Recognize localhost as local machine in wbemprox
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
* Reset device state in SysKeyboard*Impl_Acquire ([Wine Bug #11607](https://bugs.winehq.org/show_bug.cgi?id=11607))
* 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 ([Wine Bug #23174](https://bugs.winehq.org/show_bug.cgi?id=23174))
* Return correct device type for cd devices without medium
* Return correct values for GetThreadTimes function ([Wine Bug #20230](https://bugs.winehq.org/show_bug.cgi?id=20230))
* Return more context attributes in schan_InitializeSecurityContextW ([Wine Bug #37527](https://bugs.winehq.org/show_bug.cgi?id=37527))
* SO_CONNECT_TIME returns the appropriate time
* Scrolling causes mouse and screen to lock in Call to Power II ([Wine Bug #34559](https://bugs.winehq.org/show_bug.cgi?id=34559))
* Send WM_PAINT event during dialog creation ([Wine Bug #35652](https://bugs.winehq.org/show_bug.cgi?id=35652))
* Set last error when GetRawInputDeviceList fails ([Wine Bug #37667](https://bugs.winehq.org/show_bug.cgi?id=37667))
* Show unmounted devices in winecfg and allow changing the unix path
* 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))
* Support for 8bpp grayscale TIFF images with 8bpp alpha channel ([Wine Bug #38027](https://bugs.winehq.org/show_bug.cgi?id=38027))
* Support for AllocateAndGetTcpExTableFromStack ([Wine Bug #34372](https://bugs.winehq.org/show_bug.cgi?id=34372))
* Support for BindImageEx ([Wine Bug #3591](https://bugs.winehq.org/show_bug.cgi?id=3591))
* Support for CSMT (command stream) to increase graphic performance ([Wine Bug #11674](https://bugs.winehq.org/show_bug.cgi?id=11674))
@@ -233,11 +241,11 @@ Included bug fixes and improvements
* Support for PulseAudio backend for audio ([Wine Bug #10495](https://bugs.winehq.org/show_bug.cgi?id=10495))
* Support for RtlDecompressBuffer ([Wine Bug #37449](https://bugs.winehq.org/show_bug.cgi?id=37449))
* Support for SHCreateSessionKey ([Wine Bug #35630](https://bugs.winehq.org/show_bug.cgi?id=35630))
* ~~Support for TOOLTIPS_GetTipText edge cases~~ ([Wine Bug #30648](https://bugs.winehq.org/show_bug.cgi?id=30648))
* 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 ([Wine Bug #34406](https://bugs.winehq.org/show_bug.cgi?id=34406))
* 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))

55
debian/changelog vendored
View File

@@ -1,4 +1,38 @@
wine-staging (1.7.40) UNRELEASED; urgency=low
wine-staging (1.7.41) unstable; urgency=low
* Updated server-PeekMessage patchset to reset message filter in accept_hardware_message call (fixes Wine Staging Bug #211).
* Updated ntdll-FileDispositionInformation patchset to block deleting mapped files (by Qian Hong, fixes Wine Staging Bug #228).
* Various improvements to the ACL patchsets.
* Disable DXVA2 controls in winecfg when support is not compiled in.
* Added patch to enable/disable EAX support via winecfg.
* Added patch with stub for setupapi.SetupDiSetDeviceInstallParamsW.
* Added first part of patchset containing various improvements for LsaLookupSids.
* Added patch to calculate msvcrt exponential math operations with higher precision.
* Added patch to fix regression caused by blacklisting supported OpenGL extensions.
* Added patch to reset device state in SysKeyboard*Impl_Acquire.
* Added patch to properly handle closing sockets during a select call.
* Added patch for support of process specific debug channels.
* Added patch to recognize localhost as local machine in wbemprox.
* Added patch to implement support for wbemprox Win32_SystemEnclosure table.
* Added patch to fix handling of opening read-only files for FILE_DELETE_ON_CLOSE.
* Added patch for implementation of mfplat.MFTRegister.
* Added patch for stub of ntdll.WinSqmIsOptedIn.
* Added patch for ProfileList\<UserSID> registry subkey.
* Added patch to avoid crash when trying to bind mshtml event scripts to window.
* Added tests for RtlIpv6AddressToString and RtlIpv6AddressToStringEx.
* Removed patches to fix invalid memory access in get_registry_locale_info (accepted upstream).
* Removed patches to avoid repeated FIXMEs in PsLookupProcessByProcessId stub (accepted upstream).
* Removed patches to return more context attributes in schan_InitializeSecurityContextW (accepted upstream).
* Removed patches to allow NULL pointer as keystate in ToUnicodeEx (accepted upstream).
* Removed patches to avoid returning an error in WS_select when EINTR happens during timeout (accepted upstream).
* Partially remove advapi32-Revert_DACL patches.
* Removed additional patches for job object support (accepted upstream).
* Removed patchset to invalidate the key state cache after calling LL hooks (accepted upstream).
* Removed patches for PowerRequest stub functions (accepted upstream).
* Removed patch to fix compatibility with gnutls28 (accepted upstream).
* Removed patch to increase wineconsole commandline buffer size (fixed upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 19 Apr 2015 01:16:43 +0200
wine-staging (1.7.40) unstable; urgency=low
* Update dsound fast mixer patchset to use integer math.
* Various improvements to Debian packaging files, pull request #310.
* Added patch with stubs for Power[Set|Clear]Request.
@@ -10,6 +44,20 @@ wine-staging (1.7.40) UNRELEASED; urgency=low
* Added patch to fix return value of WS_select in case of EINTR during timeout.
* Added patch to fix calculation of 3D sound source.
* Added patch for stub of fltmgr.sys (filter manager driver).
* Added patch to return correct device type for cd devices without medium.
* Added patch to fix device paths in HKLM\SYSTEM\MountedDevices.
* Added patch to show unmounted devices in winecfg and allow changing the unix path.
* Added patch for support of 8bpp grayscale TIFF images with 8bpp alpha channel (replaces previous stub).
* Added patch to implement support for linux priority levels (by Joakim Hernberg, various modifications by Sebastian Lackner).
* Added patch to implement mscoree._CorValidateImage for mono runtime.
* Added patch to implement proper handling of CLI .NET images in Wine library loader.
* Added patch to stub ntoskrnl.PsRemoveLoadImageNotifyRoutine
* Added patch to fix invalid memory access in get_registry_locale_info.
* Added patch to allow to open files/directories without any access rights in order to query attributes.
* Added patch to implement DDENUMSURFACES_CANBECREATED in IDirectDraw7::EnumSurfaces and fix some bugs.
* Added patch to ignore unsupported job object restrictions.
* Added patch to allow NULL pointer as keystate argument in ToUnicodeEx.
* Added patch with stub for setupapi.SetupDiSelectBestCompatDrv.
* Removed patch to fix regression causing black screen on startup (accepted upstream).
* Removed patch to fix edge cases in TOOLTIPS_GetTipText (fixed upstream).
* Removed patch for IConnectionPoint/INetworkListManagerEvents stub interface (accepted upstream).
@@ -17,7 +65,10 @@ wine-staging (1.7.40) UNRELEASED; urgency=low
* Removed patch with tests for GetFinalPathNameByHandleA/W (accepted upstream).
* Removed patch to emulate 'mov Eb, Gb' instruction on x86 processor architecture (accepted upstream).
* Removed patches for Setup*Log() functions (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Mon, 23 Mar 2015 16:12:20 +0100
* Removed tests for job objects (accepted upstream).
* Removed patch to fix various bugs in RtlUnwindEx on x86_64 (accepted upstream).
* Partially removed patches for job objects (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 05 Apr 2015 01:28:45 +0200
wine-staging (1.7.39) unstable; urgency=low
* Fix a build failure on MacOS caused by using of strndup in the server-Inherited_ACLs patchset.

41
debian/control vendored
View File

@@ -7,7 +7,6 @@ Build-Depends: autotools-dev,
autoconf,
bison,
bsdmainutils,
coreutils,
debhelper (>= 7),
docbook-to-man,
docbook-utils,
@@ -17,7 +16,6 @@ Build-Depends: autotools-dev,
gawk,
gcc-4.5 | gcc-4.7 | ubuntu-desktop (<< 1.207),
gettext,
gzip,
libacl1-dev,
libasound2-dev,
libcapi20-dev,
@@ -63,12 +61,13 @@ Build-Depends: autotools-dev,
libxxf86vm-dev,
linux-kernel-headers,
linux-libc-dev,
patch,
perl,
prelink,
quilt (>= 0.46-7~),
sharutils,
unixodbc-dev,
x11proto-xinerama-dev
Standards-Version: 3.9.2
Standards-Version: 3.9.5
Package: wine-staging-i386
Architecture: i386
@@ -255,6 +254,40 @@ Description: special build of the popular Wine software
This package includes debugging symbols useful for reporting crashes and other
failures.
Package: wine-staging-compat
Architecture: i386 amd64
Depends: wine-staging, ${misc:Depends}
Section: otherosfs
Priority: optional
Replaces: wine, wine1.4, wine1.5, wine1.6, wine1.7, wine-i386, wine1.4-i386,
wine1.5-i386, wine1.6-i386, wine1.7-i386, ine-amd64, wine1.4-amd64,
wine1.5-amd64, wine1.6-amd64, wine1.7-amd64
Conflicts: wine, wine-i386, wine-amd64
Provides: wine, wine1.4, wine1.5, wine1.6, wine1.7, wine-i386, wine1.4-i386,
wine1.5-i386, wine1.6-i386, wine1.7-i386, wine-amd64 [amd64],
wine1.4-amd64 [amd64], wine1.5-amd64 [amd64], wine1.6-amd64 [amd64],
wine1.7-amd64 [amd64]
Description: special build of the popular Wine software
The Staging Edition is a special build of the popular Wine software
with patches representing our current staging tree for Wine.
.
Microsoft Windows Compatibility Layer (Binary Emulator and Library)
Wine is a compatibility layer for running Windows applications on Linux.
Applications are run at full speed without the need of cpu emulation. Wine
does not require Microsoft Windows, however it can use native system dll
files in place of its own if they are available.
.
This package includes a program loader for running unmodified Windows
executables as well as the Wine project's free version of the Windows API
for running programs ported from Windows.
.
This package is based on a recent Wine beta. While many more applications
will work, there may be some loss of functionality compared with the stable
release provided by the regular wine package.
.
This compatibility package allows to use Wine Staging system-wide as
the default Wine version.
Package: wine-compholio
Architecture: i386 amd64
Depends: wine-staging, ${misc:Depends}

5
debian/rules vendored
View File

@@ -56,18 +56,23 @@ override_dh_install:
# Create compatibility symlinks
mkdir -p debian/wine-compholio/opt/wine-compholio/bin
mkdir -p debian/wine-staging-compat/usr/bin
for _file in $$(ls "debian/wine-staging/opt/wine-staging/bin"); do \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio/opt/wine-compholio/bin/$$_file"; \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-staging-compat/usr/bin/$$_file"; \
done
# Architecture specific compatibility symlinks
ifeq ($(DEB_HOST_ARCH),amd64)
for _file in wine wine-preloader wine64 wine64-preloader; do \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio/opt/wine-compholio/bin/$$_file"; \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-staging-compat/usr/bin/$$_file"; \
done
else
for _file in wine wine-preloader; do \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio/opt/wine-compholio/bin/$$_file"; \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-staging-compat/usr/bin/$$_file"; \
done
endif

View File

@@ -1,70 +0,0 @@
#
# This file is automatically generated, DO NOT EDIT!
#
.NOTPARALLEL:
CURDIR ?= ${{.CURDIR}}
PATCH := $(CURDIR)/../debian/tools/gitapply.sh
APPLY = (cd "$(DESTDIR)" && $(PATCH))
APPLY_FILE = @echo "Applying $(1)"; $(APPLY) < "$(CURDIR)/$(1)"
#
# This Makefile understands the following targets:
#
# install (default): apply patches to directory provided by DESTDIR
# install-git: as above, but use 'git am' to apply the patches
# series: create a 'series' file containing the patch order
# clean: delete autogenerated and temporary files
#
PATCHLIST := \
{patchlist}
.PHONY: install
install: $(PATCHLIST)
cat *.ok | sort | $(CURDIR)/../debian/tools/patchlist.sh | $(APPLY)
cd $(DESTDIR) && autoreconf -f
cd $(DESTDIR) && ./tools/make_requests
.PHONY: install-git
install-git: PATCH := git am
install-git: install
series: APPLY_FILE = @echo "$(1)" >> series
series: $(PATCHLIST)
@cat *.ok | sort | $(CURDIR)/../debian/tools/patchlist.sh > patchlist.diff
@echo "patchlist.diff" >> series
@( \
echo ""; \
echo "The 'series' file was created in current directory. Please note that"; \
echo "'patchlist.diff' is autogenerated based on your selection of patches and not"; \
echo "included in this repository - keep in mind to update it on every release."; \
echo ""; \
echo "Moreover, depending on which patches you have selected, you will have to run"; \
echo "'autoreconf -f' and/or './tools/make_requests' after applying them."; \
echo ""; \
binary=0; \
while IFS= read -r line; do \
if grep -q "^GIT binary patch" "$$line"; then \
binary=1; break; \
fi \
done < series; \
if [ "$$binary" -ne 0 ]; then \
echo "The following files contain binary patches and cannot be applied with the"; \
echo "regular 'patch' commandline tool:"; \
echo ""; \
while IFS= read -r line; do \
grep -q "^GIT binary patch" "$$line" && echo "$$line"; \
done < series; \
echo ""; \
echo "Please use 'git apply' or '../debian/tools/gitapply.sh' from this repository."; \
echo ""; \
fi \
)
.PHONY: clean
clean:
rm -f series patchlist.diff
rm -f *.ok

View File

@@ -1,25 +1,26 @@
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** (formerly wine-compholio) is a special wine version containing
bug fixes and features that are not yet available in regular wine versions. The
idea behind Wine Staging is to provide new features faster to end users and to
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.
wine. More information about Wine Staging can also be found on our website
[wine-staging.com](http://wine-staging.com).
Although we are reviewing all patches before adding them, you may encounter
additional bugs, which are not present in regular 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!
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
===================================
-----------------------------------
Ready-to-use packages for Wine Staging are available for a variety
of different Linux distributions directly for download. Just follow the
@@ -36,7 +37,7 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
===================================
-----------------------------------
{fixes}

View File

@@ -175,7 +175,7 @@ if test "$backend" = "patch"; then
patch_apply_file ()
{{
echo "Applying $1"
if ! "$patchdir/../debian/tools/gitapply.sh" $gitapply_args < "$1"; then
if ! "$patchdir/gitapply.sh" $gitapply_args < "$1"; then
abort "Failed to apply patch, aborting!"
fi
}}
@@ -201,7 +201,7 @@ elif test "$backend" = "epatch"; then
shortname="$(basename "$1")"
if grep -q "^GIT binary patch" "$1"; then
ebegin "Applying $shortname"
"$patchdir/../debian/tools/gitapply.sh" $gitapply_args < "$1" || \
"$patchdir/gitapply.sh" $gitapply_args < "$1" || \
die "Failed Patch: $1!"
eend

View File

@@ -47,6 +47,8 @@ latest_wine_commit = None
cached_patch_result = {}
class config(object):
path_cache = ".patchupdate.cache"
path_patches = "patches"
path_changelog = "debian/changelog"
path_wine = "debian/tools/wine"
@@ -115,8 +117,9 @@ def _load_dict(filename):
def _save_dict(filename, value):
"""Save a Python dictionary object to a file."""
with open(filename, "wb") as fp:
with open("%s.new" % filename, "wb") as fp:
pickle.dump(value, fp, pickle.HIGHEST_PROTOCOL)
os.rename("%s.new" % filename, filename)
def _sha256(fp):
"""Calculate sha256sum from a file descriptor."""
@@ -320,7 +323,7 @@ def read_patchset(revision = None):
if revision is None:
once = True
for bugid, bug in sorted(_winebugs_query(all_bugids).items()):
if bug['bug_status'] not in ["UNCONFIRMED", "NEW", "REOPENED"]:
if bug['bug_status'] not in ["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"]:
if once:
print ""
print "WARNING: The following bugs might require attention:"
@@ -364,7 +367,7 @@ def contains_binary_patch(all_patches, indices, filename):
return False
def get_wine_file(filename):
"""Return the hash and optionally the content of a file."""
"""Return the content of a file."""
entry = "%s:%s" % (latest_wine_commit, filename)
result = tempfile.NamedTemporaryFile()
try:
@@ -501,6 +504,7 @@ def generate_script(all_patches):
modified_files[f].append(i)
# Check dependencies
dependency_cache = _load_dict(config.path_cache)
pool = multiprocessing.pool.ThreadPool(processes=4)
try:
for filename, indices in modified_files.iteritems():
@@ -513,8 +517,28 @@ def generate_script(all_patches):
continue
original_content = get_wine_file(filename)
original_hash = _sha256(original_content)
selected_patches = select_patches(all_patches, indices, filename)
# Generate a unique id based on the original content, the selected patches
# and the dependency information. Since this information only has to be compared
# we can throw it into a single hash.
m = hashlib.sha256()
m.update(original_hash)
for i in indices:
m.update("P%s" % selected_patches[i][0])
for j in indices:
if causal_time_smaller(all_patches[j].verify_time, all_patches[i].verify_time):
m.update("D%s" % selected_patches[j][0])
unique_hash = m.digest()
# Skip checks if it matches the information from the cache
try:
if dependency_cache[filename] == unique_hash:
continue
except KeyError:
pass
# Show a progress bar while applying the patches - this task might take some time
chunk_size = 20
with progressbar.ProgressBar(desc=filename, total=2 ** len(indices) / chunk_size) as progress:
@@ -532,7 +556,7 @@ def generate_script(all_patches):
try:
original = original_content
for i, patch in set_apply:
for i, _ in set_apply:
original = patchutils.apply_patch(original, selected_patches[i][1], fuzz=0)
except patchutils.PatchApplyError:
return False
@@ -552,8 +576,13 @@ def generate_script(all_patches):
raise PatchUpdaterError("Changes to file %s don't apply: %s" %
(filename, ", ".join([all_patches[i].name for i in indices])))
progress.update(k)
# Update the dependency cache
dependency_cache[filename] = unique_hash
finally:
pool.close()
_save_dict(config.path_cache, dependency_cache)
# Generate code for helper functions
lines = []
@@ -676,13 +705,20 @@ def generate_markdown(all_patches, stable_patches, stable_compholio_version):
# Generate information for current version
lines = []
if len(new_fixes):
lines.append("**Bugfixes and features included in the next upcoming release [%d]:**" % len(new_fixes))
lines.append("**Bug fixes and features included in the next upcoming release [%d]:**" % len(new_fixes))
lines.append("")
for mode, bugid, bugname in sorted(new_fixes, key=lambda x: x[2]):
lines.append(_format_bug(mode, bugid, bugname))
lines.append("")
lines.append("")
lines.append("**Bugs fixed in Wine Staging %s [%d]:**" % (stable_compholio_version, len(old_fixes)))
lines.append("**Bug fixes and features in Wine Staging %s [%d]:**" % (stable_compholio_version, len(old_fixes)))
lines.append("")
lines.append("*Note: The following list only contains features and bug fixes which are not")
lines.append("yet available in vanilla Wine. They are removed from the list as soon as they")
lines.append("are included upstream. The list also includes features and fixes from previous")
lines.append("releases, take a look at the")
lines.append("[changelog](https://github.com/wine-compholio/wine-staging/blob/master/debian/changelog)")
lines.append("for more details.*")
lines.append("")
for mode, bugid, bugname in sorted(old_fixes, key=lambda x: x[2]):
lines.append(_format_bug(mode, bugid, bugname))

View File

@@ -29,9 +29,14 @@ import termios
def _sig_winch(signum=None, frame=None):
"""Signal handler for SIGWINCH."""
global _term_width
h, w, hp, wp = struct.unpack('HHHH', fcntl.ioctl(sys.stdout.fileno(),
termios.TIOCGWINSZ, struct.pack('HHHH', 0, 0, 0, 0)))
_term_width = w
try:
h, w, hp, wp = struct.unpack('HHHH', fcntl.ioctl(sys.stdout.fileno(),
termios.TIOCGWINSZ, struct.pack('HHHH', 0, 0, 0, 0)))
_term_width = w
except IOError:
# ignore 'IOError: [Errno 25] Inappropriate ioctl for device',
# which can occur when resizing the window while the output is redirected
pass
try:
_sig_winch()

View File

@@ -0,0 +1,3 @@
# Wine preloader needs static linking to reserve memory and work properly, see
# the comments at loader/preloader.c for a fuller explanation
wine-staging-amd64 binary: statically-linked-binary opt/wine-staging/bin/wine64-preloader

View File

@@ -0,0 +1,3 @@
# Wine preloader needs static linking to reserve memory and work properly, see
# the comments at loader/preloader.c for a fuller explanation
wine-staging-i386 binary: statically-linked-binary opt/wine-staging/bin/wine-preloader

View File

@@ -0,0 +1,31 @@
From be28c746d013c16fa6c2e50f5f9debc45d39d81b Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Tue, 7 Apr 2015 13:18:31 +0800
Subject: advapi32: Initialize buffer length to zero in LsaLookupSids to
prevent crash. (try 2)
Superseded 110588-110594
Try 2:
- Use RtlInitUnicodeStringEx to simplify code when possible. Same for
other patches in this series. (Thanks Nikolay)
---
dlls/advapi32/lsa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
index 2a8b791..69c29c5 100644
--- a/dlls/advapi32/lsa.c
+++ b/dlls/advapi32/lsa.c
@@ -502,7 +502,7 @@ NTSTATUS WINAPI LsaLookupSids(
{
(*Names)[i].Use = SidTypeUnknown;
(*Names)[i].DomainIndex = -1;
- (*Names)[i].Name.Buffer = NULL;
+ RtlInitUnicodeStringEx(&(*Names)[i].Name, NULL);
memset(&(*ReferencedDomains)->Domains[i], 0, sizeof(LSA_TRUST_INFORMATION));
--
2.3.5

View File

@@ -0,0 +1,47 @@
From 246cb6b72666dcb77fb2f553d318d7dabbe8811d Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Tue, 7 Apr 2015 13:18:47 +0800
Subject: advapi32: Prepend a hidden LSA_TRUST_INFORMATION in LsaLookupSids to
avoid crash when Domains[-1] incorrectly accessed by application. (try 2)
---
dlls/advapi32/lsa.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
index 69c29c5..dfe25b3 100644
--- a/dlls/advapi32/lsa.c
+++ b/dlls/advapi32/lsa.c
@@ -488,14 +488,17 @@ NTSTATUS WINAPI LsaLookupSids(
if (!(*Names = heap_alloc(name_fullsize))) return STATUS_NO_MEMORY;
/* maximum count of stored domain infos is Count, allocate it like that cause really needed
count could only be computed after sid data is retrieved */
- domain_fullsize = sizeof(LSA_REFERENCED_DOMAIN_LIST) + sizeof(LSA_TRUST_INFORMATION)*Count;
+ domain_fullsize = sizeof(LSA_REFERENCED_DOMAIN_LIST) + sizeof(LSA_TRUST_INFORMATION) * (Count + 1);
if (!(*ReferencedDomains = heap_alloc(domain_fullsize)))
{
heap_free(*Names);
return STATUS_NO_MEMORY;
}
(*ReferencedDomains)->Entries = 0;
- (*ReferencedDomains)->Domains = (LSA_TRUST_INFORMATION*)((char*)*ReferencedDomains + sizeof(LSA_REFERENCED_DOMAIN_LIST));
+ (*ReferencedDomains)->Domains = (LSA_TRUST_INFORMATION*)((char*)*ReferencedDomains +
+ sizeof(LSA_REFERENCED_DOMAIN_LIST) + sizeof(LSA_TRUST_INFORMATION));
+ (*ReferencedDomains)->Domains[-1].Sid = NULL;
+ RtlInitUnicodeStringEx(&(*ReferencedDomains)->Domains[-1].Name, NULL);
/* Get full names data length and full length needed to store domain name and SID */
for (i = 0; i < Count; i++)
@@ -555,7 +558,8 @@ NTSTATUS WINAPI LsaLookupSids(
*ReferencedDomains = heap_realloc(*ReferencedDomains, domain_fullsize);
/* fix pointer after reallocation */
- (*ReferencedDomains)->Domains = (LSA_TRUST_INFORMATION*)((char*)*ReferencedDomains + sizeof(LSA_REFERENCED_DOMAIN_LIST));
+ (*ReferencedDomains)->Domains = (LSA_TRUST_INFORMATION*)((char*)*ReferencedDomains +
+ sizeof(LSA_REFERENCED_DOMAIN_LIST) + sizeof(LSA_TRUST_INFORMATION));
domain_data = (char*)(*ReferencedDomains)->Domains + sizeof(LSA_TRUST_INFORMATION)*Count;
mapped = 0;
--
2.3.5

View File

@@ -0,0 +1,39 @@
From ce254ac3659e0c040136341d035629f99ec6d1ea Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Tue, 7 Apr 2015 13:19:06 +0800
Subject: advapi32: Prepend a hidden LSA_TRUST_INFORMATION in LsaLookupNames2
to avoid crash when Domains[-1] incorrectly accessed by application. (try 2)
---
dlls/advapi32/lsa.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
index dfe25b3..258b8ca 100644
--- a/dlls/advapi32/lsa.c
+++ b/dlls/advapi32/lsa.c
@@ -404,14 +404,18 @@ NTSTATUS WINAPI LsaLookupNames2( LSA_HANDLE policy, ULONG flags, ULONG count,
sid = (SID *)(*sids + count);
/* use maximum domain count */
- if (!(*domains = heap_alloc(sizeof(LSA_REFERENCED_DOMAIN_LIST) + sizeof(LSA_TRUST_INFORMATION)*count +
- sid_size_total + domainname_size_total*sizeof(WCHAR))))
+ if (!(*domains = heap_alloc(sizeof(LSA_REFERENCED_DOMAIN_LIST) + sizeof(LSA_TRUST_INFORMATION) * (count + 1) +
+ sid_size_total + domainname_size_total * sizeof(WCHAR))))
{
heap_free(*sids);
return STATUS_NO_MEMORY;
}
(*domains)->Entries = 0;
- (*domains)->Domains = (LSA_TRUST_INFORMATION*)((char*)*domains + sizeof(LSA_REFERENCED_DOMAIN_LIST));
+ (*domains)->Domains = (LSA_TRUST_INFORMATION*)((char*)*domains +
+ sizeof(LSA_REFERENCED_DOMAIN_LIST) + sizeof(LSA_TRUST_INFORMATION));
+ (*domains)->Domains[-1].Sid = NULL;
+ RtlInitUnicodeStringEx(&(*domains)->Domains[-1].Name, NULL);
+
domain_data = (char*)(*domains)->Domains + sizeof(LSA_TRUST_INFORMATION)*count;
domain.Buffer = heap_alloc(domain_size_max*sizeof(WCHAR));
--
2.3.5

View File

@@ -0,0 +1,67 @@
From 9a19e77a0334f91e370e73099066484f20b24321 Mon Sep 17 00:00:00 2001
From: Qian Hong <qhong@codeweavers.com>
Date: Tue, 7 Apr 2015 11:23:34 +0800
Subject: advapi32: Fallback to Sid string when LookupAccountSid fails.
---
dlls/advapi32/lsa.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
index 258b8ca..2b2c6b6 100644
--- a/dlls/advapi32/lsa.c
+++ b/dlls/advapi32/lsa.c
@@ -29,6 +29,7 @@
#include "winbase.h"
#include "winreg.h"
#include "winternl.h"
+#include "sddl.h"
#include "advapi32_misc.h"
#include "wine/debug.h"
@@ -554,6 +555,21 @@ NTSTATUS WINAPI LsaLookupSids(
heap_free(name);
}
}
+ else
+ {
+ WCHAR *strsid = NULL;
+
+ if (ConvertSidToStringSidW(Sids[i], &strsid))
+ {
+ name_size = strlenW(strsid) + 1;
+
+ (*Names)[i].Name.Length = (name_size - 1) * sizeof(WCHAR);
+ (*Names)[i].Name.MaximumLength = name_size * sizeof(WCHAR);
+ name_fullsize += (*Names)[i].Name.MaximumLength;
+
+ LocalFree(strsid);
+ }
+ }
}
/* now we have full length needed for both */
@@ -593,6 +609,20 @@ NTSTATUS WINAPI LsaLookupSids(
heap_free(domain.Buffer);
}
}
+ else
+ {
+ WCHAR *strsid = NULL;
+
+ if (ConvertSidToStringSidW(Sids[i], &strsid))
+ {
+ name_size = strlenW(strsid) + 1;
+
+ (*Names)[i].Name.Buffer = name_buffer;
+ memcpy((*Names)[i].Name.Buffer, strsid, name_size * sizeof(WCHAR));
+
+ LocalFree(strsid);
+ }
+ }
name_buffer += name_size;
}
--
2.3.5

View File

@@ -1,216 +0,0 @@
From 8ce7a8b0f7ea6a94ae8327b4a3d07a10c12a2c9e Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 27 Mar 2015 15:32:04 +0100
Subject: Revert "advapi32: Add DACL inheritance support in SetSecurityInfo."
This reverts commit f974d726720eff4fcd7371bca95e6cdcc4b4a848.
---
dlls/advapi32/security.c | 130 +----------------------------------------
dlls/advapi32/tests/security.c | 23 ++++----
2 files changed, 14 insertions(+), 139 deletions(-)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index 71a8c92..e8cdcc5 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -4052,8 +4052,6 @@ DWORD WINAPI SetNamedSecurityInfoW(LPWSTR pObjectName,
}
break;
case SE_FILE_OBJECT:
- if (SecurityInfo & DACL_SECURITY_INFORMATION)
- access |= READ_CONTROL;
if (!(err = get_security_file( pObjectName, access, &handle )))
{
err = SetSecurityInfo( handle, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl );
@@ -5731,7 +5729,6 @@ DWORD WINAPI SetSecurityInfo(HANDLE handle, SE_OBJECT_TYPE ObjectType,
PSID psidGroup, PACL pDacl, PACL pSacl)
{
SECURITY_DESCRIPTOR sd;
- PACL dacl = pDacl;
NTSTATUS status;
if (!InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION))
@@ -5742,130 +5739,7 @@ DWORD WINAPI SetSecurityInfo(HANDLE handle, SE_OBJECT_TYPE ObjectType,
if (SecurityInfo & GROUP_SECURITY_INFORMATION)
SetSecurityDescriptorGroup(&sd, psidGroup, FALSE);
if (SecurityInfo & DACL_SECURITY_INFORMATION)
- {
- if (ObjectType == SE_FILE_OBJECT)
- {
- SECURITY_DESCRIPTOR_CONTROL control;
- PSECURITY_DESCRIPTOR psd;
- OBJECT_NAME_INFORMATION *name_info;
- DWORD size, rev;
-
- status = NtQuerySecurityObject(handle, SecurityInfo, NULL, 0, &size);
- if (status != STATUS_BUFFER_TOO_SMALL)
- return RtlNtStatusToDosError(status);
-
- psd = heap_alloc(size);
- if (!psd)
- return ERROR_NOT_ENOUGH_MEMORY;
-
- status = NtQuerySecurityObject(handle, SecurityInfo, psd, size, &size);
- if (status)
- {
- heap_free(psd);
- return RtlNtStatusToDosError(status);
- }
-
- status = RtlGetControlSecurityDescriptor(psd, &control, &rev);
- heap_free(psd);
- if (status)
- return RtlNtStatusToDosError(status);
- /* TODO: copy some control flags to new sd */
-
- /* inherit parent directory DACL */
- if (!(control & SE_DACL_PROTECTED))
- {
- status = NtQueryObject(handle, ObjectNameInformation, NULL, 0, &size);
- if (status != STATUS_INFO_LENGTH_MISMATCH)
- return RtlNtStatusToDosError(status);
-
- name_info = heap_alloc(size);
- if (!name_info)
- return ERROR_NOT_ENOUGH_MEMORY;
-
- status = NtQueryObject(handle, ObjectNameInformation, name_info, size, NULL);
- if (status)
- {
- heap_free(name_info);
- return RtlNtStatusToDosError(status);
- }
-
- for (name_info->Name.Length-=2; name_info->Name.Length>0; name_info->Name.Length-=2)
- if (name_info->Name.Buffer[name_info->Name.Length/2-1]=='\\' ||
- name_info->Name.Buffer[name_info->Name.Length/2-1]=='/')
- break;
- if (name_info->Name.Length)
- {
- OBJECT_ATTRIBUTES attr;
- IO_STATUS_BLOCK io;
- HANDLE parent;
- PSECURITY_DESCRIPTOR parent_sd;
- ACL *parent_dacl;
- DWORD err = ERROR_ACCESS_DENIED;
-
- name_info->Name.Buffer[name_info->Name.Length/2] = 0;
-
- attr.Length = sizeof(attr);
- attr.RootDirectory = 0;
- attr.Attributes = 0;
- attr.ObjectName = &name_info->Name;
- attr.SecurityDescriptor = NULL;
- status = NtOpenFile(&parent, READ_CONTROL, &attr, &io,
- FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
- FILE_OPEN_FOR_BACKUP_INTENT);
- heap_free(name_info);
- if (!status)
- {
- err = GetSecurityInfo(parent, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION,
- NULL, NULL, &parent_dacl, NULL, &parent_sd);
- CloseHandle(parent);
- }
-
- 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");
- }
- LocalFree(parent_sd);
- }
- }
- else
- heap_free(name_info);
- }
- }
-
- SetSecurityDescriptorDacl(&sd, TRUE, dacl, FALSE);
- }
+ SetSecurityDescriptorDacl(&sd, TRUE, pDacl, FALSE);
if (SecurityInfo & SACL_SECURITY_INFORMATION)
SetSecurityDescriptorSacl(&sd, TRUE, pSacl, FALSE);
@@ -5879,8 +5753,6 @@ DWORD WINAPI SetSecurityInfo(HANDLE handle, SE_OBJECT_TYPE ObjectType,
status = NtSetSecurityObject(handle, SecurityInfo, &sd);
break;
}
- if (dacl != pDacl)
- heap_free(dacl);
return RtlNtStatusToDosError(status);
}
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 15c3b1d..6d3f9ac 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -3417,22 +3417,25 @@ static void test_GetNamedSecurityInfoA(void)
error = pGetNamedSecurityInfoA(tmpfile, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION,
NULL, NULL, &pDacl, NULL, &pSD);
- ok(!error, "GetNamedSecurityInfo failed with error %d\n", error);
+ todo_wine ok(!error, "GetNamedSecurityInfo failed with error %d\n", error);
- bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
- ok(bret, "GetAclInformation failed\n");
- if (acl_size.AceCount > 0)
+ if (!error)
{
- bret = pGetAce(pDacl, 0, (VOID **)&ace);
- ok(bret, "Failed to get ACE.\n");
- todo_wine ok(((ACE_HEADER *)ace)->AceFlags & INHERITED_ACE,
- "ACE has unexpected flags: 0x%x\n", ((ACE_HEADER *)ace)->AceFlags);
+ bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
+ ok(bret, "GetAclInformation failed\n");
+ if (acl_size.AceCount > 0)
+ {
+ bret = pGetAce(pDacl, 0, (VOID **)&ace);
+ ok(bret, "Failed to get ACE.\n");
+ ok(((ACE_HEADER *)ace)->AceFlags & INHERITED_ACE,
+ "ACE has unexpected flags: 0x%x\n", ((ACE_HEADER *)ace)->AceFlags);
+ }
+ LocalFree(pSD);
}
- LocalFree(pSD);
h = CreateFileA(tmpfile, GENERIC_READ, FILE_SHARE_DELETE|FILE_SHARE_WRITE|FILE_SHARE_READ,
NULL, OPEN_EXISTING, 0, NULL);
- ok(h != INVALID_HANDLE_VALUE, "CreateFile error %d\n", GetLastError());
+ todo_wine ok(h != INVALID_HANDLE_VALUE, "CreateFile error %d\n", GetLastError());
CloseHandle(h);
/* NtSetSecurityObject doesn't inherit DACL entries */
--
2.3.3

View File

@@ -1,74 +0,0 @@
From 0a8954d7ed5e57340ab6b6234fb3bdfe498fb69e Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 27 Mar 2015 15:32:17 +0100
Subject: Revert "advapi32/tests: Add test for mapping DACL to permission."
This reverts commit a4b12eb9f937202848b229ed15f2c7d1823b41da.
---
dlls/advapi32/tests/security.c | 35 ++---------------------------------
1 file changed, 2 insertions(+), 33 deletions(-)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 6d3f9ac..dbe52b0 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -3405,6 +3405,7 @@ static void test_GetNamedSecurityInfoA(void)
"Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
}
LocalFree(pSD);
+ HeapFree(GetProcessHeap(), 0, user);
/* show that setting empty DACL is not removing all file permissions */
pDacl = HeapAlloc(GetProcessHeap(), 0, sizeof(ACL));
@@ -3441,7 +3442,7 @@ static void test_GetNamedSecurityInfoA(void)
/* NtSetSecurityObject doesn't inherit DACL entries */
pSD = sd+sizeof(void*)-((ULONG_PTR)sd)%sizeof(void*);
InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION);
- pDacl = HeapAlloc(GetProcessHeap(), 0, 100);
+ pDacl = HeapAlloc(GetProcessHeap(), 0, sizeof(ACL));
bret = InitializeAcl(pDacl, sizeof(ACL), ACL_REVISION);
ok(bret, "Failed to initialize ACL.\n");
bret = SetSecurityDescriptorDacl(pSD, TRUE, pDacl, FALSE);
@@ -3472,39 +3473,7 @@ static void test_GetNamedSecurityInfoA(void)
NULL, OPEN_EXISTING, 0, NULL);
ok(h == INVALID_HANDLE_VALUE, "CreateFile error %d\n", GetLastError());
CloseHandle(h);
-
- /* test if DACL is properly mapped to permission */
- bret = InitializeAcl(pDacl, 100, ACL_REVISION);
- ok(bret, "Failed to initialize ACL.\n");
- bret = pAddAccessAllowedAceEx(pDacl, ACL_REVISION, 0, GENERIC_ALL, user_sid);
- ok(bret, "Failed to add Current User to ACL.\n");
- bret = pAddAccessDeniedAceEx(pDacl, ACL_REVISION, 0, GENERIC_ALL, user_sid);
- ok(bret, "Failed to add Current User to ACL.\n");
- bret = SetSecurityDescriptorDacl(pSD, TRUE, pDacl, FALSE);
- ok(bret, "Failed to add ACL to security desciptor.\n");
- status = pNtSetSecurityObject(hTemp, DACL_SECURITY_INFORMATION, pSD);
- ok(status == ERROR_SUCCESS, "NtSetSecurityObject returned %x\n", status);
-
- h = CreateFileA(tmpfile, GENERIC_READ, FILE_SHARE_DELETE|FILE_SHARE_WRITE|FILE_SHARE_READ,
- NULL, OPEN_EXISTING, 0, NULL);
- todo_wine ok(h != INVALID_HANDLE_VALUE, "CreateFile error %d\n", GetLastError());
-
- bret = InitializeAcl(pDacl, 100, ACL_REVISION);
- ok(bret, "Failed to initialize ACL.\n");
- bret = pAddAccessDeniedAceEx(pDacl, ACL_REVISION, 0, GENERIC_ALL, user_sid);
- ok(bret, "Failed to add Current User to ACL.\n");
- bret = pAddAccessAllowedAceEx(pDacl, ACL_REVISION, 0, GENERIC_ALL, user_sid);
- ok(bret, "Failed to add Current User to ACL.\n");
- bret = SetSecurityDescriptorDacl(pSD, TRUE, pDacl, FALSE);
- ok(bret, "Failed to add ACL to security desciptor.\n");
- status = pNtSetSecurityObject(hTemp, DACL_SECURITY_INFORMATION, pSD);
- ok(status == ERROR_SUCCESS, "NtSetSecurityObject returned %x\n", status);
-
- h = CreateFileA(tmpfile, GENERIC_READ, FILE_SHARE_DELETE|FILE_SHARE_WRITE|FILE_SHARE_READ,
- NULL, OPEN_EXISTING, 0, NULL);
- ok(h == INVALID_HANDLE_VALUE, "CreateFile error %d\n", GetLastError());
HeapFree(GetProcessHeap(), 0, pDacl);
- HeapFree(GetProcessHeap(), 0, user);
CloseHandle(hTemp);
/* Test querying the ownership of a built-in registry key */
--
2.3.3

View File

@@ -1,142 +0,0 @@
From 99244514ca0c26e263e14d7fdf095083e4686166 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 27 Mar 2015 15:32:32 +0100
Subject: Revert "advapi32: Add SetNamedSecurityInfo test with empty DACL."
This reverts commit 02c4f5bd275d70d1dcb48bf95775efa376b50c22.
---
dlls/advapi32/tests/security.c | 79 +++---------------------------------------
1 file changed, 4 insertions(+), 75 deletions(-)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index dbe52b0..e3c1659 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -147,7 +147,6 @@ static BOOL (WINAPI *pCreateRestrictedToken)(HANDLE, DWORD, DWORD, PSID_AND_ATTR
PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);
static BOOL (WINAPI *pGetAclInformation)(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
static BOOL (WINAPI *pGetAce)(PACL,DWORD,LPVOID*);
-static NTSTATUS (WINAPI *pNtSetSecurityObject)(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
static HMODULE hmod;
static int myARGC;
@@ -174,7 +173,6 @@ static void init(void)
hntdll = GetModuleHandleA("ntdll.dll");
pNtQueryObject = (void *)GetProcAddress( hntdll, "NtQueryObject" );
pNtAccessCheck = (void *)GetProcAddress( hntdll, "NtAccessCheck" );
- pNtSetSecurityObject = (void *)GetProcAddress(hntdll, "NtSetSecurityObject");
hmod = GetModuleHandleA("advapi32.dll");
pAddAccessAllowedAceEx = (void *)GetProcAddress(hmod, "AddAccessAllowedAceEx");
@@ -3231,7 +3229,7 @@ static void test_GetNamedSecurityInfoA(void)
char invalid_path[] = "/an invalid file path";
int users_ace_id = -1, admins_ace_id = -1, i;
char software_key[] = "MACHINE\\Software";
- char sd[SECURITY_DESCRIPTOR_MIN_LENGTH+sizeof(void*)];
+ char sd[SECURITY_DESCRIPTOR_MIN_LENGTH];
SECURITY_DESCRIPTOR_CONTROL control;
ACL_SIZE_INFORMATION acl_size;
CHAR windows_dir[MAX_PATH];
@@ -3243,12 +3241,11 @@ static void test_GetNamedSecurityInfoA(void)
BOOL owner_defaulted;
BOOL group_defaulted;
BOOL dacl_defaulted;
- HANDLE token, hTemp, h;
+ HANDLE token, hTemp;
PSID owner, group;
BOOL dacl_present;
PACL pDacl;
BYTE flags;
- NTSTATUS status;
if (!pSetNamedSecurityInfoA || !pGetNamedSecurityInfoA || !pCreateWellKnownSid)
{
@@ -3353,8 +3350,8 @@ static void test_GetNamedSecurityInfoA(void)
bret = SetSecurityDescriptorDacl(pSD, TRUE, pDacl, FALSE);
ok(bret, "Failed to add ACL to security desciptor.\n");
GetTempFileNameA(".", "foo", 0, tmpfile);
- hTemp = CreateFileA(tmpfile, WRITE_DAC|GENERIC_WRITE, FILE_SHARE_DELETE|FILE_SHARE_READ,
- NULL, OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, NULL);
+ hTemp = CreateFileA(tmpfile, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING,
+ FILE_FLAG_DELETE_ON_CLOSE, NULL);
SetLastError(0xdeadbeef);
error = pSetNamedSecurityInfoA(tmpfile, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL,
NULL, pDacl, NULL);
@@ -3406,74 +3403,6 @@ static void test_GetNamedSecurityInfoA(void)
}
LocalFree(pSD);
HeapFree(GetProcessHeap(), 0, user);
-
- /* show that setting empty DACL is not removing all file permissions */
- pDacl = HeapAlloc(GetProcessHeap(), 0, sizeof(ACL));
- bret = InitializeAcl(pDacl, sizeof(ACL), ACL_REVISION);
- ok(bret, "Failed to initialize ACL.\n");
- error = pSetNamedSecurityInfoA(tmpfile, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION,
- NULL, NULL, pDacl, NULL);
- ok(!error, "SetNamedSecurityInfoA failed with error %d\n", error);
- HeapFree(GetProcessHeap(), 0, pDacl);
-
- error = pGetNamedSecurityInfoA(tmpfile, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION,
- NULL, NULL, &pDacl, NULL, &pSD);
- todo_wine ok(!error, "GetNamedSecurityInfo failed with error %d\n", error);
-
- if (!error)
- {
- bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
- ok(bret, "GetAclInformation failed\n");
- if (acl_size.AceCount > 0)
- {
- bret = pGetAce(pDacl, 0, (VOID **)&ace);
- ok(bret, "Failed to get ACE.\n");
- ok(((ACE_HEADER *)ace)->AceFlags & INHERITED_ACE,
- "ACE has unexpected flags: 0x%x\n", ((ACE_HEADER *)ace)->AceFlags);
- }
- LocalFree(pSD);
- }
-
- h = CreateFileA(tmpfile, GENERIC_READ, FILE_SHARE_DELETE|FILE_SHARE_WRITE|FILE_SHARE_READ,
- NULL, OPEN_EXISTING, 0, NULL);
- todo_wine ok(h != INVALID_HANDLE_VALUE, "CreateFile error %d\n", GetLastError());
- CloseHandle(h);
-
- /* NtSetSecurityObject doesn't inherit DACL entries */
- pSD = sd+sizeof(void*)-((ULONG_PTR)sd)%sizeof(void*);
- InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION);
- pDacl = HeapAlloc(GetProcessHeap(), 0, sizeof(ACL));
- bret = InitializeAcl(pDacl, sizeof(ACL), ACL_REVISION);
- ok(bret, "Failed to initialize ACL.\n");
- bret = SetSecurityDescriptorDacl(pSD, TRUE, pDacl, FALSE);
- ok(bret, "Failed to add ACL to security desciptor.\n");
- status = pNtSetSecurityObject(hTemp, DACL_SECURITY_INFORMATION, pSD);
- ok(status == ERROR_SUCCESS, "NtSetSecurityObject returned %x\n", status);
-
- h = CreateFileA(tmpfile, GENERIC_READ, FILE_SHARE_DELETE|FILE_SHARE_WRITE|FILE_SHARE_READ,
- NULL, OPEN_EXISTING, 0, NULL);
- ok(h == INVALID_HANDLE_VALUE, "CreateFile error %d\n", GetLastError());
- CloseHandle(h);
-
- pSetSecurityDescriptorControl(pSD, SE_DACL_AUTO_INHERIT_REQ, SE_DACL_AUTO_INHERIT_REQ);
- status = pNtSetSecurityObject(hTemp, DACL_SECURITY_INFORMATION, pSD);
- ok(status == ERROR_SUCCESS, "NtSetSecurityObject returned %x\n", status);
-
- h = CreateFileA(tmpfile, GENERIC_READ, FILE_SHARE_DELETE|FILE_SHARE_WRITE|FILE_SHARE_READ,
- NULL, OPEN_EXISTING, 0, NULL);
- ok(h == INVALID_HANDLE_VALUE, "CreateFile error %d\n", GetLastError());
- CloseHandle(h);
-
- pSetSecurityDescriptorControl(pSD, SE_DACL_AUTO_INHERIT_REQ|SE_DACL_AUTO_INHERITED,
- SE_DACL_AUTO_INHERIT_REQ|SE_DACL_AUTO_INHERITED);
- status = pNtSetSecurityObject(hTemp, DACL_SECURITY_INFORMATION, pSD);
- ok(status == ERROR_SUCCESS, "NtSetSecurityObject returned %x\n", status);
-
- h = CreateFileA(tmpfile, GENERIC_READ, FILE_SHARE_DELETE|FILE_SHARE_WRITE|FILE_SHARE_READ,
- NULL, OPEN_EXISTING, 0, NULL);
- ok(h == INVALID_HANDLE_VALUE, "CreateFile error %d\n", GetLastError());
- CloseHandle(h);
- HeapFree(GetProcessHeap(), 0, pDacl);
CloseHandle(hTemp);
/* Test querying the ownership of a built-in registry key */
--
2.3.3

Some files were not shown because too many files have changed in this diff Show More