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
248 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
0030289d83 | ||
|
cd7cfab427 | ||
|
cbe5306706 | ||
|
88db6aa7b1 | ||
|
031935bc29 | ||
|
9af3e03c5b | ||
|
d5ddb4f687 | ||
|
dd18774526 | ||
|
7d662cf2d7 | ||
|
49c01cab8a | ||
|
426191d7fb | ||
|
bcc10f6d7b | ||
|
ea4b82dd1d | ||
|
7795ed188b | ||
|
b61581b653 | ||
|
12beeb3ac9 | ||
|
a4e76e0849 | ||
|
b3e0c26b34 | ||
|
36aa7ea01e | ||
|
3cabc8a125 | ||
|
ef1d526974 | ||
|
159a22391a | ||
|
7f28f3b56d | ||
|
c17d191886 | ||
|
a588c8fe73 | ||
|
ee86efea1a | ||
|
a0e3b5a066 | ||
|
a465af2933 | ||
|
969a65493a | ||
|
3265df0984 | ||
|
f8acf446ea | ||
|
4d3c02ca8e | ||
|
138070e141 | ||
|
6952a88ec9 | ||
|
2aee7a7ac1 | ||
|
7e58e7e2d4 | ||
|
570e4a6933 | ||
|
9d4b8df3cc | ||
|
51d7077f51 | ||
|
e9cda98df5 | ||
|
c5e1cdaffb | ||
|
299b3b59f2 | ||
|
9d3f4bc8ce | ||
|
a21372e977 | ||
|
0be8e1fc40 | ||
|
c3db854717 | ||
|
38db7901d7 | ||
|
4e0bdd2c9b | ||
|
5b28f7a01c | ||
|
e7d3684f81 | ||
|
33e1ccc03c | ||
|
a81dee672e | ||
|
c2bac3f03f | ||
|
074eae4371 | ||
|
5aa6e7afe4 | ||
|
574959b168 | ||
|
f73de49f9f | ||
|
ddb4ddd749 | ||
|
12d1613d90 | ||
|
3414a0cc0e | ||
|
78204c282f | ||
|
cd3a07933a | ||
|
d7da67b4de | ||
|
9660c304bc | ||
|
f99ef3c9eb | ||
|
6022983803 | ||
|
afb16555cd | ||
|
c8eb156226 | ||
|
cbf392300d | ||
|
f1045ce6bb | ||
|
76f5985038 | ||
|
f3b30373fb | ||
|
1dc5f2f601 | ||
|
ca01e366ef | ||
|
323b73a1f2 | ||
|
428f65dd68 | ||
|
f28931a026 | ||
|
9a74e72f1b | ||
|
869b164ece | ||
|
f5f1c89973 | ||
|
092a14a3f6 | ||
|
ab06aee23d | ||
|
b1ede54d23 | ||
|
3fe5ad7aef | ||
|
3e9b40f5b6 | ||
|
c0bdcaecf5 | ||
|
cc04af2457 | ||
|
68bdb355dc | ||
|
9e203d3b8f | ||
|
b5534bc463 | ||
|
84aaa8ff12 | ||
|
79253e6534 | ||
|
67f1219393 | ||
|
1de318660f | ||
|
b8546ff85a | ||
|
faac0015a6 | ||
|
2c35b17c61 | ||
|
671aa4f38e | ||
|
e7fceb902c | ||
|
e265cf1024 | ||
|
6b398014f2 | ||
|
dcc8c25285 | ||
|
8f49524c86 | ||
|
288c9a031d | ||
|
c97628a0e5 | ||
|
03a15069bc | ||
|
e95a773114 | ||
|
9711296d1f | ||
|
eb2fe4eb91 | ||
|
dff451a72c | ||
|
f0c259b5e3 | ||
|
32197bdc15 | ||
|
ec3715b113 | ||
|
0184015194 | ||
|
84f5a647d0 | ||
|
f6dd131a74 | ||
|
0a38c0f4a6 | ||
|
b23f8c789b | ||
|
45e6770be6 | ||
|
7a3bc88055 | ||
|
bdfd218e7e | ||
|
2bc55e66c3 | ||
|
6f3699d87e | ||
|
4a9653f221 | ||
|
0054a6b6f5 | ||
|
d1b4dd170a | ||
|
16a22ca25b | ||
|
ae5372cbde | ||
|
dfe5839903 | ||
|
eefdde33ff | ||
|
6d60acbb21 | ||
|
113a63d374 | ||
|
14975afd63 | ||
|
e21bed742a | ||
|
493ed4662c | ||
|
5ec4d6171e | ||
|
8728442a9a | ||
|
76e7b82e31 | ||
|
5a24762b33 | ||
|
9454f5fc78 | ||
|
c23d8e2738 | ||
|
025e40edcc | ||
|
c258f95d4b | ||
|
45b80e1d0d | ||
|
8ccce27f89 | ||
|
d96eed9e17 | ||
|
510297d315 | ||
|
2a2d46a77e | ||
|
74f4d7b45e | ||
|
2393fd2c7e | ||
|
02879c0800 | ||
|
a9538a1965 | ||
|
1ce0efdd60 | ||
|
8f5172f8de | ||
|
0c6e311cea | ||
|
56447bdb5b | ||
|
a66e263db0 | ||
|
d9d1380650 | ||
|
7603fe0bc9 | ||
|
1b23958eb3 | ||
|
e4d5d84401 | ||
|
a5fac42aff | ||
|
278c0ed870 | ||
|
495e7f4985 | ||
|
75174bcf22 | ||
|
2315442bb2 | ||
|
77d2d3e4e0 | ||
|
06226bdc44 | ||
|
941323d469 | ||
|
0de1b91a1b | ||
|
5b94baf194 | ||
|
2fdae8614e | ||
|
e5c67078fd | ||
|
f4be181120 | ||
|
679a5cef17 | ||
|
c1c337b07c | ||
|
5f7b6bf45f | ||
|
a37730ab0e | ||
|
36e9309497 | ||
|
8f245e2d60 | ||
|
76d8009160 | ||
|
f1b8ef5d94 | ||
|
d205f22f1e | ||
|
d26abf2d93 | ||
|
9f011de1b5 | ||
|
a8303d406b | ||
|
800c42803f | ||
|
49d6414382 | ||
|
1d9163af16 | ||
|
cd4db49a74 | ||
|
b5c7642a3e | ||
|
65c559753a | ||
|
d709879134 | ||
|
0748a983e3 | ||
|
d1f4a25cbd | ||
|
6df5635400 | ||
|
fb6baf5e83 | ||
|
174139f1ea | ||
|
e3bece1c76 | ||
|
d7500bccd1 | ||
|
04f83c2765 | ||
|
56532e6bed | ||
|
afb95f8dde | ||
|
fae66ca721 | ||
|
67c7aead03 | ||
|
15581d6cce | ||
|
fc0847724e | ||
|
cde323b772 | ||
|
dfd86e0f91 | ||
|
16aad8a55f | ||
|
62117ba8d6 | ||
|
2da169a01b | ||
|
3b975fa4f2 | ||
|
8d92e1177f | ||
|
7dc75a302b | ||
|
7c8e6d90d3 | ||
|
872be6fa25 | ||
|
74b6722150 | ||
|
135024f481 | ||
|
53b570f698 | ||
|
dc16523d00 | ||
|
1dc4d9dc2f | ||
|
731305d018 | ||
|
c981072e0d | ||
|
e86a326f7b | ||
|
1aaf583c9f | ||
|
f644b88d3e | ||
|
3352a782c9 | ||
|
ec9b8ec16d | ||
|
094635f160 | ||
|
5f9893a79d | ||
|
6b5229ca83 | ||
|
6d10024c1e | ||
|
c361cbefb2 | ||
|
76b602e336 | ||
|
9f4a601887 | ||
|
b0071ce53e | ||
|
36ec2e0cf4 | ||
|
dde3ae24dd | ||
|
f6af570538 | ||
|
69ae1f591a | ||
|
31bd06cb42 | ||
|
0bef3b01c4 | ||
|
50b37c2d7e | ||
|
333de90b1a | ||
|
3daf410291 | ||
|
5a89756c6a | ||
|
7af67608ec |
202
LICENSE.md
202
LICENSE.md
@@ -37,16 +37,21 @@ any way and are simply installed for end-user convenience.
|
||||
file is licensed under the
|
||||
[LIBERATION FONT SOFTWARE LICENSE](#liberation-font-software-license).
|
||||
|
||||
* `0002-fonts-Add-WenQuanYi-Micro-Hei-as-a-Microsoft-Yahei-r.patch`:
|
||||
* `0002-fonts-Add-Liberation-Serif-as-an-Times-New-Roman-rep.patch`:
|
||||
The **Liberation Serif** font is used as a Times New Roman replacement. This
|
||||
file is licensed under the
|
||||
[LIBERATION FONT SOFTWARE LICENSE](#liberation-font-software-license).
|
||||
|
||||
* `0003-fonts-Add-Liberation-Mono-as-an-Courier-New-replacem.patch`:
|
||||
The **Liberation Mono** font is used as a Courier New replacement. This
|
||||
file is licensed under the
|
||||
[LIBERATION FONT SOFTWARE LICENSE](#liberation-font-software-license).
|
||||
|
||||
* `0004-fonts-Add-WenQuanYi-Micro-Hei-as-a-Microsoft-Yahei-r.patch`:
|
||||
The **WenQuanYi Micro Hei** font is used as a Microsoft Yahei
|
||||
replacement. This file is licensed under both the APACHE 2 license and
|
||||
[GPLv3](#gnu-gpl-version-3).
|
||||
|
||||
* `0003-fonts-Add-Courier-Prime-as-a-Courier-New-replacement.patch`:
|
||||
The **Courier Prime** font is used as a Courier New replacement.
|
||||
This file is licensed under the
|
||||
[OFLv1.1](#ofl-version-11).
|
||||
|
||||
Full license texts
|
||||
==================
|
||||
|
||||
@@ -571,55 +576,64 @@ This agreement governs the use of the Software and any updates to the Software,
|
||||
regardless of the delivery mechanism. Subject to the following terms, Red Hat,
|
||||
Inc. ("Red Hat") grants to the user ("Client") a license to this work pursuant
|
||||
to the GNU General Public License v.2 with the exceptions set forth below and
|
||||
such other terms as our set forth in this End User License Agreement.
|
||||
such other terms as are set forth in this End User License Agreement.
|
||||
|
||||
1.The Software and License Exception. LIBERATION font software (the "Software")
|
||||
consists of TrueType-OpenType formatted font software for rendering LIBERATION
|
||||
typefaces in sans serif, serif, and monospaced character styles. You are licensed
|
||||
to use, modify, copy, and distribute the Software pursuant to the GNU General
|
||||
Public License v.2 with the following exceptions:
|
||||
(a)As a special exception, if you create a document which uses this font, and
|
||||
embed this font or unaltered portions of this font into the document, this font
|
||||
does not by itself cause the resulting document to be covered by the GNU General
|
||||
Public License. This exception does not however invalidate any other reasons why
|
||||
the document might be covered by the GNU General Public License. If you modify
|
||||
this font, you may extend this exception to your version of the font, but you
|
||||
are not obligated to do so. If you do not wish to do so, delete this exception
|
||||
statement from your version.
|
||||
(b)As a further exception, any distribution of the object code of the Software
|
||||
in a physical product must provide you the right to access and modify the source
|
||||
code for the Software and to reinstall that modified version of the Software in
|
||||
object code form on the same physical product on which you received it.
|
||||
2.Intellectual Property Rights. The Software and each of its components,
|
||||
including the source code, documentation, appearance, structure and organization
|
||||
are owned by Red Hat and others and are protected under copyright and other laws.
|
||||
Title to the Software and any component, or to any copy, modification, or merged
|
||||
portion shall remain with the aforementioned, subject to the applicable license.
|
||||
The "LIBERATION" trademark is a trademark of Red Hat, Inc. in the U.S. and other
|
||||
countries. This agreement does not permit Client to distribute modified versions
|
||||
of the Software using Red Hat's trademarks. If Client makes a redistribution of
|
||||
a modified version of the Software, then Client must modify the files names to
|
||||
remove any reference to the Red Hat trademarks and must not use the Red Hat
|
||||
trademarks in any way to reference or promote the modified Software.
|
||||
3.Limited Warranty. To the maximum extent permitted under applicable law, the
|
||||
1. The Software and License Exception. LIBERATION font software (the
|
||||
"Software") consists of TrueType-OpenType formatted font software for rendering
|
||||
LIBERATION typefaces in sans-serif, serif, and monospaced character styles. You
|
||||
are licensed to use, modify, copy, and distribute the Software pursuant to the
|
||||
GNU General Public License v.2 with the following exceptions:
|
||||
|
||||
(a) As a special exception, if you create a document which uses this font,
|
||||
and embed this font or unaltered portions of this font into the document, this
|
||||
font does not by itself cause the resulting document to be covered by the GNU
|
||||
General Public License. This exception does not however invalidate any other
|
||||
reasons why the document might be covered by the GNU General Public License. If
|
||||
you modify this font, you may extend this exception to your version of the
|
||||
font, but you are not obligated to do so. If you do not wish to do so, delete
|
||||
this exception statement from your version.
|
||||
|
||||
(b) As a further exception, any distribution of the object code of the
|
||||
Software in a physical product must provide you the right to access and modify
|
||||
the source code for the Software and to reinstall that modified version of the
|
||||
Software in object code form on the same physical product on which you received
|
||||
it.
|
||||
|
||||
2. Intellectual Property Rights. The Software and each of its components,
|
||||
including the source code, documentation, appearance, structure and
|
||||
organization are owned by Red Hat and others and are protected under copyright
|
||||
and other laws. Title to the Software and any component, or to any copy,
|
||||
modification, or merged portion shall remain with the aforementioned, subject
|
||||
to the applicable license. The "LIBERATION" trademark is a trademark of Red
|
||||
Hat, Inc. in the U.S. and other countries. This agreement does not permit
|
||||
Client to distribute modified versions of the Software using Red Hat's
|
||||
trademarks. If Client makes a redistribution of a modified version of the
|
||||
Software, then Client must modify the files names to remove any reference to
|
||||
the Red Hat trademarks and must not use the Red Hat trademarks in any way to
|
||||
reference or promote the modified Software.
|
||||
|
||||
3. Limited Warranty. To the maximum extent permitted under applicable law, the
|
||||
Software is provided and licensed "as is" without warranty of any kind,
|
||||
expressed or implied, including the implied warranties of merchantability,
|
||||
non-infringement or fitness for a particular purpose. Red Hat does not warrant
|
||||
that the functions contained in the Software will meet Client's requirements or
|
||||
that the operation of the Software will be entirely error free or appear
|
||||
precisely as described in the accompanying documentation.
|
||||
4.Limitation of Remedies and Liability. To the maximum extent permitted by
|
||||
|
||||
4. Limitation of Remedies and Liability. To the maximum extent permitted by
|
||||
applicable law, Red Hat or any Red Hat authorized dealer will not be liable to
|
||||
Client for any incidental or consequential damages, including lost profits or
|
||||
lost savings arising out of the use or inability to use the Software, even if
|
||||
Red Hat or such dealer has been advised of the possibility of such damages.
|
||||
5.General. If any provision of this agreement is held to be unenforceable, that
|
||||
shall not affect the enforceability of the remaining provisions. This agreement
|
||||
shall be governed by the laws of the State of North Carolina and of the United
|
||||
States, without regard to any conflict of laws provisions, except that the
|
||||
United Nations Convention on the International Sale of Goods shall not apply.
|
||||
Copyright © 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark
|
||||
of Red Hat, Inc.
|
||||
|
||||
5. General. If any provision of this agreement is held to be unenforceable,
|
||||
that shall not affect the enforceability of the remaining provisions. This
|
||||
agreement shall be governed by the laws of the State of North Carolina and of
|
||||
the United States, without regard to any conflict of laws provisions, except
|
||||
that the United Nations Convention on the International Sale of Goods shall not
|
||||
apply.
|
||||
Copyright © 2007-2011 Red Hat, Inc. All rights reserved. LIBERATION is a
|
||||
trademark of Red Hat, Inc.
|
||||
```
|
||||
|
||||
|
||||
@@ -1303,103 +1317,3 @@ the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
```
|
||||
|
||||
OFL, Version 1.1
|
||||
---------------------
|
||||
|
||||
```
|
||||
Copyright (c) 2013, Quote-Unquote Apps (http://quoteunquoteapps.com),
|
||||
with Reserved Font Name Courier Prime.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
```
|
||||
|
106
README.md
106
README.md
@@ -39,7 +39,7 @@ Wine. All those differences are also documented on the
|
||||
Included bug fixes and improvements
|
||||
-----------------------------------
|
||||
|
||||
**Bug fixes and features in Wine Staging 1.7.45 [244]:**
|
||||
**Bug fixes and features in Wine Staging 1.7.51 [260]:**
|
||||
|
||||
*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
|
||||
@@ -48,26 +48,22 @@ releases, take a look at the
|
||||
[changelog](https://github.com/wine-compholio/wine-staging/blob/master/debian/changelog)
|
||||
for more details.*
|
||||
|
||||
* Add HTTP Host header in HttpSendRequest instead of HttpOpenRequest ([Wine Bug #28911](https://bugs.winehq.org/show_bug.cgi?id=28911))
|
||||
* 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 CreateThreadpool ([Wine Bug #35192](https://bugs.winehq.org/show_bug.cgi?id=35192))
|
||||
* Add implementation for kernel32.GetNumaProcessorNode ([Wine Bug #38660](https://bugs.winehq.org/show_bug.cgi?id=38660))
|
||||
* Add implementation for mfplat.MFTRegister ([Wine Bug #37811](https://bugs.winehq.org/show_bug.cgi?id=37811))
|
||||
* 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 D3DXComputeTangentFrameEx ([Wine Bug #31984](https://bugs.winehq.org/show_bug.cgi?id=31984))
|
||||
* Add stub for D3DXFrameFind ([Wine Bug #38334](https://bugs.winehq.org/show_bug.cgi?id=38334))
|
||||
* Add stub for D3DXIntersect
|
||||
* Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268))
|
||||
* Add stub for d3d11.D3D11CreateDeviceAndSwapChain ([Wine Bug #33153](https://bugs.winehq.org/show_bug.cgi?id=33153))
|
||||
* Add stub for fltlib.FilterLoad ([Wine Bug #38435](https://bugs.winehq.org/show_bug.cgi?id=38435))
|
||||
* 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 kernel32.SetFileCompletionNotificationModes (for Steam in Win7 mode) ([Wine Bug #38493](https://bugs.winehq.org/show_bug.cgi?id=38493))
|
||||
* Add stub for ntoskrnl.ExAcquireResourceExclusiveLite
|
||||
* Add stub for ntoskrnl.ExDeleteResourceLite
|
||||
* Add stub for ntoskrnl.ExReleaseResourceForThread
|
||||
@@ -77,19 +73,24 @@ for more details.*
|
||||
* 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 stub for winscard.SCardListReadersA/W ([Wine Bug #26978](https://bugs.winehq.org/show_bug.cgi?id=26978))
|
||||
* Add stub for winspool.SetPrinterW level 8 ([Wine Bug #24645](https://bugs.winehq.org/show_bug.cgi?id=24645))
|
||||
* Add stub for winsta.WinStationEnumerateW ([Wine Bug #38102](https://bugs.winehq.org/show_bug.cgi?id=38102))
|
||||
* 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
|
||||
* Add support for hiding wine version information from applications ([Wine Bug #38656](https://bugs.winehq.org/show_bug.cgi?id=38656))
|
||||
* Add support for process specific debug channels
|
||||
* Add wined3d detection for GeForce GT 425M ([Wine Bug #35054](https://bugs.winehq.org/show_bug.cgi?id=35054))
|
||||
* Adobe Reader needs ITextSelection_fnGetDuplicate implementation
|
||||
* Allow non-nullterminated string as working directory in kernel32.create_startup_info
|
||||
* 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 enable/disable InsertMode in wineconsole settings ([Wine Bug #38697](https://bugs.winehq.org/show_bug.cgi?id=38697))
|
||||
* 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
|
||||
@@ -106,34 +107,39 @@ for more details.*
|
||||
* 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
|
||||
* Calculate msvcrt exponential math operations with higher precision ([Wine Bug #37149](https://bugs.winehq.org/show_bug.cgi?id=37149))
|
||||
* Create HKLM\Software\Microsoft\Cryptography\MachineGuid registry key ([Wine Bug #38508](https://bugs.winehq.org/show_bug.cgi?id=38508))
|
||||
* 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))
|
||||
* 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 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 use unixfs for devices without mountpoint
|
||||
* 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))
|
||||
* Ensure X11 input events are handled even without explicit message loop ([Wine Bug #8854](https://bugs.winehq.org/show_bug.cgi?id=8854))
|
||||
* Ensure console InsertMode changes take effect immediately
|
||||
* Exception during start of fr-043 caused by missing DXTn support ([Wine Bug #37391](https://bugs.winehq.org/show_bug.cgi?id=37391))
|
||||
* Export additional OpenAL32 functions ([Wine Bug #38972](https://bugs.winehq.org/show_bug.cgi?id=38972))
|
||||
* Expose PKEY_AudioEndpoint_PhysicalSpeakers device property in PulseAudio driver
|
||||
* FEAR 1 installer expects basic_string_wchar_dtor to return NULL ([Wine Bug #37358](https://bugs.winehq.org/show_bug.cgi?id=37358))
|
||||
* Fallback to global key state for threads without a queue ([Wine Bug #27238](https://bugs.winehq.org/show_bug.cgi?id=27238))
|
||||
* Fake success in IViewObject::Draw stub ([Wine Bug #30611](https://bugs.winehq.org/show_bug.cgi?id=30611))
|
||||
* 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 black screen on startup introduced by pixelformat changes. ([Wine Bug #35950](https://bugs.winehq.org/show_bug.cgi?id=35950))
|
||||
* Fix access violation in MSYS2 git when cloning repository
|
||||
* 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))
|
||||
* Fix crash in Space Rangers2 caused by missing DXTn support ([Wine Bug #24983](https://bugs.winehq.org/show_bug.cgi?id=24983))
|
||||
* Fix crash in clip_cursor_notify caused by uninitialized TLS ([Wine Bug #36915](https://bugs.winehq.org/show_bug.cgi?id=36915))
|
||||
* 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 detection of case-insensitive systems in MSYS2
|
||||
* 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))
|
||||
@@ -142,11 +148,10 @@ for more details.*
|
||||
* 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 a file with RootDirectory pointing to a file handle
|
||||
* 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 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 link notification conditions for riched20 ([Wine Bug #35949](https://bugs.winehq.org/show_bug.cgi?id=35949))
|
||||
* 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
|
||||
@@ -161,93 +166,105 @@ for more details.*
|
||||
* 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 GIF encoder requests to windowscodecs ([Wine Bug #34356](https://bugs.winehq.org/show_bug.cgi?id=34356))
|
||||
* 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))
|
||||
* 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 garbage after decoding gif lines ([Wine Bug #32227](https://bugs.winehq.org/show_bug.cgi?id=32227))
|
||||
* Ignore unsupported flags for CoInternetSetFeatureEnabled ([Wine Bug #35197](https://bugs.winehq.org/show_bug.cgi?id=35197))
|
||||
* 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 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 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 additional stubs for vcomp dlls ([Wine Bug #31640](https://bugs.winehq.org/show_bug.cgi?id=31640))
|
||||
* Implement advapi32.GetWindowsAccountDomainSid ([Wine Bug #38624](https://bugs.winehq.org/show_bug.cgi?id=38624))
|
||||
* Implement a Times New Roman replacement font ([Wine Bug #32342](https://bugs.winehq.org/show_bug.cgi?id=32342))
|
||||
* 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 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.
|
||||
* Implement ntoskrnl.KeInitializeMutex
|
||||
* 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 ntoskrnl.IoGetAttachedDeviceReference
|
||||
* Implement stub for ntoskrnl.KeDelayExecutionThread.
|
||||
* Implement stubs for ntoskrnl.Ex{Acquire,Release}FastMutexUnsafe
|
||||
* Implement stubs for ntoskrnl.ObReferenceObjectByPointer and ntoskrnl.ObDereferenceObject
|
||||
* Implement threadpool timers ([Wine Bug #37306](https://bugs.winehq.org/show_bug.cgi?id=37306))
|
||||
* Implement threadpool wait objects
|
||||
* Implement threadpool work items ([Wine Bug #32531](https://bugs.winehq.org/show_bug.cgi?id=32531))
|
||||
* Implement {Set,Get}ThreadGroupAffinity and related ntdll functions ([Wine Bug #36549](https://bugs.winehq.org/show_bug.cgi?id=36549))
|
||||
* 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))
|
||||
* Improve stub for ID3DXEffectImpl_CloneEffect
|
||||
* Improve stub for NtQueryEaFile
|
||||
* Improve stubs for AEV_{Get,Set}MasterVolumeLevel
|
||||
* Improve stubs for AEV_{Get,Set}Mute
|
||||
* Improve stubs for dxgi MakeWindowAssociation and GetWindowAssociation
|
||||
* Improvement for heap allocation performance
|
||||
* Initialize *lpcDevices in RasEnumDevicesA ([Wine Bug #30378](https://bugs.winehq.org/show_bug.cgi?id=30378))
|
||||
* Initialize System\CurrentControlSet\Control\TimeZoneInformation registry keys
|
||||
* 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))
|
||||
* MSVCRT crashes when NULL is passed as string to atof or strtod ([Wine Bug #32550](https://bugs.winehq.org/show_bug.cgi?id=32550))
|
||||
* MSYS2 expects correct handling of WRITECOPY memory protection ([Wine Bug #35561](https://bugs.winehq.org/show_bug.cgi?id=35561))
|
||||
* 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))
|
||||
* Multiple applications need EnumDisplayDevicesW implementation ([Wine Bug #34978](https://bugs.winehq.org/show_bug.cgi?id=34978))
|
||||
* Multiple applications needs better NtQueryInformationJobObject stub
|
||||
* Multiple applications start wrong executable if whitespace present in name ([Wine Bug #19666](https://bugs.winehq.org/show_bug.cgi?id=19666))
|
||||
* Need for Speed 3 installer requires devices in HKEY_DYN_DATA ([Wine Bug #7115](https://bugs.winehq.org/show_bug.cgi?id=7115))
|
||||
* Only send WM_DROPFILES when OLE dnd fails ([Wine Bug #29081](https://bugs.winehq.org/show_bug.cgi?id=29081))
|
||||
* Only set SFGAO_HASSUBFOLDER when there are really subfolders ([Wine Bug #24851](https://bugs.winehq.org/show_bug.cgi?id=24851))
|
||||
* Other Pipelight-specific enhancements
|
||||
* Port Royale doesn't display ocean correctly ([Wine Bug #17913](https://bugs.winehq.org/show_bug.cgi?id=17913))
|
||||
* 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 check existence of libunwind before linking against it ([Wine Bug #38713](https://bugs.winehq.org/show_bug.cgi?id=38713))
|
||||
* Properly close sockets when WSACleanup is called ([Wine Bug #18670](https://bugs.winehq.org/show_bug.cgi?id=18670))
|
||||
* 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))
|
||||
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
|
||||
* 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 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 ([Wine Bug #23174](https://bugs.winehq.org/show_bug.cgi?id=23174))
|
||||
* 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
|
||||
* 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
|
||||
* SHFileOperation with FO_MOVE should create new directory on Vista+ ([Wine Bug #25207](https://bugs.winehq.org/show_bug.cgi?id=25207))
|
||||
* 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 EOF on file which has a memory mapping should fail
|
||||
* 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
|
||||
* 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))
|
||||
* Support for 8bpp grayscale TIFF images with 8bpp alpha channel ([Wine Bug #38027](https://bugs.winehq.org/show_bug.cgi?id=38027))
|
||||
* Support for AT_ROUND_TO_PAGE flag in NtMapViewOfSection
|
||||
* 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))
|
||||
* Support for CUDA GPU video decoding
|
||||
* Support for D3DXComputeNormals ([Wine Bug #26379](https://bugs.winehq.org/show_bug.cgi?id=26379))
|
||||
* Support for D3DXGetShaderInputSemantics ([Wine Bug #22682](https://bugs.winehq.org/show_bug.cgi?id=22682))
|
||||
* Support for DDS file format in D3DXSaveTextureToFileInMemory ([Wine Bug #26898](https://bugs.winehq.org/show_bug.cgi?id=26898))
|
||||
* Support for DOS hidden/system file attributes ([Wine Bug #9158](https://bugs.winehq.org/show_bug.cgi?id=9158))
|
||||
* Support for FileFsFullSizeInformation information class
|
||||
* Support for GdipCreateRegionRgnData ([Wine Bug #34843](https://bugs.winehq.org/show_bug.cgi?id=34843))
|
||||
* Support for GetFinalPathNameByHandle ([Wine Bug #34851](https://bugs.winehq.org/show_bug.cgi?id=34851))
|
||||
* Support for GetVolumePathName
|
||||
* Support for H264 DXVA2 GPU video decoding through vaapi
|
||||
* Support for ID3DXFont::DrawTextA/W ([Wine Bug #24754](https://bugs.winehq.org/show_bug.cgi?id=24754))
|
||||
* Support for ID3DXSkinInfoImpl_UpdateSkinnedMesh ([Wine Bug #32572](https://bugs.winehq.org/show_bug.cgi?id=32572))
|
||||
@@ -257,16 +274,12 @@ for more details.*
|
||||
* 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 NtSetInformationFile class FileDispositionInformation ([Wine Bug #30397](https://bugs.winehq.org/show_bug.cgi?id=30397))
|
||||
* Support for NtSetInformationFile class FileLinkInformation
|
||||
* Support for NtSetInformationFile class FileRenameInformation ([Wine Bug #30399](https://bugs.winehq.org/show_bug.cgi?id=30399))
|
||||
* 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 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 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))
|
||||
@@ -277,14 +290,17 @@ for more details.*
|
||||
* 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
|
||||
* Use NVX_GPU_MEMORY_INFO extension for more exact video memory accounting on NVIDIA graphic cards
|
||||
* 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 random names when caching very long urls in wininet
|
||||
* 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))
|
||||
* 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
|
||||
|
250
debian/changelog
vendored
250
debian/changelog
vendored
@@ -1,3 +1,253 @@
|
||||
wine-staging (1.7.51) unstable; urgency=low
|
||||
* Update patchset for CSMT (commandstream multithreading), to keep in sync
|
||||
with upstream repository.
|
||||
* Added patch to fix bug in wineserver debug_children inheritance (fixes Wine
|
||||
Staging Bug #525).
|
||||
* Added patch to fix access violation in MSYS2 git when when cloning
|
||||
repository (fixes Wine Staging Bug #348).
|
||||
* Added patch to return a dummy BIOS name in Win32_BIOS record (fixes Wine
|
||||
Staging Bug #528).
|
||||
* Added patch to fix compile failure in d3d11 with recent versions of gcc.
|
||||
* Added patch to map EXDEV error code to STATUS_NOT_SAME_DEVICE (fixes Wine
|
||||
Staging Bug #536).
|
||||
* Added patch to fix failure to create anonymous file mapping after failed
|
||||
open_fd server call (fixes Wine Staging Bug #538).
|
||||
* Added patch to fix error handling in DeferWindowPos when passing an invalid
|
||||
HWND.
|
||||
* Added patch to allow non-nullterminated string as working directory in
|
||||
kernel32.create_startup_info (fixes Wine Staging Bug #543).
|
||||
* Added patch with stub for winspool.SetPrinterW level 8.
|
||||
* Added patch to translate flags in LaunchINFSectionW.
|
||||
* Added patch to fix SHFileOperation with FO_MOVE on Vista+ (should create
|
||||
non-existent subdirectories).
|
||||
* Added patch to silence repeated crypt32.CryptUnprotectMemory FIXMEs.
|
||||
* Added patch to fallback to default comspec when %COMSPEC% is not set (fixes
|
||||
Wine Staging Bug #449).
|
||||
* Added patch to create Microsoft\Windows\Themes directory during Wineprefix
|
||||
creation.
|
||||
* Added patch to avoid deprecation warning for OpenCL 1.2 APIs.
|
||||
* Added patch to implement FolderImpl_Items and stubbed FolderItems interface.
|
||||
* Added patch for stub of dwmapi.DwmUpdateThumbnailProperties.
|
||||
* Added patch to use proper glyph names in wineps driver (which fixes a bug
|
||||
related to copying text from generated PDF files).
|
||||
* Added patch to properly close sockets when WSACleanup is called.
|
||||
* Added patch to implement {Set,Get}ThreadGroupAffinity and related ntdll
|
||||
functions.
|
||||
* Added patch to properly render themed buttons when they are pressed.
|
||||
* Added patch to fix possible memory leak in netprofm init_networks.
|
||||
* Added patch to properly initialize caps->dwZBufferBitDepths in
|
||||
ddraw7_GetCaps.
|
||||
* Added patch to for IHTMLLocation::hash property's getter implementation.
|
||||
* Removed patch to fix bug in wineserver debug_children inheritance (accepted
|
||||
upstream).
|
||||
* Removed patch to use helper function for NtWaitForMultipleObjects and
|
||||
NtWaitForSingleObject (accepted upstream).
|
||||
* Removed patch to fix test failure in kernel32/thread tests (fixed upstream).
|
||||
* Removed patch to use request->server->name when processing cookies
|
||||
(identical patch accepted upstream).
|
||||
* Removed patch to set Host header in HttpSendRequest instead of
|
||||
HttpOpenRequest (accepted upstream).
|
||||
* Removed patch to make sure Notepad creates new files immediately (accepted
|
||||
upstream).
|
||||
* Partially removed patches for stub dlls required by the MSVC 2015 runtime
|
||||
library (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Mon, 07 Sep 2015 02:29:55 +0200
|
||||
|
||||
wine-staging (1.7.50) unstable; urgency=low
|
||||
* Updated GTK3 patchset to fix "division by zero" exception errors (fixes Wine
|
||||
Staging Bug #523).
|
||||
* Add patch to implement remaining OpenMP locking functions.
|
||||
* Added various patches for imagehlp cleanup (fixes Wine Staging Bug #502).
|
||||
* Added patch to fix implementation of ntdll.MapViewOfSection.
|
||||
* Added patch to implement enumeration of sound devices and basic properties
|
||||
to dxdiagn.
|
||||
* Added patch to implement special handling for calling GetChildContainer with
|
||||
an empty string.
|
||||
* Added patch for shell32 IDragSourceHelper stub interface.
|
||||
* Added patch to improve startup performance by delaying font initialization
|
||||
(fixes Wine Staging Bug #401).
|
||||
* Added patch to set SFGAO_HASSUBFOLDER only when there are really subfolders.
|
||||
* Added patch to fix multiple uninitialized memory issues in wineserver.
|
||||
* Added patch to implement shell32 NewMenu class with new folder item.
|
||||
* Added patch to report correct ObjectName for NamedPipe wineserver objects
|
||||
(fixes Wine Staging Bug #363).
|
||||
* Added patch fix detection of case-insensitive systems in MSYS2.
|
||||
* Added patch to fix implementation of krnl386.exe16.GetTempDrive.
|
||||
* Added patch for forward/backward compatibility of previous format of high
|
||||
precision registry timestamps.
|
||||
* Added patch to use a helper function for NtWaitForMultipleObjects and
|
||||
NtWaitForSingleObject.
|
||||
* Added patch to block deallocation of thread stack for current thread (fixes
|
||||
Wine Staging Bug #241).
|
||||
* Added patch to reject setting EOF on memory mapped files (fixes Wine Staging
|
||||
Bug #471).
|
||||
* Added patch to fix implementation of msvcrt.close when stdout == stderr
|
||||
(fixes Wine Staging Bug #485).
|
||||
* Added patch to return STATUS_OBJECT_NAME_INVALID in
|
||||
wine_nt_to_unix_file_name for paths that only contain a prefix.
|
||||
* Added patch to make sure Notepad creates new files immediately.
|
||||
* Added patch to return a valid mesh in D3DXCreateTeapot.
|
||||
* Removed patch to move security cookie initialization from memory management
|
||||
to loader (accepted upstream).
|
||||
* Removed patches for stub of D3DCompileFromFile and D3DCompile2 (accepted
|
||||
upstream).
|
||||
* Removed patch to fix multiple uninitialized memory issues in wineserver.
|
||||
* Removed patch fix implementation of ntdll.NtMapViewOfSection (accepted
|
||||
upstream).
|
||||
* Removed patches to implement additional vcomp functions (accepted upstream).
|
||||
* Removed patch to store registry timestamps with nanoseconds precision (fixed
|
||||
upstream).
|
||||
* Removed patch to ensure winhttp raw request headers are terminated with
|
||||
double \r\n (accepted upstream).
|
||||
* Removed compatibility patchset for deprecated ACL string format. The format
|
||||
was changed in version 1.7.25, released about one year ago.
|
||||
* Removed patches for FileDispositionInformation and FileRenameInformation
|
||||
(accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 23 Aug 2015 02:10:01 +0200
|
||||
|
||||
wine-staging (1.7.49) unstable; urgency=low
|
||||
* Added patch to improve stubs for dxgi MakeWindowAssociation and
|
||||
GetWindowAssociation.
|
||||
* Added patch for stub dlls required by the MSVC 2015 runtime library.
|
||||
* Added patch with stubs for additional wininet options in InternetSetOption
|
||||
(fixes Wine Staging Bug #443).
|
||||
* Added patch to implement stub for vcomp._vcomp_flush.
|
||||
* Added patch to fix leak and use-after-free in winecfg theming
|
||||
implementation.
|
||||
* Added patch to move cookie initialization code from memory management to
|
||||
loader.
|
||||
* Added patch to fake success in IViewObject::Draw stub.
|
||||
* Added patch to fix possible integer overflow in VarR4FromDec.
|
||||
* Added patch to make sure Winhttp raw request headers are terminated using
|
||||
double \r\n.
|
||||
* Added patch for native GTK3 theming support by Ivan Akulinchev.
|
||||
* Removed patch to avoid race-conditions with long running threadpool tasks
|
||||
(accepted upstream).
|
||||
* Removed patch to add support for ThreadQuerySetWin32StartAddress info class
|
||||
(accepted upstream).
|
||||
* Removed patch to fix security cookie handling for UPX compressed executables
|
||||
(accepted upstream).
|
||||
* Removed patch to force creation of MachineGuid registry key during creation
|
||||
of Wineprefix (accepted upstream).
|
||||
* Removed patch to add stub for D3DXComputeNormals (fixed upstream).
|
||||
* Removed patch to add stub for D3DXTessellateNPatches (accepted upstream).
|
||||
* Removed patch to improve stub for NtQueryInformationJobObject (accepted
|
||||
upstream).
|
||||
* Removed patch to avoid OpenCL deprecation warnings (accepted upstream).
|
||||
* Removed patch for implementation of dbghelp.UnDecorateSymbolNameW (accepted
|
||||
upstream).
|
||||
* Removed patch for dynamic work scheduling in vcomp.dll (accepted upstream).
|
||||
* Removed patch to send WM_DROPFILES only when OLE dnd fails (accepted
|
||||
upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 09 Aug 2015 22:03:07 +0200
|
||||
|
||||
wine-staging (1.7.48) unstable; urgency=low
|
||||
* Update patches for d3dx9_36.D3DXGetShader{Input,Output}Semantics and add
|
||||
additional tests.
|
||||
* Update patchset to query GPU infos with GLX_MESA_query_renderer extension
|
||||
(fixes a regression with broken MESA versions).
|
||||
* Update vcomp patchset and add implementation for various atomic functions.
|
||||
* Updated CSMT patchset to fix crash in Path of Exile after character
|
||||
selection (fixes Wine Staging Bug #451).
|
||||
* Added patch to forward exitcode from child process when in wineconsole.
|
||||
* Added patch to check architecture before trying to load libraries.
|
||||
* Added patch to share source of d3dx9_36 with d3dx9_33 to avoid Wine DLL
|
||||
forwards.
|
||||
* Added patch with stubs for d3dx10_43.D3DX10CreateEffectFromFileA/W.
|
||||
* Added patch to silence repeated LocaleNameToLCID/LCIDToLocaleName
|
||||
unsupported flags FIXMEs.
|
||||
* Added patches to improve security cookie handling.
|
||||
* Added patches to implement ThreadQuerySetWin32StartAddress info class.
|
||||
* Added patch to fake success in kernel32.SetFileCompletionNotificationModes.
|
||||
* Added patch to export additional OpenAL32 functions.
|
||||
* Added patch to return dummy ID3DXSkinInfo interface when skinning info not
|
||||
present.
|
||||
* Added patch to store registry timestamps with nanoseconds precision.
|
||||
* Added patch to implement AMStream GetMultiMediaStream functions.
|
||||
* Added patch with stub for D3DXTessellateNPatches.
|
||||
* Added patch with stubs for D3DCompile2 and D3DCompileFromFile.
|
||||
* Added patch to implement dbghelp.UnDecorateSymbolNameW.
|
||||
* Added patch to add wined3d detection of GeForce GT 425M.
|
||||
* Added patch to use video memory for rendering targets if possible.
|
||||
* Added patch to avoid race-conditions with long running threadpool tasks.
|
||||
* Removed patch to allow to enable/disable InsertMode in wineconsole settings
|
||||
(accepted upstream).
|
||||
* Removed patch to improve IoGetDeviceObjectPointer stub to appease SecuROM
|
||||
5.x (accepted upstream).
|
||||
* Removed patch to forward GIF encoder requests to Windowscodecs (accepted
|
||||
upstream).
|
||||
* Removed patch to ignore garbage after decoding gif lines (accepted
|
||||
upstream).
|
||||
* Removed patch to increase buffer size in widl/typegen.c (accepted upstream).
|
||||
* Removed patch to revert security cookie changes in loader (fixed upstream).
|
||||
* Removed patch to add support 8bpp grayscale TIFF images with 8bpp alpha
|
||||
channel (accepted upstream).
|
||||
* Partrially removed patches for vcomp implementation (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Wed, 29 Jul 2015 21:11:07 +0200
|
||||
|
||||
wine-staging (1.7.47) unstable; urgency=low
|
||||
* Added patch to silence repeated winhttp "no support on this platform"
|
||||
message.
|
||||
* Added patch to silence repeated wbemprox "timeout not supported" fixme.
|
||||
* Added patch to increase buffer size in widl/typegen.c to avoid buffer
|
||||
overflow.
|
||||
* Revert security cookie patch causing regression in multiple applications.
|
||||
* Added patch to use GLX_MESA_query_renderer extension to get more exact GPU
|
||||
infos.
|
||||
* Added initial set of patches for multithreaded vcomp implementation.
|
||||
* Added patch to avoid dereferencing NULL pointer for fonts without VDMX.
|
||||
* Removed patch to implement kernel32.GetNumaProcessorNode (accepted
|
||||
upstream).
|
||||
* Removed patch to initialize *end with NULL on failure in msvcrt.strtod
|
||||
(accepted upstream).
|
||||
* Removed patchset for new Threadpool implementation (accepted upstream).
|
||||
* Partially removed patches for RtlDecompressBuffer implementation (accepted
|
||||
upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 12 Jul 2015 04:12:43 +0200
|
||||
|
||||
wine-staging (1.7.46) unstable; urgency=low
|
||||
* Add reference to upstream bug report for various patchsets.
|
||||
* Added patch to improve IoGetDeviceObjectPointer stub to appease SecuROM 5.x.
|
||||
* Added patch to globally invalidate key state on changes in other threads.
|
||||
* Added patch to fix possible use-after-free in wineserver device IPR code.
|
||||
* Added patch to fix wineserver crash when pipe server object is destroyed
|
||||
before client (fixes Wine Staging Bug #393).
|
||||
* Added patches to improve crosscompiling Wine for other platforms.
|
||||
* Added patch to improve output of '--check-libs' on OSX.
|
||||
* Added patch to implement general tab for file property dialog.
|
||||
* Added patch to initialize *lpcDevices in RasEnumDevicesA.
|
||||
* Improved nvcuda-CUDA_Support patchset to search for dylib on OSX.
|
||||
* Improved wined3d-DXTn patchset to search for dylib on OSX.
|
||||
* Updated kernel32-GetVolumePathName to fix several test failures.
|
||||
* Updated ntoskrnl-Emulator patchset to implement emulation of MOVZX
|
||||
instruction on x86_64.
|
||||
* Updated patchset ntdll-WRITECOPY to be compatible with OSX (fixes Wine
|
||||
Staging Bug #399).
|
||||
* Disable patch to avoid crash when NULL pointer is passed to atof / strtod
|
||||
functions (fixed upstream).
|
||||
* Removed patch for implementation of GdipCreateRegionRgnData (accepted
|
||||
upstream).
|
||||
* Removed patch to fix output buffer size for IOCTL_DVD_READ_STRUCTURE
|
||||
requests (accepted upstream).
|
||||
* Removed patch to add stub for kernel32.SetFileCompletionNotificationModes
|
||||
(accepted upstream).
|
||||
* Removed patch to use random names when caching very long urls in wininet
|
||||
(accepted upstream).
|
||||
* Removed patch to fix link notification conditions for riched20 (accepted
|
||||
upstream).
|
||||
* Removed patch to emulate access to USER_SHARE_DATA on x86_64 (accepted
|
||||
upstream).
|
||||
* Removed patch to fix possible use-after-free in wineserver device IPR code
|
||||
(accepted upstream).
|
||||
* Removed patches to implement GetVolumePathName (accepted upstream).
|
||||
* Removed patch for advapi32.GetWindowsAccountDomainSid (accepted upstream).
|
||||
* Removed patch for stub implementation of fltlib.FilterLoad (accepted
|
||||
upstream).
|
||||
* Removed patch for AT_ROUND_TO_PAGE support in NtMapViewOfSection (accepted
|
||||
upstream).
|
||||
* Removed patch to fix linking against libunwind on Linux (fixed upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 28 Jun 2015 18:20:36 +0200
|
||||
|
||||
wine-staging (1.7.45) unstable; urgency=low
|
||||
* Add reference to upstream bug report for various patchsets.
|
||||
* Updated server-Key_State patchset to fix a test failure in
|
||||
|
12
debian/control
vendored
12
debian/control
vendored
@@ -14,7 +14,7 @@ Build-Depends: autotools-dev,
|
||||
flex,
|
||||
fontforge,
|
||||
gawk,
|
||||
gcc-4.5 | gcc-4.7 | ubuntu-desktop (<< 1.207),
|
||||
gcc-4.5 | gcc-4.7 | gcc-4.9 | ubuntu-desktop (<< 1.207),
|
||||
gettext,
|
||||
libacl1-dev,
|
||||
libasound2-dev,
|
||||
@@ -30,6 +30,7 @@ Build-Depends: autotools-dev,
|
||||
libgnutls-dev,
|
||||
libgphoto2-dev | libgphoto2-6-dev | libgphoto2-2-dev (>= 2.4.6),
|
||||
libgsm1-dev,
|
||||
libgtk-3-dev,
|
||||
libice-dev,
|
||||
libjpeg-dev,
|
||||
liblcms2-dev | ubuntu-desktop (<< 1.267),
|
||||
@@ -37,6 +38,7 @@ Build-Depends: autotools-dev,
|
||||
libmpg123-dev,
|
||||
libncurses5-dev | libncurses-dev,
|
||||
libopenal-dev (>= 1:1.12) | ubuntu-desktop (<< 1.207),
|
||||
libosmesa6-dev,
|
||||
libpcap-dev,
|
||||
libpng12-dev,
|
||||
libpulse-dev,
|
||||
@@ -82,10 +84,8 @@ Recommends: libcapi20-3,
|
||||
libfontconfig1 | libfontconfig,
|
||||
libfreetype6,
|
||||
libgnutls26,
|
||||
libgphoto2-6 | libgphoto2-2 (>= 2.4.6),
|
||||
libgphoto2-port10 | libgphoto2-port0 (>= 2.4.6),
|
||||
libgtk-3-0,
|
||||
libjpeg8,
|
||||
libopenal1 (>= 1:1.12),
|
||||
libosmesa6,
|
||||
libpcap0.8,
|
||||
libpng12-0,
|
||||
@@ -139,10 +139,8 @@ Recommends: libcapi20-3,
|
||||
libfontconfig1 | libfontconfig,
|
||||
libfreetype6,
|
||||
libgnutls26,
|
||||
libgphoto2-6 | libgphoto2-2 (>= 2.4.6),
|
||||
libgphoto2-port10 | libgphoto2-port0 (>= 2.4.6),
|
||||
libgtk-3-0,
|
||||
libjpeg8,
|
||||
libopenal1 (>= 1:1.12),
|
||||
libosmesa6,
|
||||
libpcap0.8,
|
||||
libpng12-0,
|
||||
|
10
debian/rules
vendored
10
debian/rules
vendored
@@ -1,11 +1,8 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Use gcc-4.5 if it's available
|
||||
ifeq ($(shell which gcc-4.5),)
|
||||
CC = gcc
|
||||
else
|
||||
CC = gcc-4.5
|
||||
endif
|
||||
# Prefer gcc-4.5, then 4.7, then 4.9 - otherwise fallback to gcc.
|
||||
export CC = $(shell for _cc in gcc-4.5 gcc-4.7 gcc-4.9 gcc false; do \
|
||||
if which "$$_cc" >/dev/null 2>&1; then echo "$$_cc"; break; fi; done)
|
||||
|
||||
%:
|
||||
dh $@ --parallel
|
||||
@@ -24,7 +21,6 @@ ifeq ($(DEB_BUILD_ARCH), amd64)
|
||||
--infodir=\$${prefix}/share/info \
|
||||
--enable-win64 \
|
||||
--without-gstreamer \
|
||||
--without-unwind \
|
||||
--with-xattr \
|
||||
$(CONFFLAGS)
|
||||
else
|
||||
|
16
debian/tools/patchinstall.sh.in
vendored
16
debian/tools/patchinstall.sh.in
vendored
@@ -36,7 +36,8 @@ usage()
|
||||
echo " --help Display this help and exit"
|
||||
echo " --no-patchlist Do not apply patchlist (needed for 'wine --patches')"
|
||||
echo " --no-autoconf Do not run autoreconf and tools/make_requests"
|
||||
echo " --version Show version information"
|
||||
echo " --upstream-commit Print the upstream Wine commit SHA1 and exit"
|
||||
echo " --version Show version information and exit"
|
||||
echo " -W patchset Exclude a specific patchset"
|
||||
echo ""
|
||||
echo "Backends:"
|
||||
@@ -48,6 +49,12 @@ usage()
|
||||
echo ""
|
||||
}}
|
||||
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{{
|
||||
echo "{latest_wine_commit}"
|
||||
}}
|
||||
|
||||
# Show version information
|
||||
version()
|
||||
{{
|
||||
@@ -55,7 +62,7 @@ version()
|
||||
echo "Copyright (C) 2014-2015 the Wine Staging project authors."
|
||||
echo ""
|
||||
echo "Patchset to be applied on upstream Wine:"
|
||||
echo " commit {latest_wine_commit}"
|
||||
echo " commit $(upstream_commit)"
|
||||
echo ""
|
||||
}}
|
||||
|
||||
@@ -134,6 +141,11 @@ while test "$#" -gt 0; do
|
||||
shift
|
||||
;;
|
||||
|
||||
--upstream-commit)
|
||||
upstream_commit
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--version)
|
||||
version
|
||||
exit 0
|
||||
|
249
debian/tools/patchupdate.py
vendored
249
debian/tools/patchupdate.py
vendored
@@ -19,6 +19,7 @@
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
#
|
||||
|
||||
import argparse
|
||||
import binascii
|
||||
import cPickle as pickle
|
||||
import contextlib
|
||||
@@ -300,6 +301,11 @@ def read_patchset(revision = None):
|
||||
if i != j and any([fnmatch.fnmatch(f, val) for f in other_patch.modified_files]):
|
||||
patch.auto_depends.add(j)
|
||||
|
||||
elif key == "apply-before":
|
||||
for j, other_patch in all_patches.iteritems():
|
||||
if i != j and any([fnmatch.fnmatch(f, val) for f in other_patch.modified_files]):
|
||||
other_patch.auto_depends.add(i)
|
||||
|
||||
elif key == "category":
|
||||
val = "category-%s" % val
|
||||
if name_to_id.has_key(val):
|
||||
@@ -432,11 +438,11 @@ def select_patches(all_patches, indices, filename):
|
||||
selected_patches[i] = extract_patch(all_patches[i], filename)
|
||||
return selected_patches
|
||||
|
||||
def resolve_dependencies(all_patches, index = None, depends = None):
|
||||
def resolve_dependencies(all_patches, index = None, depends = None, auto_deps = True):
|
||||
"""Returns a sorted list with all dependencies for a given patch."""
|
||||
|
||||
def _resolve(depends):
|
||||
for i in depends:
|
||||
for i in sorted(depends):
|
||||
# Check for disabled patch
|
||||
if all_patches[i].disabled:
|
||||
raise PatchUpdaterError("Encountered dependency on disabled patchset %s" % all_patches[i].name)
|
||||
@@ -450,7 +456,7 @@ def resolve_dependencies(all_patches, index = None, depends = None):
|
||||
# Recusively resolve dependencies
|
||||
all_patches[i].verify_resolved = -1
|
||||
_resolve(all_patches[i].depends)
|
||||
_resolve(all_patches[i].auto_depends)
|
||||
if auto_deps: _resolve(all_patches[i].auto_depends)
|
||||
all_patches[i].verify_resolved = 1
|
||||
resolved.append(i)
|
||||
|
||||
@@ -459,11 +465,13 @@ def resolve_dependencies(all_patches, index = None, depends = None):
|
||||
|
||||
resolved = []
|
||||
if depends is None:
|
||||
depends = all_patches[index].depends
|
||||
_resolve(depends)
|
||||
_resolve(all_patches[index].depends)
|
||||
if auto_deps: _resolve(all_patches[index].auto_depends)
|
||||
else:
|
||||
_resolve(depends)
|
||||
return resolved
|
||||
|
||||
def generate_ifdefined(all_patches):
|
||||
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])
|
||||
|
||||
@@ -472,9 +480,18 @@ def generate_ifdefined(all_patches):
|
||||
continue
|
||||
|
||||
filename = os.path.join(patch.directory, config.path_IfDefined)
|
||||
headers = { 'author': "Wine Staging Team",
|
||||
'email': "webmaster@fds-team.de",
|
||||
'subject': "Autogenerated #ifdef patch for %s." % patch.name }
|
||||
|
||||
if skip_checks:
|
||||
patch.files.append(os.path.basename(filename))
|
||||
patch.patches.append(patchutils.PatchObject(filename, headers))
|
||||
continue
|
||||
|
||||
with open(filename, "wb") as fp:
|
||||
fp.write("From: Wine Staging Team <webmaster@fds-team.de>\n")
|
||||
fp.write("Subject: Autogenerated #ifdef patch for %s.\n" % patch.name)
|
||||
fp.write("From: %s <%s>\n" % (headers['author'], headers['email']))
|
||||
fp.write("Subject: %s\n" % headers['subject'])
|
||||
fp.write("\n")
|
||||
|
||||
depends = resolve_dependencies(enabled_patches, i)
|
||||
@@ -482,12 +499,26 @@ def generate_ifdefined(all_patches):
|
||||
|
||||
# Reconstruct the state after applying the dependencies
|
||||
original = get_wine_file(f)
|
||||
for _, (_, p) in select_patches(enabled_patches, depends, f).iteritems():
|
||||
original = patchutils.apply_patch(original, p, fuzz=0)
|
||||
selected_patches = select_patches(enabled_patches, depends, f)
|
||||
failed = []
|
||||
|
||||
try:
|
||||
for j in depends:
|
||||
failed.append(j)
|
||||
original = patchutils.apply_patch(original, selected_patches[j][1], fuzz=0)
|
||||
except patchutils.PatchApplyError:
|
||||
raise PatchUpdaterError("Changes to file %s don't apply: %s" %
|
||||
(f, ", ".join([all_patches[j].name for j in failed])))
|
||||
|
||||
# Now apply the main patch
|
||||
p = extract_patch(patch, f)[1]
|
||||
patched = patchutils.apply_patch(original, p, fuzz=0)
|
||||
|
||||
try:
|
||||
failed.append(i)
|
||||
patched = patchutils.apply_patch(original, p, fuzz=0)
|
||||
except patchutils.PatchApplyError:
|
||||
raise PatchUpdaterError("Changes to file %s don't apply: %s" %
|
||||
(f, ", ".join([all_patches[j].name for j in failed])))
|
||||
|
||||
# Now get the diff between both
|
||||
diff = patchutils.generate_ifdef_patch(original, patched, ifdef=patch.ifdefined)
|
||||
@@ -513,110 +544,112 @@ def generate_ifdefined(all_patches):
|
||||
assert p.modified_file in patch.modified_files
|
||||
patch.patches.append(p)
|
||||
|
||||
def generate_script(all_patches):
|
||||
def generate_script(all_patches, skip_checks=False):
|
||||
"""Resolve dependencies, and afterwards check if everything applies properly."""
|
||||
depends = sorted([i for i, patch in all_patches.iteritems() if not patch.disabled])
|
||||
resolved = resolve_dependencies(all_patches, depends=depends)
|
||||
max_patches = max(resolved) + 1
|
||||
|
||||
# Generate timestamps based on dependencies, still required for binary patches
|
||||
# Find out which files are modified by multiple patches
|
||||
modified_files = {}
|
||||
for i, patch in [(i, all_patches[i]) for i in resolved]:
|
||||
patch.verify_time = [0]*max_patches
|
||||
patch.verify_time[i] += 1
|
||||
for j in patch.depends:
|
||||
patch.verify_time = causal_time_combine(patch.verify_time, all_patches[j].verify_time)
|
||||
if not skip_checks:
|
||||
|
||||
for f in patch.modified_files:
|
||||
if f not in modified_files:
|
||||
modified_files[f] = []
|
||||
modified_files[f].append(i)
|
||||
# Generate timestamps based on dependencies, still required for binary patches
|
||||
# Find out which files are modified by multiple patches
|
||||
modified_files = {}
|
||||
for i, patch in [(i, all_patches[i]) for i in resolved]:
|
||||
patch.verify_time = [0]*max_patches
|
||||
patch.verify_time[i] += 1
|
||||
for j in patch.depends:
|
||||
patch.verify_time = causal_time_combine(patch.verify_time, all_patches[j].verify_time)
|
||||
|
||||
# Check dependencies
|
||||
dependency_cache = _load_dict(config.path_cache)
|
||||
pool = multiprocessing.pool.ThreadPool(processes=4)
|
||||
try:
|
||||
for filename, indices in modified_files.iteritems():
|
||||
for f in patch.modified_files:
|
||||
if f not in modified_files:
|
||||
modified_files[f] = []
|
||||
modified_files[f].append(i)
|
||||
|
||||
# If one of patches is a binary patch, then we cannot / won't verify it - require dependencies in this case
|
||||
if contains_binary_patch(all_patches, indices, filename):
|
||||
if not causal_time_relation_any(all_patches, indices):
|
||||
raise PatchUpdaterError("Because of binary patch modifying file %s the following patches need explicit dependencies: %s" %
|
||||
(filename, ", ".join([all_patches[i].name for i in indices])))
|
||||
continue
|
||||
# Check dependencies
|
||||
dependency_cache = _load_dict(config.path_cache)
|
||||
pool = multiprocessing.pool.ThreadPool(processes=4)
|
||||
try:
|
||||
for filename, indices in modified_files.iteritems():
|
||||
|
||||
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:
|
||||
# If one of patches is a binary patch, then we cannot / won't verify it - require dependencies in this case
|
||||
if contains_binary_patch(all_patches, indices, filename):
|
||||
if not causal_time_relation_any(all_patches, indices):
|
||||
raise PatchUpdaterError("Because of binary patch modifying file %s the following patches need explicit dependencies: %s" %
|
||||
(filename, ", ".join([all_patches[i].name for i in indices])))
|
||||
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:
|
||||
original_content = get_wine_file(filename)
|
||||
original_hash = _sha256(original_content)
|
||||
selected_patches = select_patches(all_patches, indices, filename)
|
||||
|
||||
def test_apply(current):
|
||||
set_apply = [(i, all_patches[i]) for i in current]
|
||||
set_skip = [(i, all_patches[i]) for i in indices if i not in current]
|
||||
# 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()
|
||||
|
||||
# Check if there is any patch2 which depends directly or indirectly on patch1.
|
||||
# If this is the case we found an impossible situation, we can be skipped in this test.
|
||||
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
|
||||
# Skip checks if it matches the information from the cache
|
||||
try:
|
||||
if dependency_cache[filename] == unique_hash:
|
||||
continue
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
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
|
||||
# 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:
|
||||
|
||||
return None # everything is fine
|
||||
def test_apply(current):
|
||||
set_apply = [(i, all_patches[i]) for i in current]
|
||||
set_skip = [(i, all_patches[i]) for i in indices if i not in current]
|
||||
|
||||
def test_apply_seq(current_list):
|
||||
for current in current_list:
|
||||
failed = test_apply(current)
|
||||
# Check if there is any patch2 which depends directly or indirectly on patch1.
|
||||
# If this is the case we found an impossible situation, we can be skipped in this test.
|
||||
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
|
||||
|
||||
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 None # 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
|
||||
return None
|
||||
|
||||
iterables = []
|
||||
for i in xrange(0, len(indices) + 1):
|
||||
iterables.append(itertools.combinations(indices, i))
|
||||
it = _split_seq(itertools.chain(*iterables), chunk_size)
|
||||
for k, failed in enumerate(pool.imap_unordered(test_apply_seq, it)):
|
||||
if failed is not None:
|
||||
return failed
|
||||
return None
|
||||
progress.finish("<failed to apply>")
|
||||
raise PatchUpdaterError("Changes to file %s don't apply: %s" %
|
||||
(filename, ", ".join([all_patches[i].name for i in failed])))
|
||||
progress.update(k)
|
||||
|
||||
iterables = []
|
||||
for i in xrange(0, len(indices) + 1):
|
||||
iterables.append(itertools.combinations(indices, i))
|
||||
it = _split_seq(itertools.chain(*iterables), chunk_size)
|
||||
for k, failed in enumerate(pool.imap_unordered(test_apply_seq, it)):
|
||||
if failed is not None:
|
||||
progress.finish("<failed to apply>")
|
||||
raise PatchUpdaterError("Changes to file %s don't apply: %s" %
|
||||
(filename, ", ".join([all_patches[i].name for i in failed])))
|
||||
progress.update(k)
|
||||
# Update the dependency cache
|
||||
dependency_cache[filename] = unique_hash
|
||||
|
||||
# Update the dependency cache
|
||||
dependency_cache[filename] = unique_hash
|
||||
|
||||
finally:
|
||||
pool.close()
|
||||
_save_dict(config.path_cache, dependency_cache)
|
||||
finally:
|
||||
pool.close()
|
||||
_save_dict(config.path_cache, dependency_cache)
|
||||
|
||||
# Generate code for helper functions
|
||||
lines = []
|
||||
@@ -682,6 +715,14 @@ def generate_script(all_patches):
|
||||
lines.append("# Patchset %s\n" % patch.name)
|
||||
lines.append("# |\n")
|
||||
|
||||
# List dependencies (if any)
|
||||
if len(patch.depends):
|
||||
depends = resolve_dependencies(all_patches, i, auto_deps=False)
|
||||
lines.append("# | This patchset has the following (direct or indirect) dependencies:\n")
|
||||
lines.append("# | *\t%s\n" % "\n# | \t".join(textwrap.wrap(
|
||||
", ".join([all_patches[j].name for j in depends]), 120)))
|
||||
lines.append("# |\n")
|
||||
|
||||
# List all bugs fixed by this patchset
|
||||
if any([bugid is not None for bugid, bugname in patch.fixes]):
|
||||
lines.append("# | This patchset fixes the following Wine bugs:\n")
|
||||
@@ -821,21 +862,31 @@ if __name__ == "__main__":
|
||||
raise RuntimeError("CTRL+C pressed")
|
||||
signal.signal(signal.SIGINT, _sig_int)
|
||||
|
||||
def _check_commit_hash(commit):
|
||||
if len(commit) != 40 or commit != commit.lower():
|
||||
raise argparse.ArgumentTypeError("not a valid commit hash")
|
||||
return commit
|
||||
|
||||
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")
|
||||
args = parser.parse_args()
|
||||
|
||||
tools_directory = os.path.dirname(os.path.realpath(__file__))
|
||||
os.chdir(os.path.join(tools_directory, "./../.."))
|
||||
|
||||
try:
|
||||
|
||||
# Get information about Wine and Staging version
|
||||
latest_wine_commit = _latest_wine_commit(sys.argv[1] if len(sys.argv) >= 2 else None)
|
||||
latest_wine_commit = _latest_wine_commit(args.commit)
|
||||
latest_staging_version = _latest_staging_version(only_stable=True)
|
||||
|
||||
# Read current and stable patches
|
||||
all_patches = read_patchset()
|
||||
stable_patches = read_patchset(revision="v%s" % latest_staging_version)
|
||||
|
||||
generate_ifdefined(all_patches)
|
||||
generate_script(all_patches)
|
||||
generate_ifdefined(all_patches, skip_checks=args.skip_checks)
|
||||
generate_script(all_patches, skip_checks=args.skip_checks)
|
||||
generate_markdown(all_patches, stable_patches)
|
||||
wrap_changelog()
|
||||
|
||||
|
5
debian/tools/patchutils.py
vendored
5
debian/tools/patchutils.py
vendored
@@ -55,9 +55,6 @@ class PatchObject(object):
|
||||
self.patch_subject = header['subject']
|
||||
self.patch_revision = header['revision'] if header.has_key('revision') else 1
|
||||
|
||||
# self.extracted_patch = None
|
||||
self.unique_hash = None
|
||||
|
||||
self.filename = filename
|
||||
self.offset_begin = None
|
||||
self.offset_end = None
|
||||
@@ -305,6 +302,8 @@ def read_patch(filename):
|
||||
if r is not None: return "%s: %s" % (r.group(1), r.group(4)), int(r.group(3))
|
||||
r = re.match("^(.*) +%s$" % version, subject, re.IGNORECASE)
|
||||
if r is not None: return r.group(1).strip(), int(r.group(3))
|
||||
r = re.match("^(.*)\\(resend\\)$", subject, re.IGNORECASE)
|
||||
if r is not None: return r.group(1).strip(), 1
|
||||
return subject, 1
|
||||
|
||||
header = {}
|
||||
|
@@ -1,25 +0,0 @@
|
||||
From eba72a3ed5d6f61c92ce2926d8305d19dc66425b Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 30 May 2015 17:08:18 +0200
|
||||
Subject: ws2_32: Fix uninitialized memory access in do_poll (Coverity).
|
||||
|
||||
---
|
||||
dlls/ws2_32/socket.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
|
||||
index fdf68a3..60c6ec5 100644
|
||||
--- a/dlls/ws2_32/socket.c
|
||||
+++ b/dlls/ws2_32/socket.c
|
||||
@@ -4794,7 +4794,7 @@ static int do_poll(struct pollfd *pollfds, int count, int timeout)
|
||||
struct timeval tv1, tv2;
|
||||
int ret, torig = timeout;
|
||||
|
||||
- if (timeout > 0) gettimeofday( &tv1, 0 );
|
||||
+ if (timeout >= 0) gettimeofday( &tv1, 0 );
|
||||
|
||||
while ((ret = poll( pollfds, count, timeout )) < 0)
|
||||
{
|
||||
--
|
||||
2.4.2
|
||||
|
@@ -0,0 +1,64 @@
|
||||
From b4a2543264f9eb91fc259a81dea872eee3c14aba Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 27 Jun 2015 19:28:51 +0200
|
||||
Subject: loader: Print library paths for --check-libs on Mac OS X.
|
||||
|
||||
---
|
||||
loader/main.c | 27 ++++++++++++++++++++++++++-
|
||||
1 file changed, 26 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/loader/main.c b/loader/main.c
|
||||
index 44804e1..4d9126e 100644
|
||||
--- a/loader/main.c
|
||||
+++ b/loader/main.c
|
||||
@@ -48,6 +48,7 @@
|
||||
#include "main.h"
|
||||
|
||||
#ifdef __APPLE__
|
||||
+#include <mach-o/dyld.h>
|
||||
|
||||
#ifndef __clang__
|
||||
__asm__(".zerofill WINE_DOS, WINE_DOS, ___wine_dos, 0x40000000");
|
||||
@@ -73,6 +74,26 @@ static inline void reserve_area( void *addr, size_t size )
|
||||
wine_mmap_add_reserved_area( addr, size );
|
||||
}
|
||||
|
||||
+static const char *get_macho_library_path( const char *libname )
|
||||
+{
|
||||
+ unsigned int path_len, libname_len = strlen( libname );
|
||||
+ uint32_t i, count = _dyld_image_count();
|
||||
+
|
||||
+ for (i = 0; i < count; i++)
|
||||
+ {
|
||||
+ const char *path = _dyld_get_image_name( i );
|
||||
+ if (!path) continue;
|
||||
+
|
||||
+ path_len = strlen( path );
|
||||
+ if (path_len < libname_len + 1) continue;
|
||||
+ if (path[path_len - libname_len - 1] != '/') continue;
|
||||
+ if (strcmp( path + path_len - libname_len, libname )) continue;
|
||||
+
|
||||
+ return path;
|
||||
+ }
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
#else /* __APPLE__ */
|
||||
|
||||
/* the preloader will set this variable */
|
||||
@@ -181,7 +202,11 @@ static void check_command_line( int argc, char *argv[] )
|
||||
else
|
||||
#endif
|
||||
{
|
||||
- printf( "%s: found\n", *wine_libs );
|
||||
+ const char *path = NULL;
|
||||
+ #ifdef __APPLE__
|
||||
+ path = get_macho_library_path( *wine_libs );
|
||||
+ #endif
|
||||
+ printf( "%s: %s\n", *wine_libs, path ? path : "found");
|
||||
}
|
||||
wine_dlclose( lib_handle, NULL, 0 );
|
||||
}
|
||||
--
|
||||
2.4.3
|
||||
|
@@ -1,219 +0,0 @@
|
||||
From 4ba47dbc95a5a73ef646648a3ba8dd90a1089ee8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 13 Jun 2015 20:45:09 +0200
|
||||
Subject: advapi32: Implement GetWindowsAccountDomainSid.
|
||||
|
||||
---
|
||||
dlls/advapi32/advapi32.spec | 2 +-
|
||||
dlls/advapi32/security.c | 45 +++++++++++++
|
||||
dlls/advapi32/tests/security.c | 78 ++++++++++++++++++++++
|
||||
.../api-ms-win-security-base-l1-1-0.spec | 2 +-
|
||||
.../api-ms-win-security-base-l1-2-0.spec | 2 +-
|
||||
5 files changed, 126 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
|
||||
index 4600142..ec27440 100644
|
||||
--- a/dlls/advapi32/advapi32.spec
|
||||
+++ b/dlls/advapi32/advapi32.spec
|
||||
@@ -363,7 +363,7 @@
|
||||
@ stdcall GetTrusteeTypeW(ptr)
|
||||
@ stdcall GetUserNameA(ptr ptr)
|
||||
@ stdcall GetUserNameW(ptr ptr)
|
||||
-# @ stub GetWindowsAccountDomainSid
|
||||
+@ stdcall GetWindowsAccountDomainSid(ptr ptr ptr)
|
||||
# @ stub I_QueryTagInformation
|
||||
# @ stub I_ScGetCurrentGroupStateW
|
||||
# @ stub I_ScIsSecurityProcess
|
||||
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
|
||||
index 028dcc6..1aae1e0 100644
|
||||
--- a/dlls/advapi32/security.c
|
||||
+++ b/dlls/advapi32/security.c
|
||||
@@ -1538,6 +1538,51 @@ BOOL WINAPI SetSecurityDescriptorControl( PSECURITY_DESCRIPTOR pSecurityDescript
|
||||
pSecurityDescriptor, ControlBitsOfInterest, ControlBitsToSet ) );
|
||||
}
|
||||
|
||||
+/******************************************************************************
|
||||
+ * GetWindowsAccountDomainSid [ADVAPI32.@]
|
||||
+ */
|
||||
+BOOL WINAPI GetWindowsAccountDomainSid( PSID sid, PSID domain_sid, DWORD *size )
|
||||
+{
|
||||
+ SID_IDENTIFIER_AUTHORITY domain_ident = {{0,0,0,0,0,5}};
|
||||
+ DWORD required_size;
|
||||
+ int i;
|
||||
+
|
||||
+ FIXME( "(%p %p %p): semi-stub\n", sid, domain_sid, size );
|
||||
+
|
||||
+ if (!sid || !IsValidSid( sid ))
|
||||
+ {
|
||||
+ SetLastError( ERROR_INVALID_SID );
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if (!size)
|
||||
+ {
|
||||
+ SetLastError( ERROR_INVALID_PARAMETER );
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if (*GetSidSubAuthorityCount( sid ) < 4)
|
||||
+ {
|
||||
+ SetLastError( ERROR_INVALID_SID );
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ required_size = GetSidLengthRequired( 4 );
|
||||
+ if (*size < required_size || !domain_sid)
|
||||
+ {
|
||||
+ *size = required_size;
|
||||
+ SetLastError( domain_sid ? ERROR_INSUFFICIENT_BUFFER : ERROR_INVALID_PARAMETER );
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ InitializeSid( domain_sid, &domain_ident, 4 );
|
||||
+ for (i = 0; i < 4; i++)
|
||||
+ *GetSidSubAuthority( domain_sid, i ) = *GetSidSubAuthority( sid, i );
|
||||
+
|
||||
+ *size = required_size;
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
/* ##############################
|
||||
###### ACL FUNCTIONS ######
|
||||
##############################
|
||||
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
|
||||
index b43f212..3cc149c 100644
|
||||
--- a/dlls/advapi32/tests/security.c
|
||||
+++ b/dlls/advapi32/tests/security.c
|
||||
@@ -129,6 +129,7 @@ static NTSTATUS (WINAPI *pNtSetSecurityObject)(HANDLE,SECURITY_INFORMATION,PSECU
|
||||
static NTSTATUS (WINAPI *pNtCreateFile)(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,PLARGE_INTEGER,ULONG,ULONG,ULONG,ULONG,PVOID,ULONG);
|
||||
static BOOL (WINAPI *pRtlDosPathNameToNtPathName_U)(LPCWSTR,PUNICODE_STRING,PWSTR*,CURDIR*);
|
||||
static NTSTATUS (WINAPI *pRtlAnsiStringToUnicodeString)(PUNICODE_STRING,PCANSI_STRING,BOOLEAN);
|
||||
+static BOOL (WINAPI *pGetWindowsAccountDomainSid)(PSID,PSID,DWORD*);
|
||||
|
||||
static HMODULE hmod;
|
||||
static int myARGC;
|
||||
@@ -190,6 +191,7 @@ static void init(void)
|
||||
pConvertStringSidToSidA = (void *)GetProcAddress(hmod, "ConvertStringSidToSidA");
|
||||
pGetAclInformation = (void *)GetProcAddress(hmod, "GetAclInformation");
|
||||
pGetAce = (void *)GetProcAddress(hmod, "GetAce");
|
||||
+ pGetWindowsAccountDomainSid = (void *)GetProcAddress(hmod, "GetWindowsAccountDomainSid");
|
||||
|
||||
myARGC = winetest_get_mainargs( &myARGV );
|
||||
}
|
||||
@@ -5835,6 +5837,81 @@ static void test_AddAce(void)
|
||||
ok(GetLastError() == ERROR_INVALID_PARAMETER, "GetLastError() = %d\n", GetLastError());
|
||||
}
|
||||
|
||||
+static void test_GetWindowsAccountDomainSid (void)
|
||||
+{
|
||||
+ char b[sizeof(TOKEN_USER) + sizeof(SID) + sizeof(DWORD)*SID_MAX_SUB_AUTHORITIES];
|
||||
+ char buffer1[SECURITY_MAX_SID_SIZE], buffer2[SECURITY_MAX_SID_SIZE];
|
||||
+ SID_IDENTIFIER_AUTHORITY domain_ident = {{0,0,0,0,0,5}};
|
||||
+ PSID domain_sid = (PSID *)&buffer1;
|
||||
+ PSID domain_sid2 = (PSID *)&buffer2;
|
||||
+ DWORD sid_size, l = sizeof(b);
|
||||
+ PSID user_sid;
|
||||
+ HANDLE token;
|
||||
+ BOOL ret = TRUE;
|
||||
+ int i;
|
||||
+
|
||||
+ if (!pGetWindowsAccountDomainSid)
|
||||
+ {
|
||||
+ win_skip("GetWindowsAccountDomainSid not available\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (!OpenThreadToken(GetCurrentThread(), TOKEN_READ, TRUE, &token))
|
||||
+ {
|
||||
+ if (GetLastError() != ERROR_NO_TOKEN) ret = FALSE;
|
||||
+ else if (!OpenProcessToken(GetCurrentProcess(), TOKEN_READ, &token)) ret = FALSE;
|
||||
+ }
|
||||
+ if (!ret)
|
||||
+ {
|
||||
+ win_skip("Failed to get current user token\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ GetTokenInformation(token, TokenUser, b, l, &l);
|
||||
+ user_sid = ((TOKEN_USER *)b)->User.Sid;
|
||||
+ CloseHandle(token);
|
||||
+
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ ret = pGetWindowsAccountDomainSid(0, 0, 0);
|
||||
+ ok(!ret, "GetWindowsAccountDomainSid succeeded\n");
|
||||
+ ok(GetLastError() == ERROR_INVALID_SID, "expected ERROR_INVALID_SID, got %d\n", GetLastError());
|
||||
+
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ ret = pGetWindowsAccountDomainSid(user_sid, 0, 0);
|
||||
+ ok(!ret, "GetWindowsAccountDomainSid succeeded\n");
|
||||
+ ok(GetLastError() == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
|
||||
+
|
||||
+ sid_size = SECURITY_MAX_SID_SIZE;
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ ret = pGetWindowsAccountDomainSid(user_sid, 0, &sid_size);
|
||||
+ ok(!ret, "GetWindowsAccountDomainSid succeeded\n");
|
||||
+ ok(GetLastError() == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
|
||||
+ ok(sid_size == GetSidLengthRequired(4), "expected size %d, got %d\n", GetSidLengthRequired(4), sid_size);
|
||||
+
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ ret = pGetWindowsAccountDomainSid(user_sid, domain_sid, 0);
|
||||
+ ok(!ret, "GetWindowsAccountDomainSid succeeded\n");
|
||||
+ ok(GetLastError() == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
|
||||
+
|
||||
+ sid_size = 1;
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ ret = pGetWindowsAccountDomainSid(user_sid, domain_sid, &sid_size);
|
||||
+ ok(!ret, "GetWindowsAccountDomainSid succeeded\n");
|
||||
+ ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "expected ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
|
||||
+ ok(sid_size == GetSidLengthRequired(4), "expected size %d, got %d\n", GetSidLengthRequired(4), sid_size);
|
||||
+
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ sid_size = SECURITY_MAX_SID_SIZE;
|
||||
+ ret = pGetWindowsAccountDomainSid(user_sid, domain_sid, &sid_size);
|
||||
+ ok(ret, "GetWindowsAccountDomainSid failed with error %d\n", GetLastError());
|
||||
+ todo_wine ok(GetLastError() == 0xdeadbeef, "last error should not change\n");
|
||||
+ ok(sid_size == GetSidLengthRequired(4), "expected size %d, got %d\n", GetSidLengthRequired(4), sid_size);
|
||||
+ InitializeSid(domain_sid2, &domain_ident, 4);
|
||||
+ for (i = 0; i < 4; i++)
|
||||
+ *GetSidSubAuthority(domain_sid2, i) = *GetSidSubAuthority(user_sid, i);
|
||||
+ ok(EqualSid(domain_sid, domain_sid2), "unexpected domain sid\n");
|
||||
+}
|
||||
+
|
||||
START_TEST(security)
|
||||
{
|
||||
init();
|
||||
@@ -5877,4 +5954,5 @@ START_TEST(security)
|
||||
test_default_dacl_owner_sid();
|
||||
test_AdjustTokenPrivileges();
|
||||
test_AddAce();
|
||||
+ test_GetWindowsAccountDomainSid();
|
||||
}
|
||||
diff --git a/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec b/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec
|
||||
index 4277706..edae6d1 100644
|
||||
--- a/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec
|
||||
+++ b/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec
|
||||
@@ -57,7 +57,7 @@
|
||||
@ stdcall GetSidSubAuthority(ptr long) advapi32.GetSidSubAuthority
|
||||
@ stdcall GetSidSubAuthorityCount(ptr) advapi32.GetSidSubAuthorityCount
|
||||
@ stdcall GetTokenInformation(long long ptr long ptr) advapi32.GetTokenInformation
|
||||
-@ stub GetWindowsAccountDomainSid
|
||||
+@ stdcall GetWindowsAccountDomainSid(ptr ptr ptr) advapi32.GetWindowsAccountDomainSid
|
||||
@ stdcall ImpersonateAnonymousToken(long) advapi32.ImpersonateAnonymousToken
|
||||
@ stdcall ImpersonateLoggedOnUser(long) advapi32.ImpersonateLoggedOnUser
|
||||
@ stdcall ImpersonateSelf(long) advapi32.ImpersonateSelf
|
||||
diff --git a/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec b/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec
|
||||
index 3adef23..e19fe53 100644
|
||||
--- a/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec
|
||||
+++ b/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec
|
||||
@@ -63,7 +63,7 @@
|
||||
@ stdcall GetSidSubAuthority(ptr long) advapi32.GetSidSubAuthority
|
||||
@ stdcall GetSidSubAuthorityCount(ptr) advapi32.GetSidSubAuthorityCount
|
||||
@ stdcall GetTokenInformation(long long ptr long ptr) advapi32.GetTokenInformation
|
||||
-@ stub GetWindowsAccountDomainSid
|
||||
+@ stdcall GetWindowsAccountDomainSid(ptr ptr ptr) advapi32.GetWindowsAccountDomainSid
|
||||
@ stdcall ImpersonateAnonymousToken(long) advapi32.ImpersonateAnonymousToken
|
||||
@ stdcall ImpersonateLoggedOnUser(long) advapi32.ImpersonateLoggedOnUser
|
||||
@ stdcall ImpersonateSelf(long) advapi32.ImpersonateSelf
|
||||
--
|
||||
2.4.2
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [38624] Implement advapi32.GetWindowsAccountDomainSid
|
@@ -0,0 +1,85 @@
|
||||
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
patches/advpack-LaunchINFSection/definition
Normal file
1
patches/advpack-LaunchINFSection/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: Translate flags in LaunchINFSectionW
|
@@ -0,0 +1,88 @@
|
||||
From 4d0e6bbc00bd49b8dcfce494bd7380c49f58f92b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 28 Jul 2015 18:21:20 +0200
|
||||
Subject: amstream: Implement IAMMediaStream::GetMultiMediaStream.
|
||||
|
||||
---
|
||||
dlls/amstream/mediastream.c | 40 ++++++++++++++++++++++++++++++++--------
|
||||
1 file changed, 32 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/amstream/mediastream.c b/dlls/amstream/mediastream.c
|
||||
index 947be1e..e4e15d7 100644
|
||||
--- a/dlls/amstream/mediastream.c
|
||||
+++ b/dlls/amstream/mediastream.c
|
||||
@@ -110,9 +110,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetMultiMediaStre
|
||||
{
|
||||
DirectDrawMediaStreamImpl *This = impl_from_DirectDrawMediaStream_IAMMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
+ TRACE("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multi_media_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multi_media_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface,
|
||||
@@ -271,9 +277,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetMultiM
|
||||
{
|
||||
DirectDrawMediaStreamImpl *This = impl_from_IDirectDrawMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream);
|
||||
+ TRACE("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!ppMultiMediaStream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *ppMultiMediaStream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetInformation(IDirectDrawMediaStream *iface,
|
||||
@@ -511,9 +523,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetMultiMediaStream(IA
|
||||
{
|
||||
AudioMediaStreamImpl *This = impl_from_AudioMediaStream_IAMMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream);
|
||||
+ TRACE("(%p/%p)->(%p)\n", This, iface, multi_media_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multi_media_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multi_media_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface,
|
||||
@@ -672,9 +690,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetMultiMediaStream
|
||||
{
|
||||
AudioMediaStreamImpl *This = impl_from_IAudioMediaStream(iface);
|
||||
|
||||
- FIXME("(%p/%p)->(%p) stub!\n", iface, This, multimedia_stream);
|
||||
+ TRACE("(%p/%p)->(%p)\n", iface, This, multimedia_stream);
|
||||
|
||||
- return S_FALSE;
|
||||
+ if (!multimedia_stream)
|
||||
+ return E_POINTER;
|
||||
+
|
||||
+ IMultiMediaStream_AddRef(This->parent);
|
||||
+ *multimedia_stream = This->parent;
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetInformation(IAudioMediaStream *iface,
|
||||
--
|
||||
2.4.5
|
||||
|
1
patches/amstream-GetMultiMediaStream/definition
Normal file
1
patches/amstream-GetMultiMediaStream/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: [37090] Implement AMStream GetMultiMediaStream functions
|
@@ -0,0 +1,46 @@
|
||||
From fe4c1e1f10f8edc76c5dad994ed2e5202f9c2821 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Storsjo <martin@martin.st>
|
||||
Date: Mon, 3 Aug 2015 22:26:01 +0300
|
||||
Subject: ucrtbase: Hook up some functions with new names to existing
|
||||
implementations
|
||||
|
||||
These are some functions that on a first glance seem to have a
|
||||
matching signature even though the name has changed.
|
||||
---
|
||||
dlls/ucrtbase/ucrtbase.spec | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
|
||||
index bb56408..cee094d 100644
|
||||
--- a/dlls/ucrtbase/ucrtbase.spec
|
||||
+++ b/dlls/ucrtbase/ucrtbase.spec
|
||||
@@ -211,7 +211,7 @@
|
||||
@ cdecl _c_exit() MSVCRT__c_exit
|
||||
@ cdecl _cabs(long) MSVCRT__cabs
|
||||
@ cdecl _callnewh(long)
|
||||
-@ stub _calloc_base
|
||||
+@ cdecl _calloc_base(long long) MSVCRT_calloc
|
||||
@ cdecl _cexit() MSVCRT__cexit
|
||||
@ cdecl _cgets(ptr)
|
||||
@ stub _cgets_s
|
||||
@@ -333,7 +333,7 @@
|
||||
@ cdecl _fputwchar(long) MSVCRT__fputwchar
|
||||
@ cdecl _fread_nolock(ptr long long ptr) MSVCRT__fread_nolock
|
||||
@ cdecl _fread_nolock_s(ptr long long long ptr) MSVCRT__fread_nolock_s
|
||||
-@ stub _free_base
|
||||
+@ cdecl _free_base(ptr) MSVCRT_free
|
||||
@ cdecl _free_locale(ptr) MSVCRT__free_locale
|
||||
@ cdecl _fseek_nolock(ptr long long) MSVCRT__fseek_nolock
|
||||
@ cdecl _fseeki64(ptr int64 long) MSVCRT__fseeki64
|
||||
@@ -580,7 +580,7 @@
|
||||
@ cdecl _ltow_s(long ptr long long) MSVCRT__ltow_s
|
||||
@ cdecl _makepath(ptr str str str str) MSVCRT__makepath
|
||||
@ cdecl _makepath_s(ptr long str str str str) MSVCRT__makepath_s
|
||||
-@ stub _malloc_base
|
||||
+@ cdecl _malloc_base(long) MSVCRT_malloc
|
||||
@ cdecl _mbbtombc(long)
|
||||
@ stub _mbbtombc_l
|
||||
@ cdecl _mbbtype(long long)
|
||||
--
|
||||
2.5.0
|
||||
|
@@ -0,0 +1,163 @@
|
||||
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
|
||||
|
@@ -0,0 +1,26 @@
|
||||
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
|
||||
|
@@ -0,0 +1,54 @@
|
||||
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