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
1878 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
8a378ee8e7 | ||
|
fd5fd19bb9 | ||
|
d14e078ed7 | ||
|
47e0b460b4 | ||
|
0c1324b8de | ||
|
e9f445ed37 | ||
|
84730be30e | ||
|
42da4b38cc | ||
|
7dac88ab13 | ||
|
c3f580b642 | ||
|
ffa55dcc00 | ||
|
cde035a721 | ||
|
c094720578 | ||
|
2e17709095 | ||
|
dea2594156 | ||
|
af4ac5433d | ||
|
ce6a5b015d | ||
|
07a42a496d | ||
|
78db8b7950 | ||
|
78ed3fc7e9 | ||
|
a605ae9359 | ||
|
ebf9db37d5 | ||
|
2d713a931d | ||
|
9dcb352d8d | ||
|
3d3effd8b3 | ||
|
eb1820cd45 | ||
|
6655f3dc84 | ||
|
c28bcab311 | ||
|
e60b8d144b | ||
|
b14f029f04 | ||
|
cd0241f0e2 | ||
|
096164c275 | ||
|
ef47e8db59 | ||
|
632a8a163b | ||
|
8af8164874 | ||
|
69be96b093 | ||
|
d73096b63a | ||
|
d8b26a26c5 | ||
|
c873b7f422 | ||
|
a85a3e8533 | ||
|
a7b8b87d73 | ||
|
208a1f6573 | ||
|
6f9e2dae7d | ||
|
67b1817720 | ||
|
a990060062 | ||
|
be3e802c6f | ||
|
7d18a5d9b8 | ||
|
87b990dc41 | ||
|
83bc0c02bd | ||
|
2585f4dda7 | ||
|
55a86c83c0 | ||
|
3d3f7c7088 | ||
|
64719a7bda | ||
|
c60b60d2f5 | ||
|
5decc603f2 | ||
|
923b875122 | ||
|
eee03cfecb | ||
|
803e04c3fe | ||
|
9a2af99c65 | ||
|
8aa631da85 | ||
|
be377f28ee | ||
|
6604238b3c | ||
|
58cd8f2507 | ||
|
3aa9934386 | ||
|
4a6afc96cb | ||
|
6539aec608 | ||
|
0c787e6a09 | ||
|
8b28977596 | ||
|
b0a0836e95 | ||
|
03fc84498f | ||
|
cfc2f08f0a | ||
|
7c7da8183e | ||
|
68a4753dbf | ||
|
dbce23ab3b | ||
|
19d466a729 | ||
|
5da8bc54a5 | ||
|
e5bff1feaf | ||
|
2c3f70b42b | ||
|
75dc81b7d3 | ||
|
3faa0f1212 | ||
|
42b1edd98d | ||
|
97d07afaf9 | ||
|
eb20574d3e | ||
|
6a3ea0e976 | ||
|
0696c2c351 | ||
|
f98e04ebc1 | ||
|
9d447d1e4b | ||
|
f09a38e62f | ||
|
f673b561d0 | ||
|
425fb96870 | ||
|
9afe850d99 | ||
|
4205b76407 | ||
|
f6e27c19e1 | ||
|
3f08cafe30 | ||
|
a51602d5df | ||
|
ec61f717d5 | ||
|
00b4488edc | ||
|
91a3fcc513 | ||
|
637b89cefa | ||
|
1d24dc8141 | ||
|
d5a263093f | ||
|
8c4e21ef46 | ||
|
123214c032 | ||
|
15733c4eb8 | ||
|
dc86f5c543 | ||
|
d2e9fa96e2 | ||
|
d9bb5a1e45 | ||
|
d4e3581847 | ||
|
4be7c872c3 | ||
|
896b3398f1 | ||
|
9ad85e9d6f | ||
|
a2714839b3 | ||
|
85d50ecc2a | ||
|
2e4d11137f | ||
|
b03c54797e | ||
|
5ad2c41098 | ||
|
0488823205 | ||
|
fd66b3bced | ||
|
d2f012b3d1 | ||
|
7e1bf8aca0 | ||
|
f8627a6f02 | ||
|
693e189c24 | ||
|
5acbd17da2 | ||
|
d014e899bc | ||
|
397a31ae04 | ||
|
2668c19b7f | ||
|
2c0e907a4a | ||
|
fb56e8d212 | ||
|
22c57980db | ||
|
4c11394828 | ||
|
f151e1f36f | ||
|
1c6124cc6e | ||
|
e51ebcc301 | ||
|
bff92e3d44 | ||
|
1e79306b13 | ||
|
8cd8abd51f | ||
|
8adf60dc8e | ||
|
e64c3bff30 | ||
|
8d0e6ea5c8 | ||
|
4f051ce511 | ||
|
bd89770641 | ||
|
7cf357b20c | ||
|
91f812ed1b | ||
|
8e8654d76e | ||
|
d7013c255f | ||
|
9638ce9ec6 | ||
|
e1d5975f34 | ||
|
f597f5b898 | ||
|
63426eaa59 | ||
|
67dffe4dc6 | ||
|
d8cf46384c | ||
|
6494429c2f | ||
|
be51f622f7 | ||
|
922e5a0e06 | ||
|
9b1ac08c87 | ||
|
bfabcd117e | ||
|
b8c9f3454e | ||
|
3f46a6acb7 | ||
|
c83adcf25b | ||
|
091bcbce3c | ||
|
6971149e11 | ||
|
1f9e5b10e0 | ||
|
0c3120e10d | ||
|
550a60731f | ||
|
3bf5b8762a | ||
|
188b345d2e | ||
|
458dd1fbce | ||
|
216a2d8994 | ||
|
032bf69aa7 | ||
|
e80a1b9b96 | ||
|
d1801f5a5e | ||
|
317fa9382c | ||
|
e3ea1eef0d | ||
|
cc0556df4a | ||
|
0dddb28c32 | ||
|
46bd2a545f | ||
|
fbce85675d | ||
|
1ab89ae9bc | ||
|
55379f6926 | ||
|
48c78157ae | ||
|
fdf5bad886 | ||
|
b1d20ea747 | ||
|
d8c4d47bbc | ||
|
ee5271ee57 | ||
|
4adc56f74f | ||
|
4fe40942a6 | ||
|
2dc572f110 | ||
|
3307e90080 | ||
|
6b720c8cd2 | ||
|
76aa292beb | ||
|
1d3eb97763 | ||
|
3c4ad355ff | ||
|
c7c250e381 | ||
|
28d60dbd10 | ||
|
1c46676667 | ||
|
8f08951d14 | ||
|
6a06b1710e | ||
|
59e96aed08 | ||
|
784acaf1fa | ||
|
d9e1415701 | ||
|
3cee0925e8 | ||
|
eb98f4e74f | ||
|
6ef9e97ec1 | ||
|
f9edeb7354 | ||
|
f4dcef9c77 | ||
|
8b65b1c1c8 | ||
|
2a080a1262 | ||
|
1928fdacbe | ||
|
74daa3b210 | ||
|
b951b9ad09 | ||
|
0f5d19c2e0 | ||
|
c498b3557f | ||
|
65be847fcc | ||
|
70d974cad5 | ||
|
ed021737de | ||
|
5eab79aa77 | ||
|
31e4657a83 | ||
|
e5d2ae6b87 | ||
|
8073750c5c | ||
|
0d466f5e6d | ||
|
5f353ac80e | ||
|
447235f1dc | ||
|
e522c26b4b | ||
|
07de62088d | ||
|
f7950d74e6 | ||
|
e499f1c187 | ||
|
8a0c14b145 | ||
|
f64d5ad94d | ||
|
2f4c5ae81e | ||
|
0182014bed | ||
|
22331fa377 | ||
|
456eb2f553 | ||
|
4ad4553546 | ||
|
6efa37655c | ||
|
ff889f6cdc | ||
|
8ba35e61d8 | ||
|
f44120dffe | ||
|
0a96d76b16 | ||
|
ff9f5115fb | ||
|
929a331358 | ||
|
357269a486 | ||
|
23ec346541 | ||
|
2517360ebd | ||
|
08738c151c | ||
|
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 | ||
|
7c0b90ad19 | ||
|
a1611c8fd0 | ||
|
12f0292934 | ||
|
53b165e070 | ||
|
6c70ccd388 | ||
|
703e98c1f5 | ||
|
5628355586 | ||
|
7c2dfd1e28 | ||
|
7765a19988 | ||
|
531ca00756 | ||
|
2672e6b4c5 | ||
|
a6f687dcc9 | ||
|
995b761dee | ||
|
44a9c0cc8a | ||
|
2b90f82b6a | ||
|
945ec28ec8 | ||
|
5fc6371a97 | ||
|
7a6fec3740 | ||
|
aaeb4db3b3 | ||
|
68ade392f8 | ||
|
f76f0d0052 | ||
|
0ccd396056 | ||
|
6b78b26763 | ||
|
d2765a37f2 | ||
|
0c2536b025 | ||
|
cc1da4895e | ||
|
a0f1f35843 | ||
|
26eb2942d0 | ||
|
16d40cf5d5 | ||
|
9149fde0ff | ||
|
a110e490b8 | ||
|
0af6df6bc0 | ||
|
4d919d4d83 | ||
|
32c289493f | ||
|
9fde9be110 | ||
|
ee2f208b2b | ||
|
002f664b68 | ||
|
9acb14c728 | ||
|
fd6ff0999c | ||
|
78327e5ead | ||
|
ccd977d649 | ||
|
873d07d7d7 | ||
|
2412d1f4eb | ||
|
32f681f893 | ||
|
0d67dee015 | ||
|
26d8a27276 | ||
|
6a8261887f | ||
|
e88424ebc6 | ||
|
0abc5f4b7b | ||
|
85364f3153 | ||
|
a2722e8fe9 | ||
|
2923808892 | ||
|
fdc5f5c1dd | ||
|
b9ec1ed8f5 | ||
|
ad87c93337 | ||
|
ce3f724ea2 | ||
|
0d0440ede9 | ||
|
7dc9e1b670 | ||
|
528e9ceec3 | ||
|
da512da861 | ||
|
e7ab8d7b04 | ||
|
bb8f219272 | ||
|
b54341886b | ||
|
088ca2f71d | ||
|
6d2e3ce903 | ||
|
4c9804d9f5 | ||
|
c7d100897a | ||
|
55902fb521 | ||
|
a428549415 | ||
|
0432712e4e | ||
|
b942798ef9 | ||
|
f576613dd2 | ||
|
9384283aca | ||
|
cf5c56ef11 | ||
|
c632b99fb5 | ||
|
f5c6731e84 | ||
|
cec272a2d4 | ||
|
1b2fa6c6cb | ||
|
016e539659 | ||
|
412af27a17 | ||
|
bcb19df630 | ||
|
79e542c24a | ||
|
c10eb9a4a1 | ||
|
79c69db369 | ||
|
763bb554cd | ||
|
7cad745ad6 | ||
|
92379575c7 | ||
|
2a1d1a0086 | ||
|
83cbd1daaa | ||
|
7f9bf47dd0 | ||
|
41484ad4ed | ||
|
4b4c5feb3d | ||
|
5972e18a71 | ||
|
baa05e4719 | ||
|
ca8ffcd619 | ||
|
b2297b41c3 | ||
|
f09433417e | ||
|
349ba2df2a | ||
|
9573b57d3c | ||
|
0defa32dfb | ||
|
1c29f7db86 | ||
|
bfb112653c | ||
|
7a5534ac75 | ||
|
1bbf522c01 | ||
|
95496eedab | ||
|
13effc62f8 | ||
|
975564c566 | ||
|
8e4c7f1017 | ||
|
e2d58b98e4 | ||
|
26e06cc151 | ||
|
90bf076dfc | ||
|
dcfee86e79 | ||
|
a3ca9927db | ||
|
d114a05de3 | ||
|
fb7bff38de | ||
|
2a8300034c | ||
|
1b0d071e41 | ||
|
134b99fbb2 | ||
|
c3c9472eb4 | ||
|
5215a311fe | ||
|
d3dbcb9165 | ||
|
53734776f6 | ||
|
54451f955b | ||
|
2fbbd765c6 | ||
|
954aed181c | ||
|
da0ebd230f | ||
|
6fb06b865c | ||
|
ffe90cf9f7 | ||
|
d6a8a1d8a1 | ||
|
7fd064ce86 | ||
|
20f6d63e2b | ||
|
bd4c1e3006 | ||
|
0a1e04b9f2 | ||
|
977b8b34ad | ||
|
caf809b1d5 | ||
|
d532c3b5bd | ||
|
952ab53219 | ||
|
e44c30c64e | ||
|
41f0cda558 | ||
|
552d300345 | ||
|
1143708578 | ||
|
aa817e83cf | ||
|
1bb34e22a6 | ||
|
dd18228f7d | ||
|
a78acf275d | ||
|
8ace9d57c0 | ||
|
0c248ecda3 | ||
|
04b7095098 | ||
|
d97efcbab3 | ||
|
52e3343bbb | ||
|
ab87b19a87 | ||
|
3426979ddf | ||
|
3f7b4894a7 | ||
|
e0390d0bdb | ||
|
5848db0ab8 | ||
|
ffb7bab285 | ||
|
f3b8a3bfa3 | ||
|
b182064bef | ||
|
f23ff69f86 | ||
|
e25c35e363 | ||
|
12842d4a5d | ||
|
a02130583a | ||
|
582e9666ed | ||
|
0ce637dcda | ||
|
9f7c9e309a | ||
|
2ce759172c | ||
|
8ecb8c648e | ||
|
97fb6e215a | ||
|
1f8b2211dc | ||
|
e390275c1d | ||
|
30cc97b72e | ||
|
a1c7c48e57 | ||
|
040fd28c00 | ||
|
90eb3105b8 | ||
|
157d49eb57 | ||
|
58cc16c463 | ||
|
92f1b745f6 | ||
|
cf78829843 | ||
|
55ce7ddfc3 | ||
|
b84a5e83cb | ||
|
4a8f10e17d | ||
|
309e515899 | ||
|
eadec3171e | ||
|
bc21be9437 | ||
|
8e8e15c81a | ||
|
a139cd10bd | ||
|
d92acf00eb | ||
|
1566e72122 | ||
|
c282ffecac | ||
|
11b27f5d7f | ||
|
923966f191 | ||
|
f1064ee0bd | ||
|
743184f7be | ||
|
15041e6b96 | ||
|
cf4a1f5af2 | ||
|
b9a1a97057 | ||
|
69f3294d35 | ||
|
f2ecb762ea | ||
|
a2dd6b6ede | ||
|
4befe663b8 | ||
|
178d669519 | ||
|
04afcf114c | ||
|
d8cb439f29 | ||
|
d9bdc6ae51 | ||
|
572c6fe243 | ||
|
3a65a99375 | ||
|
5b313a54e2 | ||
|
04e3ce9865 | ||
|
96325cabed | ||
|
2bb0477ca0 | ||
|
bbbdc32ff4 | ||
|
24af7f9090 | ||
|
c9ec45a0e3 | ||
|
ea8db60185 | ||
|
44c159ca06 | ||
|
c382d2430b | ||
|
77bc095cb4 | ||
|
0412f2dcbc | ||
|
3f56243b9b | ||
|
f1b780f2e7 | ||
|
31639cf6d5 | ||
|
c5bbea55d2 | ||
|
d28a7ba29e | ||
|
13a3cadc66 | ||
|
2821e85d06 | ||
|
182d868560 | ||
|
8b06b71275 | ||
|
9138b6d929 | ||
|
55da87044b | ||
|
139ec6bfe7 | ||
|
c931ff9dad | ||
|
9e0bb28fcb | ||
|
e298b95f54 | ||
|
4ad22c8418 | ||
|
9f091b033c | ||
|
e5a4f11591 | ||
|
f925ee9336 | ||
|
174fd8ca69 | ||
|
da14f3201a | ||
|
70ca8ccdee | ||
|
a6bdf0d803 | ||
|
031d8707e6 | ||
|
e417298237 | ||
|
363bf09254 | ||
|
4e8ec61e11 | ||
|
e67a0a27b4 | ||
|
b06dab11cd | ||
|
0dc851870e | ||
|
bd6e9c6b12 | ||
|
9b05154f9e | ||
|
7a76ebf786 | ||
|
3b9b44454b | ||
|
655ba010d9 | ||
|
c6b84caa19 | ||
|
2aadb491e9 | ||
|
e6884fe334 | ||
|
7995c78fbf | ||
|
168c9879a0 | ||
|
99d383dca7 | ||
|
6a0153d46c | ||
|
cc9f3cfa0e | ||
|
006db23dab | ||
|
41c3e670d9 | ||
|
7fb4b8cfc8 | ||
|
15a87f7353 | ||
|
c9380eed86 | ||
|
15fc36c7d0 | ||
|
1592f18501 | ||
|
28b1fe7134 | ||
|
5e5cad6246 | ||
|
41f41a7c98 | ||
|
9cfd7972d9 | ||
|
cd5078fa95 | ||
|
1c34dbeba4 | ||
|
315fc252ca | ||
|
cc21d373b5 | ||
|
f3032f5a57 | ||
|
f7fb8e8959 | ||
|
fc151aaec0 | ||
|
1f66697807 | ||
|
8afbb3aecc | ||
|
b5a7498b86 | ||
|
97aaaaa663 | ||
|
e20c4d5a6f | ||
|
9e89bb327a | ||
|
db326ba242 | ||
|
47dc5f2527 | ||
|
4bfbd720eb | ||
|
44094b9175 | ||
|
79b46b851a | ||
|
883c4fd47e | ||
|
d7d3868b7f | ||
|
d620e52840 | ||
|
f069c35bca | ||
|
9741ce797e | ||
|
1044ff2981 | ||
|
d37f4a9e2d | ||
|
d8651610cc | ||
|
525b5f5dd3 | ||
|
8c880d262f | ||
|
d1451cd34f | ||
|
b0cf640a90 | ||
|
8751f075a1 | ||
|
2f3d51e7f4 | ||
|
d7d95ca4b6 | ||
|
e2c1e62662 | ||
|
c5f0106cd6 | ||
|
483cf18923 | ||
|
dab39259ab | ||
|
5ee34a9309 | ||
|
468a035b3e | ||
|
486c1d6f46 | ||
|
0958d303e9 | ||
|
a526f3eb07 | ||
|
42b6978464 | ||
|
5fe90fc2e8 | ||
|
1c4a8d2f9a | ||
|
6308175bc4 | ||
|
7a53f1fbc5 | ||
|
014ef86645 | ||
|
2dd6d5e049 | ||
|
0486bc809f | ||
|
de8e8a4079 | ||
|
20286952db | ||
|
17a3d8c2ea | ||
|
9fd51f90ef | ||
|
d807c55e94 | ||
|
88f4c9ec57 | ||
|
aa51a47238 | ||
|
ec4e719cd6 | ||
|
547d1a988d | ||
|
d57ae8c150 | ||
|
0c660b9e3a | ||
|
ea89242465 | ||
|
f1f051f491 | ||
|
de15f131bc | ||
|
48b14fe20b | ||
|
dfd778f392 | ||
|
74f4207916 | ||
|
4bfaa67fea | ||
|
70c01d5385 | ||
|
e759eff059 | ||
|
c9e146259d | ||
|
3c7f5898c0 | ||
|
5b7dc79ea0 | ||
|
8c17307f95 | ||
|
513ca1f4ba | ||
|
28ddd8d7d5 | ||
|
4b41a20552 | ||
|
82b52e11c3 | ||
|
538f3aaaea | ||
|
ffdcf51981 | ||
|
a812ef647e | ||
|
0b477b3ef1 | ||
|
da0ea43746 | ||
|
8afa18829a | ||
|
fa3bf612ea | ||
|
521e8aa38c | ||
|
c1ee00741d | ||
|
9127b8c30a | ||
|
41cad2ab96 | ||
|
6d2bd768c8 | ||
|
17eccd79dc | ||
|
def2378b7a | ||
|
9e39b598ad | ||
|
05cb27bb21 | ||
|
89e58b5105 | ||
|
0f1cce7ba2 | ||
|
2cba978c4d | ||
|
150c6dce28 | ||
|
ef97a06e99 | ||
|
48c5b12ec2 | ||
|
3c1f26970c | ||
|
20e97e50b3 | ||
|
e3616aa15c | ||
|
e7b99e4558 | ||
|
c02bdae45d | ||
|
4a8df258cd | ||
|
6b31c6f9e2 | ||
|
274fe74055 | ||
|
db827ac766 | ||
|
4d3a96536e | ||
|
cb7f47b637 | ||
|
6038eeee95 | ||
|
ce2930fb30 | ||
|
e86c1653d8 | ||
|
3efff4cb88 | ||
|
985f04d9ba | ||
|
6cf3424356 | ||
|
67e8c4d0a9 | ||
|
6c1e7ddfb2 | ||
|
99bf902a97 | ||
|
c9d3b931f7 | ||
|
d4871a1b6e | ||
|
1564f9cd05 | ||
|
aac61f746b | ||
|
348fe1182f | ||
|
96bb4ddd1d | ||
|
ec8049fcf5 | ||
|
e7b9fc8d16 | ||
|
8cc25d0fe4 | ||
|
cd62b5bedc | ||
|
9e9b76a6a9 | ||
|
5d4b0f6a7b | ||
|
a9622970cd | ||
|
2672abd9e0 | ||
|
9146caa7ae | ||
|
480bab002e | ||
|
2de8f84fb0 | ||
|
e01d563654 | ||
|
cc1368ba9e | ||
|
a63ea08036 | ||
|
b4c665d65a | ||
|
870feed3e2 | ||
|
ec1b9737d0 | ||
|
6b6bb2edce | ||
|
98c6f8974b | ||
|
f133ccbf40 | ||
|
b74ea4b14d | ||
|
7d2b751466 | ||
|
dd12b420e8 | ||
|
d25e78cefb | ||
|
8f64b37ee2 | ||
|
11fe964c46 | ||
|
8b3e8d11a8 | ||
|
eaefcc8a3f | ||
|
a412b6082a | ||
|
50b6ba8394 | ||
|
c1eea67020 | ||
|
f11e82495a | ||
|
5261bd8a89 | ||
|
b7777f405b | ||
|
1b4d215dd7 | ||
|
6c276e039c | ||
|
f354e38ec0 | ||
|
282bb25d73 | ||
|
44ea94f633 | ||
|
8f19269b34 | ||
|
3bfb699f09 | ||
|
591c89dcaa | ||
|
65895dcd33 | ||
|
ea6d6ce494 | ||
|
d734456470 | ||
|
eea70481fe | ||
|
ea9f209292 | ||
|
9717d3f69e | ||
|
1078096afe | ||
|
eab42cde10 | ||
|
c3d4426edd | ||
|
6a98a1f8aa | ||
|
9afb8c2b6d | ||
|
dc04777d5a | ||
|
3f9cc193b7 | ||
|
a40b3e341a | ||
|
2000faae13 | ||
|
28bd360291 | ||
|
3f60978f12 | ||
|
d8772033dd | ||
|
65c1bc4fd2 | ||
|
16f0d70b79 | ||
|
5188eda906 | ||
|
1ffd40e9de | ||
|
e8d4cc0cb0 | ||
|
c1ae413bcc | ||
|
d329354032 | ||
|
e2cd273303 | ||
|
b7770327f1 | ||
|
b8c9d22e4c | ||
|
2b2f2d70ab | ||
|
c81eb4cfa6 | ||
|
221a419640 | ||
|
f1b08404b8 | ||
|
28fc684ff9 | ||
|
cb402d63de | ||
|
865083f801 | ||
|
b70612a236 | ||
|
340a8a9e73 | ||
|
39787f3608 | ||
|
f2831c4a36 | ||
|
6a5466cff1 | ||
|
fbf97b4ef0 | ||
|
cfdc80f823 | ||
|
1b9fa30106 | ||
|
99fc70333a | ||
|
dac872a3f7 | ||
|
94558a24fb | ||
|
1eeba48e51 | ||
|
70b8d10d2f | ||
|
95d7e3c5a9 | ||
|
647efb0b9b | ||
|
1ac4ac7302 | ||
|
af245c20be | ||
|
e51f6d2439 | ||
|
96b6186af1 | ||
|
cfdd73e2c4 | ||
|
e3c329b656 | ||
|
aab0c9dd62 | ||
|
42ef436373 | ||
|
8d231bde1d | ||
|
a5566f1e8e | ||
|
a3813c45a0 | ||
|
0c2b776e83 | ||
|
e65c2c7954 | ||
|
9ee1d8c391 | ||
|
4b62bd0dbc | ||
|
ca5f61a043 | ||
|
c2f1a759c3 | ||
|
71658e9cd3 | ||
|
685c0f7d39 | ||
|
0d7e53d834 | ||
|
791f33b9b7 | ||
|
ed9a66862f | ||
|
cc484c6d23 | ||
|
425be312a8 | ||
|
09bf9a7d65 | ||
|
c85677af86 | ||
|
8cf7585f01 | ||
|
be82b0f592 | ||
|
7a84e26713 | ||
|
ab14a7dba0 | ||
|
804b80bb94 | ||
|
2271acca98 | ||
|
1b792e51fb | ||
|
dcc1885175 | ||
|
29bbba1e0f | ||
|
1d5798b7d0 | ||
|
525dcd012f | ||
|
6a1d2cdd7b | ||
|
6a10f6d38f | ||
|
0121248145 | ||
|
fbe41916cb | ||
|
f64437a901 | ||
|
ddbbcb6c0f | ||
|
372c004139 | ||
|
277cf9f50f | ||
|
69032a489b | ||
|
2a8899bd4f | ||
|
0c33c34ab3 | ||
|
87b4b86756 | ||
|
93224a7bf4 | ||
|
1b743a18ea | ||
|
ffac1eec98 | ||
|
417adfe869 | ||
|
294abd9164 | ||
|
56a8b5698c | ||
|
3a77266255 | ||
|
8692907421 | ||
|
3e7445275a | ||
|
603ba80d41 | ||
|
d50c673144 | ||
|
60d18d4610 | ||
|
93764fd3d4 | ||
|
fce30bb8f1 | ||
|
7c3eb20866 | ||
|
322a32547f | ||
|
b7ec4c3294 | ||
|
2e7eef2694 | ||
|
4d5f020d44 | ||
|
ce0a7a882b | ||
|
0d07d50b91 | ||
|
32d5e2d8e9 | ||
|
e55bb43544 | ||
|
2c708426cc | ||
|
ecd57240d0 | ||
|
a6b41279d8 | ||
|
7d9c7855c2 | ||
|
17c1053de4 | ||
|
b56948f392 | ||
|
7850f8bd74 | ||
|
25a137c8c6 | ||
|
cdf5f42599 | ||
|
daf84945cb | ||
|
a83a587270 | ||
|
595ac8afa2 | ||
|
09ab82e9d0 | ||
|
87fd17de51 | ||
|
ec40c1c8d0 | ||
|
a0d5d4158b | ||
|
e7782a24bf | ||
|
5c890acd8a | ||
|
09dbde3104 | ||
|
e0a9d6cb9d | ||
|
19d41e6139 | ||
|
f2b6e399d4 | ||
|
d4fa1d1816 | ||
|
e01a0f00de | ||
|
4f4df208a9 | ||
|
62d458238d | ||
|
f80d76f069 | ||
|
cb475f78f9 | ||
|
0868bcbade | ||
|
ac1ffc70f8 | ||
|
fe43f3ddc6 | ||
|
3f85f1763b | ||
|
1fe2ba1ddc | ||
|
2543a28ce4 | ||
|
673cb4f847 | ||
|
2e6bd2290e | ||
|
1f5939c74a | ||
|
63509658f4 | ||
|
9fb3f40824 | ||
|
41728a6faf | ||
|
5f3631c6be | ||
|
ad5dcc9752 | ||
|
abdef6b13c | ||
|
205001dab8 | ||
|
1ba1541771 | ||
|
ef6a3db00f | ||
|
d8cde81519 | ||
|
a5ec351f6e | ||
|
4c95b9d483 | ||
|
90c12baba2 | ||
|
d3262def33 | ||
|
63a6c00152 | ||
|
aa13fb8472 | ||
|
21ab9dc521 | ||
|
40e8ab0c08 | ||
|
e09be4fd77 | ||
|
9f43cabb0a | ||
|
b5e303e711 | ||
|
706ff96060 | ||
|
6294cf99ff | ||
|
0ad98f7460 | ||
|
b22ef7765c | ||
|
2fce7d906c | ||
|
44abde0a0d | ||
|
e103c8cb4a | ||
|
ca871ef7fd | ||
|
bbd04d95a2 | ||
|
1944c4b4e8 | ||
|
913f7f2af2 | ||
|
9c6e895b0b | ||
|
1f74cc531e | ||
|
05fd4e7f64 | ||
|
74e480d41e | ||
|
b6a21b238f | ||
|
9b064a2d9b | ||
|
981ea8facf | ||
|
a934f08991 | ||
|
ce701fe0df | ||
|
91e07b125f | ||
|
2ec8a387a0 | ||
|
b594ebe2e7 | ||
|
4f213843ac | ||
|
cdcb0f8b99 | ||
|
9e0670934a | ||
|
f85f8cf234 | ||
|
7bad59bbdd | ||
|
030275f110 | ||
|
0d1d699881 | ||
|
a59b542fd6 | ||
|
aeedb30ca0 | ||
|
9efe53b3f5 | ||
|
3d8a3c0e69 | ||
|
c6eae9c6a3 | ||
|
135f617b33 | ||
|
64fafd5c2e | ||
|
72b64cb4f2 | ||
|
f6749f92de | ||
|
d2c32c103a | ||
|
777d431d9a | ||
|
2777cce402 | ||
|
3fe922b5f5 | ||
|
dd5e8aebb1 | ||
|
f7f1efa7df | ||
|
0df2608bb1 | ||
|
2912921b94 | ||
|
7dac73a69b | ||
|
90261acce1 | ||
|
12af26a582 | ||
|
f3e96bb902 | ||
|
565f1e2e53 | ||
|
b0ab8b3913 | ||
|
1de37be8c1 | ||
|
71a0838ac3 | ||
|
8765c50218 | ||
|
346417b032 | ||
|
14dd3801bf | ||
|
d9dc8f76ba | ||
|
0201a48e29 | ||
|
0f0f8d3d6f | ||
|
2971d1f90b | ||
|
5c6cef5ac8 | ||
|
152e0e26a9 | ||
|
ffd1b6cd6a | ||
|
48a7480fc5 | ||
|
c0f9ca2ab5 | ||
|
f30b0e34fb | ||
|
eadd577d84 | ||
|
60f7d52725 | ||
|
f474c5783f | ||
|
c466779d90 | ||
|
825711fcc7 | ||
|
47a163dcef | ||
|
fc24ba3f65 | ||
|
824469b329 | ||
|
5db9d0a105 | ||
|
88e30c29c4 | ||
|
50db62e9f4 | ||
|
78156b24d4 | ||
|
2a4af68e93 | ||
|
5bb17cb9ed | ||
|
7ba4197cbe | ||
|
26f47c8dd8 | ||
|
ca389f162a | ||
|
150dc70e53 | ||
|
8369b0ce86 | ||
|
ec9701cec2 | ||
|
0feae4d437 | ||
|
f8befaf7fa | ||
|
ca0d3d1dca | ||
|
7bcb2e7adb | ||
|
2f2045c5c8 | ||
|
526c93c453 | ||
|
e39c803fac | ||
|
00872dd69c | ||
|
fb6a771a44 | ||
|
f317ba0b0c | ||
|
c67647eb73 | ||
|
5420552434 | ||
|
748696d2bd | ||
|
1e1522ed25 | ||
|
abfee2d1b4 | ||
|
9a82696680 | ||
|
d7a1c87111 | ||
|
2e2178f595 | ||
|
90bd4d997c | ||
|
557a9e9899 | ||
|
50794f220a | ||
|
bb57db5f98 | ||
|
4afa857aee | ||
|
db0fd400e4 | ||
|
e6d0cbe554 | ||
|
c17a70e03f | ||
|
9d92d67b75 | ||
|
7f503dd5f1 | ||
|
81ffd32566 | ||
|
432cb9a889 | ||
|
dd4efb315a | ||
|
1979f90644 | ||
|
3a7d42fd2c | ||
|
bb565dbad1 | ||
|
e4caae5b65 | ||
|
c2bceff255 | ||
|
2741db55bd | ||
|
3b946491da | ||
|
0301a239d6 | ||
|
7c3d480e56 | ||
|
50b6b69053 | ||
|
cc1292a1ac | ||
|
3741c4fe33 | ||
|
744f67198c | ||
|
3d68d500d9 | ||
|
2bdc19de1a | ||
|
6a390b6b9a | ||
|
41293aeb8d | ||
|
26b52cdc49 | ||
|
cc5b91441d | ||
|
d31c55702c | ||
|
54b4500a85 | ||
|
87684b59a7 | ||
|
7e72d7770d | ||
|
73da458bc5 | ||
|
e12216c644 | ||
|
2ec0d480e3 | ||
|
c9bed78b65 | ||
|
7a419c031a | ||
|
723bc23e50 | ||
|
dc05c7f163 | ||
|
972842c50e | ||
|
f9c1ebaa12 | ||
|
2789fdcece | ||
|
1637f56db9 | ||
|
c501f9328f | ||
|
917b9ce280 | ||
|
82d94a776d | ||
|
75c5402c30 | ||
|
a9b0616fc8 | ||
|
ed7e1530b5 | ||
|
693e4d185b | ||
|
3a5f2b6be0 | ||
|
7641fa58b9 | ||
|
4b062e3f22 | ||
|
de353ee024 | ||
|
513952a066 | ||
|
78784bf5d3 | ||
|
f5cb09e9a4 | ||
|
c9da32b6b0 | ||
|
5eae92bf33 | ||
|
c3920efc17 | ||
|
475485ce5b | ||
|
d7bdce7fb6 | ||
|
e5b7f0c052 | ||
|
03554ec52b | ||
|
b0f0338a95 | ||
|
8308e3a332 | ||
|
a5bc6762f1 | ||
|
90d7c40949 | ||
|
52263be2fe | ||
|
1aa8b412df | ||
|
1ec6f34853 | ||
|
c213417376 | ||
|
393eed4e68 | ||
|
11f1207852 | ||
|
a05b7dc368 | ||
|
8d9d2558c9 | ||
|
f6dd7940f0 | ||
|
14ae97f5a2 | ||
|
677a246d22 | ||
|
6cc9038091 | ||
|
653547070d | ||
|
fdd2f4a7f3 | ||
|
1c01fe44d7 | ||
|
2c0583d002 | ||
|
a691cec6e7 | ||
|
f66b06739e | ||
|
92fc5f6141 | ||
|
d260e9e7c4 | ||
|
d0d310a271 | ||
|
305af53597 | ||
|
f09106e8c4 | ||
|
775e8675c1 | ||
|
463d01d3aa | ||
|
5a51c64426 | ||
|
7c793eb695 | ||
|
25e56dc257 | ||
|
749fc944fc | ||
|
9c556a5905 | ||
|
61769b2227 | ||
|
212f94bb9f | ||
|
514e29e7dc | ||
|
9414a2da0a | ||
|
3cf93b92fc | ||
|
35adc2a6f7 | ||
|
5661a76f20 | ||
|
953163c6ff | ||
|
7e6191a4cd | ||
|
621ece3c6f | ||
|
9c9639f3ae | ||
|
ade7c1e886 | ||
|
26699042ab | ||
|
1349af11e7 | ||
|
ca7325e83a | ||
|
3dd8fd35af | ||
|
cc459b2b4f | ||
|
aa07c4b087 | ||
|
79d612a5ad | ||
|
c554fa8396 | ||
|
2dcb4d2c27 | ||
|
4410ccbead | ||
|
2f5a9b7ba1 | ||
|
f9c393b4a8 | ||
|
4934857730 | ||
|
021356ceb0 | ||
|
6c4eb0bb53 | ||
|
36dafc95aa | ||
|
475489c79c | ||
|
110924352c | ||
|
09cb0884c5 | ||
|
07f9996abc | ||
|
d3d40b651b | ||
|
e63ff1be87 | ||
|
8cd730631b | ||
|
500d83235b | ||
|
971d304a1f | ||
|
6e3502a34b | ||
|
6039fad49e | ||
|
b7668e1d7a | ||
|
291d4468f7 | ||
|
34cab4fddf | ||
|
5a35178f86 | ||
|
71db25dc7d | ||
|
b757d6fe5c | ||
|
7336108ab8 | ||
|
90c872c5fe | ||
|
8a1c3d4d46 | ||
|
9e2db30661 | ||
|
18657270f8 | ||
|
414b6059ba | ||
|
90cccc00fb | ||
|
e8e7e9c09b | ||
|
1cbbc802af | ||
|
f0a3c3c2f4 | ||
|
ac0b4fe1ac | ||
|
69db736c0c | ||
|
413b5ee73f | ||
|
04467e7e68 | ||
|
5ee11fd2d6 | ||
|
6c9d5534cb | ||
|
014eb110f1 | ||
|
5ce94e4f43 | ||
|
9fb8420891 | ||
|
aada22c826 | ||
|
9efec7af28 | ||
|
b165863a60 | ||
|
4164b920d2 | ||
|
f8f2f10751 | ||
|
7787c66cc7 | ||
|
541cc8d086 | ||
|
05fbac8c95 | ||
|
e4d758a10b | ||
|
35bcebd562 | ||
|
e273769702 | ||
|
7f43d57d01 | ||
|
b585bfb7f4 | ||
|
6a19f586ea | ||
|
8634ed8ea4 | ||
|
339e6431d0 | ||
|
aaf0c7d2dc | ||
|
2616a89d50 | ||
|
4f5b5fa483 | ||
|
c4b33f044e | ||
|
f2f8ea98c5 | ||
|
fb86960b4f | ||
|
108cd9f304 | ||
|
7a36c29ef4 | ||
|
f062a5a3ba | ||
|
fa52b6489a | ||
|
e8107fe104 | ||
|
b4642f5151 | ||
|
e9da761795 | ||
|
acacbd588d | ||
|
ed22aea5bd | ||
|
6a81960f7a | ||
|
8fbca5cb69 | ||
|
97d1e27035 | ||
|
626c7fccd7 | ||
|
9882020ee6 | ||
|
7b26c74d54 | ||
|
a9a8b351ea | ||
|
d8de3eb6fa | ||
|
a5250a0fc4 | ||
|
7dae05d4de | ||
|
d35ca29434 | ||
|
4aabc285b9 | ||
|
421dcf31d5 | ||
|
2f26c3d624 | ||
|
f43cf8d682 | ||
|
68a575f319 | ||
|
c8164d802d | ||
|
d8aaa94042 | ||
|
297a301f35 | ||
|
0f73278955 | ||
|
299a2daeac | ||
|
969e9d5583 | ||
|
312800fa66 | ||
|
943405c277 | ||
|
d874e1323d | ||
|
773df03830 | ||
|
c5f802363f | ||
|
6aecd5a407 | ||
|
42f18b7237 | ||
|
4fb2477927 | ||
|
5ba46f55f2 | ||
|
774f0634ba | ||
|
797ead4b3c | ||
|
9a4a7e1cb3 | ||
|
6053bea2da | ||
|
c83e83b911 | ||
|
aaf6e38a98 | ||
|
b33ea6c233 | ||
|
f5abff47fb | ||
|
1a5b602120 | ||
|
7b90cca3d7 | ||
|
6bca298771 | ||
|
ba1bf62faa | ||
|
1598a4326e | ||
|
baae7829ff | ||
|
41b4bc29a0 | ||
|
1d0979cb9b | ||
|
b91cca8e61 | ||
|
130fbbe654 | ||
|
e536c2d707 | ||
|
6c26951aae | ||
|
cc1c1f12ae | ||
|
b1a5dfb1f7 | ||
|
3cd7f91608 | ||
|
752393bbe3 | ||
|
4c094dc57d | ||
|
5cab0e1b8f | ||
|
819a738d3d | ||
|
4caa3f834f | ||
|
749bdd1781 | ||
|
a118c9b4bd | ||
|
b0f0c3ea9f | ||
|
e272c49cd8 | ||
|
c51df83deb | ||
|
c45a17079d | ||
|
faf78575ac | ||
|
027b85ed1b | ||
|
9b303a4f82 | ||
|
4ff0b53021 | ||
|
04d674d9b6 | ||
|
e91e2daca4 | ||
|
ece1d51745 | ||
|
125673271d | ||
|
da7d2715d3 | ||
|
e2f635a164 | ||
|
9e6408add9 | ||
|
f6566f892d | ||
|
9c80cd53f9 | ||
|
f4e3d72fc1 | ||
|
15a19d27fc | ||
|
a8f3f9c4e4 | ||
|
3246faa114 | ||
|
4e4a8b7d32 | ||
|
cf5a6bdbf3 | ||
|
7e7a3881c4 | ||
|
023b7bd4cb | ||
|
ff169cd1b7 | ||
|
5f93d74102 | ||
|
ce3f41cee9 | ||
|
52453428f2 | ||
|
1c40aa1553 | ||
|
dad496036d | ||
|
fe0aa3f54d | ||
|
26b0797bcb | ||
|
bba9e118d9 | ||
|
0bc7ba983c | ||
|
a445ccf24f | ||
|
8680d3ff32 | ||
|
11341b00f6 | ||
|
0f9f7dc428 | ||
|
e2f3ff5808 | ||
|
3156ce7409 | ||
|
a7f0cf9bc7 | ||
|
1ccb2f1d1e | ||
|
19ff1ed17c | ||
|
be50941de6 | ||
|
3029f615d2 | ||
|
3385c78c50 | ||
|
9a0ba52594 | ||
|
717300b790 | ||
|
d447778cfb | ||
|
6fa663e823 | ||
|
16b62f6817 | ||
|
fa92b283ed | ||
|
2ae83d8d8e | ||
|
5f08af6906 | ||
|
13f3004ee7 | ||
|
183dabb19e | ||
|
e93cad00c3 | ||
|
6f776b5d61 | ||
|
534422e141 | ||
|
533f33055c | ||
|
96d0db4493 | ||
|
d8b9dc9636 | ||
|
03b7601b4c | ||
|
046a795ef1 | ||
|
69e14bd36b | ||
|
933eca8d41 | ||
|
7122276309 | ||
|
786742620a | ||
|
731a458cbe | ||
|
536e2fe646 | ||
|
e492b4c116 | ||
|
15815c9994 | ||
|
06af5d9963 | ||
|
4c1c303b62 | ||
|
5dc4aa102e | ||
|
4bc20dfb8e | ||
|
43bba1b164 | ||
|
4aa699f6ca | ||
|
45403d8669 | ||
|
850aa4fc6b | ||
|
ea409cf4fa | ||
|
d021d173a9 | ||
|
b038fac54d | ||
|
87c4528445 | ||
|
18524f3386 | ||
|
b2db6dedde | ||
|
f837eb03f6 | ||
|
6bd6d630b3 | ||
|
9087dedefc | ||
|
944a550aeb | ||
|
ce013a8a78 | ||
|
8d276fcfe1 | ||
|
7573e09b4a | ||
|
e54f90dd30 | ||
|
2403b551ea | ||
|
36fb39e545 | ||
|
18b484d778 | ||
|
0ee71b2abe | ||
|
dea02ac53a | ||
|
368f765134 | ||
|
ea59363fcb | ||
|
c50689ab09 | ||
|
2b2a8fac9a | ||
|
5748d714b1 | ||
|
7d225dbb57 | ||
|
5d5b230c5a | ||
|
1ca9157daa | ||
|
4b4ea9fd2e | ||
|
3d62769912 | ||
|
9b6f3ef459 | ||
|
e08596a770 | ||
|
399f43a3f2 | ||
|
cd729384de | ||
|
647f53b37e | ||
|
98334f6e19 | ||
|
281bf873aa | ||
|
1ff09d87c5 | ||
|
f9cb758cdc | ||
|
92ab0e4143 | ||
|
8f48583742 | ||
|
f84058ab42 | ||
|
489ccc88e6 | ||
|
196a06e3b6 | ||
|
e599595153 | ||
|
89e1de9267 | ||
|
3e8756078d | ||
|
f15cf20757 | ||
|
4b63027ca0 | ||
|
1f2bb7be5e | ||
|
bcf0e1d72d | ||
|
4a5b0ad90a | ||
|
644869d239 | ||
|
1896b3cd3b | ||
|
04e56f5acd | ||
|
420a6e0ba6 | ||
|
abc3892f41 | ||
|
c29548b4e2 | ||
|
dc0ef2893b | ||
|
202cf08f77 | ||
|
18ee5a9427 | ||
|
5f47470e86 | ||
|
46f1e23363 | ||
|
8b72d74b6f | ||
|
b0daaa4b96 | ||
|
9017db8694 | ||
|
2059944f48 | ||
|
73f8a0cbf5 | ||
|
4eb3d2d06c | ||
|
3fa9e6b400 | ||
|
c0f05edf66 | ||
|
26302e61a3 | ||
|
ca15d9aed6 | ||
|
ddfef57f82 | ||
|
c8a6c04975 | ||
|
1be929fbf9 | ||
|
935854b8a4 | ||
|
3b6dcb11c8 | ||
|
3f4ea42573 | ||
|
1f2cf52167 | ||
|
98fb8a1c69 | ||
|
dd68855d30 | ||
|
348f35a57e | ||
|
bb0d97b635 | ||
|
047f20598e | ||
|
3d582c05b6 | ||
|
49eb3fb9f2 | ||
|
e9a8aa66ce | ||
|
0b40eddf61 | ||
|
283dd7e35c | ||
|
c3a2198919 | ||
|
8ca12a7d01 | ||
|
81287a6b64 | ||
|
c28233c13e | ||
|
379cb257ae | ||
|
9561788866 | ||
|
df56f3b7dd | ||
|
bca05a6284 | ||
|
9af0621843 | ||
|
7154d8ae74 | ||
|
1e27c09f56 | ||
|
9060622885 | ||
|
d703791841 | ||
|
ddf264985b | ||
|
b6e1475678 | ||
|
77ae2f5dfe | ||
|
9a01f9973d | ||
|
5ea2e4b5e2 | ||
|
9032f33a16 | ||
|
afe4658dfc | ||
|
13cf73babe | ||
|
7efae8dc63 | ||
|
59a227fea5 | ||
|
7b41f47a27 | ||
|
2f48baf75b | ||
|
cdaf968aa6 | ||
|
f91056bdc2 | ||
|
ee4b0b868e | ||
|
46d3dece11 | ||
|
6e017c65e2 | ||
|
d018c5bad9 | ||
|
6431b62348 | ||
|
600d6d0b87 | ||
|
145e5212b3 | ||
|
799eed7336 | ||
|
b04636aa97 | ||
|
d270fde97f | ||
|
f609f42eed | ||
|
d39a62b810 | ||
|
8486f8265b | ||
|
f03602bcfd | ||
|
20d1c91c29 | ||
|
e6cf192b7b | ||
|
9d339630bb | ||
|
a8de052a24 | ||
|
846b29671f | ||
|
55e0e0ed4e | ||
|
020dc88b37 | ||
|
eb1e664c31 | ||
|
77a19f836f | ||
|
3a74d5cccc | ||
|
10354d4cb5 | ||
|
fe7b83a384 | ||
|
ad021f5462 | ||
|
e800cac340 | ||
|
91cd19237f | ||
|
1e0e9de2b0 | ||
|
802ebcbb91 | ||
|
2c3efe2faa | ||
|
2a3d9afece | ||
|
1c6691895b | ||
|
4dea282c90 | ||
|
845a4dd675 | ||
|
5bfc96a6a5 | ||
|
b8ab34f8d6 | ||
|
eccde841d5 | ||
|
22f1f858b1 | ||
|
ef427399da | ||
|
208b3c1d25 | ||
|
60632bb522 | ||
|
707a96d35a | ||
|
aa54f206eb | ||
|
6db9cf0e65 | ||
|
8727d25f6f | ||
|
02f52948f5 | ||
|
3f9af9fb49 | ||
|
e99ff32949 | ||
|
1f95d8181d | ||
|
e827cc078f | ||
|
80e51dcad6 | ||
|
10d9fda5f9 | ||
|
f69c6a545c | ||
|
a4d6e77557 | ||
|
5b691be2cc | ||
|
02eae9d5a0 | ||
|
a4dbc11aff | ||
|
f1121e3a1a | ||
|
ac83718ba8 | ||
|
603d7ca80e | ||
|
6b2cc4c58f | ||
|
a3d2b4b9e0 | ||
|
95bee0aa1e | ||
|
bc6f854478 | ||
|
0b33c39275 | ||
|
fce29b88da | ||
|
f6dd1f3d0d | ||
|
49bbdc5bf2 | ||
|
df034abacb | ||
|
d49ca49848 | ||
|
79843648fb | ||
|
63e82e5cd2 | ||
|
7e3381c7a3 | ||
|
cffa29b1ae | ||
|
dc95c57c20 | ||
|
a0a5084f55 | ||
|
386a2ce3ba | ||
|
86e6d52971 | ||
|
f7014738a8 | ||
|
4b95841bdb | ||
|
180fa60a17 | ||
|
32a0e9cc9e | ||
|
79861c20f1 | ||
|
bb0cece9a9 | ||
|
32148424bd | ||
|
5c72aff53e | ||
|
42afbafa33 | ||
|
9d3369d7a6 | ||
|
2bb1b96f06 | ||
|
2bfe73c2b7 | ||
|
8e2ab550d8 | ||
|
7f5e6044ee | ||
|
db0464c6f2 | ||
|
80455f2b22 | ||
|
ce40587ef4 | ||
|
4ad4f948c3 | ||
|
1fbebd0a1a | ||
|
1761c9534e | ||
|
b500367ff7 | ||
|
5721ee15c9 | ||
|
56264645ad | ||
|
113b554090 | ||
|
24c6b554c9 | ||
|
b861c5731d | ||
|
5d354c9b2a | ||
|
e8fee88c50 | ||
|
c2e8167d6d | ||
|
907d56238e | ||
|
674b998176 | ||
|
882b560d0d | ||
|
8df335170a | ||
|
2241ffdf4b | ||
|
dff7b6b562 | ||
|
cdb00a9e7a | ||
|
f7541123b5 | ||
|
6578707ac2 | ||
|
719c65ebb0 | ||
|
ddefcb372a | ||
|
c594bca17a | ||
|
3c33a592f6 | ||
|
4476d8af38 | ||
|
b216cdce2c | ||
|
fc086bb2bc | ||
|
772dfd9f5a | ||
|
b4d53a7344 | ||
|
e5c7fe8c18 | ||
|
fdc24226bf | ||
|
3886ee9fae | ||
|
229eb9bba5 | ||
|
1800d1f853 | ||
|
24d682fd91 | ||
|
979900f060 | ||
|
d094743650 | ||
|
2c9d2d8f64 | ||
|
457c0bf7e1 | ||
|
d2209c6ee0 | ||
|
84997e39ab | ||
|
ec9af72c77 | ||
|
01be545e92 | ||
|
bfb7d535af | ||
|
94813ecf3c | ||
|
b09ed0f3d2 | ||
|
807da03757 | ||
|
af447c6cfd | ||
|
aac5a0da53 | ||
|
7fede3cd56 | ||
|
43b781b453 | ||
|
d989770f24 | ||
|
036250b6da | ||
|
d787be6d20 | ||
|
c35db80eae | ||
|
4328f2e964 | ||
|
eecf7c4a68 | ||
|
4d01de8fcd | ||
|
f5ef032c89 | ||
|
f9eebd5599 | ||
|
48bbae3fb7 | ||
|
fdbc47e09e | ||
|
2b4093a0ea | ||
|
580ff7c1c5 | ||
|
454c09ddbe | ||
|
810202432b | ||
|
737eb1005a | ||
|
58eeb19b3e | ||
|
c8be20f3cf | ||
|
b6d34ea7d2 | ||
|
f6d14c47ec | ||
|
78d6102645 | ||
|
b862f600f5 | ||
|
e0b037b82a | ||
|
69b0f7ebd7 | ||
|
7c95fad661 | ||
|
67cc61ffca | ||
|
0df720506a | ||
|
68c91b3113 | ||
|
ac36f88de1 | ||
|
9fcd7e7113 | ||
|
903a8e54d4 | ||
|
3de6b17d8a | ||
|
74bd451363 | ||
|
22a1e1ff59 | ||
|
c781d177e1 | ||
|
f13c0f3cd8 | ||
|
9ebbbcfc9f | ||
|
d886426f50 | ||
|
d30bfe1a41 | ||
|
30825c59a9 | ||
|
7d03df647f | ||
|
a046f03792 | ||
|
b744f3d37b | ||
|
c52df465c1 | ||
|
09bfdcb009 | ||
|
2f449562d1 | ||
|
3c6c730333 | ||
|
809ee539f3 | ||
|
339892ffe6 | ||
|
2e7f83fbf8 | ||
|
9043eadbcb | ||
|
5386c7843d | ||
|
0675620019 | ||
|
552b6acf97 | ||
|
86c9842e64 | ||
|
d0e9447fb6 |
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
staging/wine
|
||||
*.pyc
|
||||
.patchupdate.cache
|
1319
LICENSE.md
Normal file
1319
LICENSE.md
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
327
README.md
327
README.md
@@ -1,19 +1,314 @@
|
||||
wine-compholio-daily
|
||||
====================
|
||||
What is Wine Staging?
|
||||
---------------------
|
||||
|
||||
Daily updates for the Wine "Compholio" Edition.
|
||||
**Wine Staging** is the testing area of winehq.org. It contains bug fixes and
|
||||
features, which have not been integrated into the development branch yet. The
|
||||
idea of Wine Staging is to provide experimental features faster to end users and
|
||||
to give developers the possibility to discuss and improve their patches before
|
||||
they are integrated into the main branch. More information about Wine Staging
|
||||
can also be found on our website [wine-staging.com](http://wine-staging.com).
|
||||
|
||||
Current patches include:
|
||||
* Support for interface change notifications (http://bugs.winehq.org/show_bug.cgi?id=32328)
|
||||
* Support for stored file ACLs (http://bugs.winehq.org/show_bug.cgi?id=31858)
|
||||
* Support for inherited file ACLs (http://bugs.winehq.org/show_bug.cgi?id=34406)
|
||||
* Support for Junction Points (http://bugs.winehq.org/show_bug.cgi?id=12401)
|
||||
* Support for TransmitFile (http://bugs.winehq.org/show_bug.cgi?id=5048)
|
||||
* Support for GetVolumePathName
|
||||
* Implement an Arial replacement font (http://bugs.winehq.org/show_bug.cgi?id=32323)
|
||||
* Allow CompareStringEx flag NORM_LINGUISTIC_CASING (http://bugs.winehq.org/show_bug.cgi?id=34269)
|
||||
* Workaround for TransactNamedPipe not being supported (http://bugs.winehq.org/show_bug.cgi?id=17273)
|
||||
* XEMBED support for embedding Wine windows inside Linux applications
|
||||
* Reduced SetTimer minimum value from 15 ms to 5 ms (improves Silverlight framerates)
|
||||
Although we are reviewing and testing all patches carefully before adding them,
|
||||
you may encounter additional bugs, which are not present in the development
|
||||
branch. Do not hesitate to report such issues at winehq.org, so they can be
|
||||
fixed before the feature gets integrated.
|
||||
|
||||
|
||||
How to install and use Wine Staging
|
||||
-----------------------------------
|
||||
|
||||
Ready-to-use packages for Wine Staging are available for a variety
|
||||
of different Linux distributions directly for download. Just follow the
|
||||
instructions available on the
|
||||
[Wiki](https://github.com/wine-compholio/wine-staging/wiki/Installation).
|
||||
|
||||
When using Wine Staging there are a few differences compared to regular
|
||||
Wine. The main difference is that it is not sufficient to type `wine` to
|
||||
run it, but instead you will have to type `/opt/wine-staging/bin/wine`.
|
||||
Besides that there are also some other differences, for example additional
|
||||
configuration options to tweak performance, which are not available in regular
|
||||
Wine. All those differences are also documented on the
|
||||
[Wiki](https://github.com/wine-compholio/wine-staging/wiki/Usage).
|
||||
|
||||
|
||||
Included bug fixes and improvements
|
||||
-----------------------------------
|
||||
|
||||
**Bug fixes and features in Wine Staging 1.8 [268]:**
|
||||
|
||||
*Note: The following list only contains features and bug fixes which are not
|
||||
yet available in vanilla Wine. They are removed from the list as soon as they
|
||||
are included upstream. The list also includes features and fixes from previous
|
||||
releases, take a look at the
|
||||
[changelog](https://github.com/wine-compholio/wine-staging/blob/master/staging/changelog)
|
||||
for more details.*
|
||||
|
||||
* Add IDragSourceHelper stub interface ([Wine Bug #24699](https://bugs.winehq.org/show_bug.cgi?id=24699))
|
||||
* Add IHTMLLocation::hash property's getter implementation ([Wine Bug #32967](https://bugs.winehq.org/show_bug.cgi?id=32967))
|
||||
* Add a ProfileList\<UserSID> registry subkey ([Wine Bug #15670](https://bugs.winehq.org/show_bug.cgi?id=15670))
|
||||
* Add a stub driver for tdi.sys ([Wine Bug #35693](https://bugs.winehq.org/show_bug.cgi?id=35693))
|
||||
* Add implementation for comctl32.PROPSHEET_InsertPage. ([Wine Bug #25625](https://bugs.winehq.org/show_bug.cgi?id=25625))
|
||||
* Add implementation for mfplat.MFTEnum ([Wine Bug #39309](https://bugs.winehq.org/show_bug.cgi?id=39309))
|
||||
* Add implementation for mfplat.MFTRegister ([Wine Bug #37811](https://bugs.winehq.org/show_bug.cgi?id=37811))
|
||||
* Add implementation for msidb commandline tool
|
||||
* Add implementation for shlwapi.AssocGetPerceivedType
|
||||
* Add nvapi stubs required for GPU PhysX support
|
||||
* Add performance library registry keys needed by MS SQL Server Management Studio Express 2008 R2 ([Wine Bug #33661](https://bugs.winehq.org/show_bug.cgi?id=33661))
|
||||
* Add semi-stub for FileFsVolumeInformation information class ([Wine Bug #21466](https://bugs.winehq.org/show_bug.cgi?id=21466))
|
||||
* Add shell32 placeholder icons to match offsets with Windows ([Wine Bug #30185](https://bugs.winehq.org/show_bug.cgi?id=30185))
|
||||
* Add stub dlls required for MSVC 2015 runtime library (Windows 10)
|
||||
* Add stub for D3DXComputeNormalMap
|
||||
* Add stub for D3DXFrameFind ([Wine Bug #38334](https://bugs.winehq.org/show_bug.cgi?id=38334))
|
||||
* Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268))
|
||||
* Add stub for SetCoalescableTimer ([Wine Bug #39509](https://bugs.winehq.org/show_bug.cgi?id=39509))
|
||||
* Add stub for ntoskrnl.ExAcquireResourceExclusiveLite
|
||||
* Add stub for ntoskrnl.ExDeleteResourceLite
|
||||
* Add stub for ntoskrnl.ExReleaseResourceForThread
|
||||
* Add stub for ntoskrnl.KeWaitForMultipleObjects ([Wine Bug #32186](https://bugs.winehq.org/show_bug.cgi?id=32186))
|
||||
* Add stub for ntoskrnl.Mm{Map,Unmap}LockedPages
|
||||
* Add stub for ntoskrnl.PsRemoveLoadImageNotifyRoutine
|
||||
* Add stub for setupapi.SetupDiSelectBestCompatDrv ([Wine Bug #32088](https://bugs.winehq.org/show_bug.cgi?id=32088))
|
||||
* Add stub for wininet.ParseX509EncodedCertificateForListBoxEntry ([Wine Bug #29842](https://bugs.winehq.org/show_bug.cgi?id=29842))
|
||||
* Add 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 stub kernel32.FreeUserPhysicalPages ([Wine Bug #39543](https://bugs.winehq.org/show_bug.cgi?id=39543))
|
||||
* Add stubbed ISWbemSecurity interfaces in wbemdisp
|
||||
* Add stubs for D3DXCreateAnimationController interface
|
||||
* Add stubs for additional wininet options in InternetSetOption
|
||||
* Add stubs for advapi32.RegCreateKeyTransacted[A/W]
|
||||
* 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 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 debug registers separately in NtSetContextThread ([Wine Bug #39454](https://bugs.winehq.org/show_bug.cgi?id=39454))
|
||||
* Allow to set pixel format for desktop window
|
||||
* Allow to specify default display frequency in registry
|
||||
* Also send WM_CAPTURECHANGE when capture has not changed ([Wine Bug #13683](https://bugs.winehq.org/show_bug.cgi?id=13683))
|
||||
* Always use 64-bit registry view on WOW64 setups
|
||||
* Anno 1602 installer depends on Windows 98 behavior of SHFileOperationW ([Wine Bug #37916](https://bugs.winehq.org/show_bug.cgi?id=37916))
|
||||
* Assign a drive serial number during prefix creation/update ([Wine Bug #17823](https://bugs.winehq.org/show_bug.cgi?id=17823))
|
||||
* Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](https://bugs.winehq.org/show_bug.cgi?id=30639))
|
||||
* Avoid crashing when broken app tries to release surface although refcount is zero ([Wine Bug #18477](https://bugs.winehq.org/show_bug.cgi?id=18477))
|
||||
* Avoid race-conditions in NtReadFile() operations with write watches.
|
||||
* Avoid race-conditions of async WSARecv() operations with write watches.
|
||||
* Avoid race-conditions with write watches in WS2_async_accept.
|
||||
* Basic handling of write watches triggered while we're on the signal stack.
|
||||
* Basic support for CUDA
|
||||
* Black & White needs DXTn software decoding support ([Wine Bug #14939](https://bugs.winehq.org/show_bug.cgi?id=14939))
|
||||
* CPU-Z fails to start because GetLogicalProcessorInformationEx returns FALSE
|
||||
* Calculate msvcrt exponential math operations with higher precision ([Wine Bug #37149](https://bugs.winehq.org/show_bug.cgi?id=37149))
|
||||
* Catch invalid memory accesses in imagehlp.CheckSumMappedFile
|
||||
* Check architecture before trying to load libraries ([Wine Bug #38021](https://bugs.winehq.org/show_bug.cgi?id=38021))
|
||||
* Check handle type for HSPFILEQ handles ([Wine Bug #12332](https://bugs.winehq.org/show_bug.cgi?id=12332))
|
||||
* Codepage conversion should fail when destination length is < 0
|
||||
* CompareString should abort on first non-matching character ([Wine Bug #37556](https://bugs.winehq.org/show_bug.cgi?id=37556))
|
||||
* Create Microsoft\Windows\Themes directory during Wineprefix creation ([Wine Bug #34910](https://bugs.winehq.org/show_bug.cgi?id=34910))
|
||||
* Create stub files for system32/drivers/etc/{services,hosts,networks,protocol} ([Wine Bug #12076](https://bugs.winehq.org/show_bug.cgi?id=12076))
|
||||
* CreateProcess does not prioritize the working directory over the system search path ([Wine Bug #23934](https://bugs.winehq.org/show_bug.cgi?id=23934))
|
||||
* D3DCompileShader should filter specific warning messages ([Wine Bug #33770](https://bugs.winehq.org/show_bug.cgi?id=33770))
|
||||
* Do not allow interruption of system APC in server_select ([Wine Bug #14697](https://bugs.winehq.org/show_bug.cgi?id=14697))
|
||||
* Do not allow to deallocate thread stack for current thread
|
||||
* Do not fail when a used context is passed to wglShareLists ([Wine Bug #11436](https://bugs.winehq.org/show_bug.cgi?id=11436))
|
||||
* Do not hold reference on parent process in wineserver ([Wine Bug #37087](https://bugs.winehq.org/show_bug.cgi?id=37087))
|
||||
* Do not signal threads until they are really gone
|
||||
* Do not use unixfs for devices without mountpoint
|
||||
* Do not wait for hook thread startup in IDirectInput8::Initialize ([Wine Bug #21403](https://bugs.winehq.org/show_bug.cgi?id=21403))
|
||||
* Ensure NtProtectVirtualMemory and NtCreateSection are on separate pages ([Wine Bug #33162](https://bugs.winehq.org/show_bug.cgi?id=33162))
|
||||
* Ensure default route IP addresses are returned first in gethostbyname ([Wine Bug #22819](https://bugs.winehq.org/show_bug.cgi?id=22819))
|
||||
* 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
|
||||
* 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 broken textures in XIII Century: Death or Glory ([Wine Bug #25419](https://bugs.winehq.org/show_bug.cgi?id=25419))
|
||||
* Fix calculation of listbox size when horizontal scrollbar is present ([Wine Bug #38142](https://bugs.winehq.org/show_bug.cgi?id=38142))
|
||||
* Fix caps lock state issues with multiple processes ([Wine Bug #35907](https://bugs.winehq.org/show_bug.cgi?id=35907))
|
||||
* Fix comparison of punctuation characters in lstrcmp ([Wine Bug #10767](https://bugs.winehq.org/show_bug.cgi?id=10767))
|
||||
* Fix condition mask handling in RtlVerifyVersionInfo ([Wine Bug #36143](https://bugs.winehq.org/show_bug.cgi?id=36143))
|
||||
* Fix crash in Space Rangers2 caused by missing DXTn support ([Wine Bug #24983](https://bugs.winehq.org/show_bug.cgi?id=24983))
|
||||
* Fix crash of winedevice when relocation entry crosses page boundary ([Wine Bug #28254](https://bugs.winehq.org/show_bug.cgi?id=28254))
|
||||
* 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 error handling in DeferWindowPos when passing an invalid HWND ([Wine Bug #23187](https://bugs.winehq.org/show_bug.cgi?id=23187))
|
||||
* Fix font loading in Capella ([Wine Bug #12377](https://bugs.winehq.org/show_bug.cgi?id=12377))
|
||||
* Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](https://bugs.winehq.org/show_bug.cgi?id=16550))
|
||||
* Fix for programs leaking wndproc slots ([Wine Bug #32451](https://bugs.winehq.org/show_bug.cgi?id=32451))
|
||||
* Fix graphical corruption in FarCry 3 with NVIDIA drivers ([Wine Bug #35062](https://bugs.winehq.org/show_bug.cgi?id=35062))
|
||||
* Fix 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 window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED ([Wine Bug #37876](https://bugs.winehq.org/show_bug.cgi?id=37876))
|
||||
* Fix implementation of NtQueryInformationProcess for ProcessDebugFlags
|
||||
* Fix implementation of msvcrt.close when stdout == stderr
|
||||
* Fix issue causing applications to report magic loopback address instead of real IP ([Wine Bug #37271](https://bugs.winehq.org/show_bug.cgi?id=37271))
|
||||
* 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 multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087))
|
||||
* Fix possible leak of explorer.exe processes and implement proper desktop refcounting
|
||||
* Fix possible segfault in pulse_rd_loop of PulseAudio backend
|
||||
* Fix race-condition when threads are killed during shutdown
|
||||
* Fix return value of ScrollWindowEx for invisible windows ([Wine Bug #37706](https://bugs.winehq.org/show_bug.cgi?id=37706))
|
||||
* Fix scaling behaviour of images and mipmap levels in IDirect3DTexture2_Load (needed for example by Prezzie Hunt)
|
||||
* Fix texture corruption in CSI: Fatal Conspiracy ([Wine Bug #33768](https://bugs.winehq.org/show_bug.cgi?id=33768))
|
||||
* Fix the initialization of combined DACLs when the new DACL is empty ([Wine Bug #38423](https://bugs.winehq.org/show_bug.cgi?id=38423))
|
||||
* Fix unintentional leaks with ntdll internals
|
||||
* Fix wrong colors in Wolfenstein (2009) ([Wine Bug #34692](https://bugs.winehq.org/show_bug.cgi?id=34692))
|
||||
* Fix wrong defition of ntoskrnl.IoReleaseCancelSpinLock function.
|
||||
* Fix wrong version of ID3DXEffect interface for d3dx9_24
|
||||
* Fix wrong version of ID3DXEffect interface for d3dx9_25 ([Wine Bug #25138](https://bugs.winehq.org/show_bug.cgi?id=25138))
|
||||
* GetMessage should remove already seen messages with higher priority ([Wine Bug #28884](https://bugs.winehq.org/show_bug.cgi?id=28884))
|
||||
* GetMonitorInfo returns the same name for all monitors ([Wine Bug #37709](https://bugs.winehq.org/show_bug.cgi?id=37709))
|
||||
* GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](https://bugs.winehq.org/show_bug.cgi?id=15980))
|
||||
* Globally invalidate key state on changes in other threads ([Wine Bug #29871](https://bugs.winehq.org/show_bug.cgi?id=29871))
|
||||
* Graphical issues in Inquisitor ([Wine Bug #32490](https://bugs.winehq.org/show_bug.cgi?id=32490))
|
||||
* Ignore socket type for protocol IPPROTO_IPV6 in getaddrinfo
|
||||
* Implement AMStream GetMultiMediaStream functions ([Wine Bug #37090](https://bugs.winehq.org/show_bug.cgi?id=37090))
|
||||
* Implement D3DXGetShaderOutputSemantics
|
||||
* Implement DDENUMSURFACES_CANBECREATED in IDirectDraw7::EnumSurfaces ([Wine Bug #17233](https://bugs.winehq.org/show_bug.cgi?id=17233))
|
||||
* Implement FileNamesInformation class support for NtQueryDirectoryFile
|
||||
* Implement FolderImpl_Items and stubbed FolderItems interface
|
||||
* Implement ID3DXEffect::FindNextValidTechnique ([Wine Bug #34101](https://bugs.winehq.org/show_bug.cgi?id=34101))
|
||||
* Implement SystemHandleInformation info class
|
||||
* Implement a Courier New replacement font ([Wine Bug #20456](https://bugs.winehq.org/show_bug.cgi?id=20456))
|
||||
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](https://bugs.winehq.org/show_bug.cgi?id=13829))
|
||||
* Implement a Times New Roman replacement font ([Wine Bug #32342](https://bugs.winehq.org/show_bug.cgi?id=32342))
|
||||
* Implement additional stub functions in authz.dll
|
||||
* Implement an Arial replacement font ([Wine Bug #32323](https://bugs.winehq.org/show_bug.cgi?id=32323))
|
||||
* Implement default homepage button in inetcpl.cpl
|
||||
* Implement dinput device property DIPROP_USERNAME ([Wine Bug #39667](https://bugs.winehq.org/show_bug.cgi?id=39667))
|
||||
* Implement enumeration of sound devices and basic properties to dxdiagn ([Wine Bug #32613](https://bugs.winehq.org/show_bug.cgi?id=32613))
|
||||
* Implement exclusive mode in PulseAudio backend ([Wine Bug #37042](https://bugs.winehq.org/show_bug.cgi?id=37042))
|
||||
* Implement general tab for file property dialog
|
||||
* Implement hal.KeQueryPerformanceCounter ([Wine Bug #39500](https://bugs.winehq.org/show_bug.cgi?id=39500))
|
||||
* Implement locking and synchronization of key states ([Wine Bug #31899](https://bugs.winehq.org/show_bug.cgi?id=31899))
|
||||
* Implement marshalling for TKIND_COCLASS ([Wine Bug #19016](https://bugs.winehq.org/show_bug.cgi?id=19016))
|
||||
* 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 ProcessQuotaLimits info class
|
||||
* Implement stub for hid.HidP_TranslateUsagesToI8042ScanCodes ([Wine Bug #39447](https://bugs.winehq.org/show_bug.cgi?id=39447))
|
||||
* Implement stub for ntoskrnl.IoGetAttachedDeviceReference
|
||||
* Implement stub for ntoskrnl.KeDelayExecutionThread.
|
||||
* Implement stubless proxies on x86_64 ([Wine Bug #26768](https://bugs.winehq.org/show_bug.cgi?id=26768))
|
||||
* Implement stubs for ntoskrnl.Ex{Acquire,Release}FastMutexUnsafe
|
||||
* Implement stubs for ntoskrnl.ObReferenceObjectByPointer and ntoskrnl.ObDereferenceObject
|
||||
* Implement support for "Purist Mode" (override for all dlls)
|
||||
* Improve INetFwAuthorizedApplication::get_ProcessImageFileName stub
|
||||
* Improve ReadDataAvailable handling in FilePipeLocalInformation class
|
||||
* Improve detection of symbol charset for old truetype fonts ([Wine Bug #33117](https://bugs.winehq.org/show_bug.cgi?id=33117))
|
||||
* 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
|
||||
* Initial implementation of wusa.exe (MSU package installer) ([Wine Bug #26757](https://bugs.winehq.org/show_bug.cgi?id=26757))
|
||||
* 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))
|
||||
* MSYS2 expects correct handling of WRITECOPY memory protection ([Wine Bug #35561](https://bugs.winehq.org/show_bug.cgi?id=35561))
|
||||
* Make ddraw1 and ddraw_surface1 vtable as writable ([Wine Bug #39534](https://bugs.winehq.org/show_bug.cgi?id=39534))
|
||||
* Make it possible to change media center / tablet pc status ([Wine Bug #18732](https://bugs.winehq.org/show_bug.cgi?id=18732))
|
||||
* Map EXDEV error code to STATUS_NOT_SAME_DEVICE
|
||||
* MediaCoder needs CUDA for video encoding ([Wine Bug #37664](https://bugs.winehq.org/show_bug.cgi?id=37664))
|
||||
* Multiple applications need EnumDisplayDevicesW implementation ([Wine Bug #34978](https://bugs.winehq.org/show_bug.cgi?id=34978))
|
||||
* Need for Speed 3 installer requires devices in HKEY_DYN_DATA ([Wine Bug #7115](https://bugs.winehq.org/show_bug.cgi?id=7115))
|
||||
* 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
|
||||
* Properly close sockets when WSACleanup is called ([Wine Bug #18670](https://bugs.winehq.org/show_bug.cgi?id=18670))
|
||||
* Properly handle multiple registry notifications per key
|
||||
* Properly implement GetLargestConsoleWindowSize ([Wine Bug #10919](https://bugs.winehq.org/show_bug.cgi?id=10919))
|
||||
* 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)
|
||||
* Refresh MDI menus when DefMDIChildProc(WM_SETTEXT) is called ([Wine Bug #21855](https://bugs.winehq.org/show_bug.cgi?id=21855))
|
||||
* Report correct ObjectName for NamedPipe wineserver objects
|
||||
* Return STATUS_INVALID_DEVICE_REQUEST when trying to call NtReadFile on directory
|
||||
* Return WN_NOT_CONNECTED from WNetGetUniversalName REMOTE_NAME_INFO_LEVEL stub ([Wine Bug #39452](https://bugs.winehq.org/show_bug.cgi?id=39452))
|
||||
* Return a valid mesh in D3DXCreateTeapot ([Wine Bug #36884](https://bugs.winehq.org/show_bug.cgi?id=36884))
|
||||
* Return 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 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
|
||||
* 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 FIXME message in surface_cpu_blt
|
||||
* Silence repeated LocaleNameToLCID/LCIDToLocaleName unsupported flags FIXMEs ([Wine Bug #30076](https://bugs.winehq.org/show_bug.cgi?id=30076))
|
||||
* 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)
|
||||
* Start SERVICE_FILE_SYSTEM_DRIVER services with winedevice ([Wine Bug #35824](https://bugs.winehq.org/show_bug.cgi?id=35824))
|
||||
* 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 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 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 GetFinalPathNameByHandle ([Wine Bug #34851](https://bugs.winehq.org/show_bug.cgi?id=34851))
|
||||
* 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))
|
||||
* Support for Junction Points ([Wine Bug #12401](https://bugs.winehq.org/show_bug.cgi?id=12401))
|
||||
* Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath ([Wine Bug #30385](https://bugs.winehq.org/show_bug.cgi?id=30385))
|
||||
* Support for 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 SHCreateSessionKey ([Wine Bug #35630](https://bugs.winehq.org/show_bug.cgi?id=35630))
|
||||
* Support for WTSEnumerateProcessesW ([Wine Bug #29903](https://bugs.winehq.org/show_bug.cgi?id=29903))
|
||||
* Support for extra large and jumbo icon lists in shell32 ([Wine Bug #24721](https://bugs.winehq.org/show_bug.cgi?id=24721))
|
||||
* Support for inherited file ACLs
|
||||
* Support for linux priority levels for faster performance
|
||||
* Support for loader dll redirections
|
||||
* Support for named pipe message mode (Linux only) ([Wine Bug #17195](https://bugs.winehq.org/show_bug.cgi?id=17195))
|
||||
* Support for pasting HTML from Unix applications ([Wine Bug #7372](https://bugs.winehq.org/show_bug.cgi?id=7372))
|
||||
* Support for process ACLs ([Wine Bug #22006](https://bugs.winehq.org/show_bug.cgi?id=22006))
|
||||
* Support for setcap on wine-preloader ([Wine Bug #26256](https://bugs.winehq.org/show_bug.cgi?id=26256))
|
||||
* Support for shell32 file operation progress dialog
|
||||
* Support for stored file ACLs ([Wine Bug #33576](https://bugs.winehq.org/show_bug.cgi?id=33576))
|
||||
* Support for ws2_32.dll.WSAPoll ([Wine Bug #38601](https://bugs.winehq.org/show_bug.cgi?id=38601))
|
||||
* 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 video memory for rendering targets if possible ([Wine Bug #34906](https://bugs.winehq.org/show_bug.cgi?id=34906))
|
||||
* Use wrapper functions for syscalls to appease Chromium sandbox (32-bit) ([Wine Bug #39403](https://bugs.winehq.org/show_bug.cgi?id=39403))
|
||||
* Voobly expects correct handling of WRITECOPY memory protection ([Wine Bug #29384](https://bugs.winehq.org/show_bug.cgi?id=29384))
|
||||
* Wine ignores IDF_CHECKFIRST flag in SetupPromptForDisk ([Wine Bug #20465](https://bugs.winehq.org/show_bug.cgi?id=20465))
|
||||
* Workaround for shlwapi URLs with relative paths
|
||||
* Support for PulseAudio backend for audio
|
||||
* XEMBED support for embedding Wine windows inside Linux applications
|
||||
* eRacer Demo doesn't correctly display text ([Wine Bug #29598](https://bugs.winehq.org/show_bug.cgi?id=29598))
|
||||
* ntdll is missing WinSqm[Start|End]Session implementation ([Wine Bug #31971](https://bugs.winehq.org/show_bug.cgi?id=31971))
|
||||
|
||||
|
141
debian/changelog
vendored
141
debian/changelog
vendored
@@ -1,141 +0,0 @@
|
||||
wine-compholio (1.7.15) unstable; urgency=low
|
||||
* Fixed build dependencies for Debian Sid.
|
||||
* Fixed free() of a const variable (Bug #1).
|
||||
* Removed get_dir_unix_fd (no longer used, fixes compiling with "-Werror").
|
||||
* Removed 'register user administrative tools shell folder' patch (accepted upstream).
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sun, 23 Mar 2014 12:53:32 +0100
|
||||
|
||||
wine-compholio (1.7.14) unstable; urgency=low
|
||||
* Minor updates to the ACL patches.
|
||||
* Added Liberation Sans (SIL Open Font License) as an Arial replacement.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 07 Mar 2014 13:59:11 -0700
|
||||
|
||||
wine-compholio (1.7.13-1) unstable; urgency=low
|
||||
* Fixed a typo in the configure check for extended attributes.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 21 Feb 2014 09:00:00 -0700
|
||||
|
||||
wine-compholio (1.7.13) unstable; urgency=low
|
||||
* Added support for inherited file ACLs.
|
||||
* Further separated the file ACL patches.
|
||||
* Updated linguistic casing patches to include tests.
|
||||
* Updated the patch list template to be compatible with 'git am'.
|
||||
* Moved the patching code out of the debian rules into a Makefile.
|
||||
* Removed the named pipe security access patch (accepted upstream).
|
||||
* Explicitly run configure with '--with-xattr' when building debian packages.
|
||||
* Will now fail on configure when '--with-xattr' is passed and xattr.h cannot be found.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Thu, 20 Feb 2014 18:48:03 -0700
|
||||
|
||||
wine-compholio (1.7.12-1) unstable; urgency=low
|
||||
* Fixed PulseAudio patches to apply with 'git am'.
|
||||
* Fixed PulseAudio driver configure file for upstream Wine 1.7.12.
|
||||
* Fixed PulseAudio driver pthread dependency for upstream Wine 1.7.12.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 07 Feb 2014 17:52:32 -0700
|
||||
|
||||
wine-compholio (1.7.12) unstable; urgency=low
|
||||
* Added new patches to support GetVolumePathName.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 07 Feb 2014 14:57:33 -0700
|
||||
|
||||
wine-compholio (1.7.11) unstable; urgency=low
|
||||
* Added SRWLock patch.
|
||||
* Added new patches to support TransmitFile.
|
||||
* Added new patches to support Junction Points.
|
||||
* Moved pipelight-specific patches to a separate folder.
|
||||
* Removed SRWLock patch included in upstream Wine 1.7.11.
|
||||
* Reduced SetTimer minimum limitation from 15 ms to 5 ms.
|
||||
* Added support for security access parameters for named pipes.
|
||||
* Added WINE_STRICT_DRAW_ORDERING command line environment variable.
|
||||
* Fixed a path length bug in the ACL inheritance patch (assumed DOS limitation).
|
||||
* Added some workarounds for shlwapi url functions not handling relative paths well.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 17 Jan 2014 12:27:32 -0700
|
||||
|
||||
wine-compholio (1.7.10) unstable; urgency=low
|
||||
* Removed monitor enumeration patch included in upstream Wine 1.7.10.
|
||||
* Updated SIO_ADDRESS_LIST_CHANGE patch with latest proposed version.
|
||||
* Added new patch to support linux windowlessmode (required for Qt5 browsers).
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 03 Jan 2014 12:19:14 -0700
|
||||
|
||||
wine-compholio (1.7.9) unstable; urgency=low
|
||||
* Added a new patch for windowless mode for Qt5 browsers.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 27 Dec 2013 12:03:22 -0700
|
||||
|
||||
wine-compholio (1.7.8-1) unstable; urgency=low
|
||||
* Fixed several build problems.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sat, 07 Dec 2013 10:49:03 -0700
|
||||
|
||||
wine-compholio (1.7.8) unstable; urgency=low
|
||||
* Added PulseAudio support patches.
|
||||
* Updated SIO_ADDRESS_LIST_CHANGE patches.
|
||||
* Separated out patches into logical subfolders.
|
||||
* Updated XEMBED patch to work with latest upstream Wine.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 06 Dec 2013 13:26:24 -0700
|
||||
|
||||
wine-compholio (1.7.7) unstable; urgency=low
|
||||
* Remove patches included in upstream Wine 1.7.7.
|
||||
* Rebase ACL extended attribute patches against upstream Wine 1.7.7.
|
||||
* Rebase SIO_ADDRESS_LIST_CHANGE patches against upstream Wine 1.7.7.
|
||||
* Added the ability to return the list of patches with "wine --patches".
|
||||
* Added a patch to workaround a Silverlight issue with multiple monitors.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 22 Nov 2013 14:24:53 -0700
|
||||
|
||||
wine-compholio (1.7.6-1) unstable; urgency=low
|
||||
* Work around a build problem with Wine 1.7.6.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Tue, 12 Nov 2013 14:16:16 -0700
|
||||
|
||||
wine-compholio (1.7.6) unstable; urgency=low
|
||||
* Rebased VMR7 patches against upstream Wine 1.7.6.
|
||||
* Rebased SIO_ADDRESS_LIST_CHANGE patches against upstream Wine 1.7.6.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sun, 10 Nov 2013 17:26:30 -0700
|
||||
|
||||
wine-compholio (1.7.5-1) unstable; urgency=low
|
||||
* Included new patch to fix running TestOut under Silverlight.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Thu, 07 Nov 2013 11:18:23 -0700
|
||||
|
||||
wine-compholio (1.7.5) unstable; urgency=low
|
||||
* Rebased changes against upstream Wine 1.7.5.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Wed, 30 Oct 2013 08:05:51 -0600
|
||||
|
||||
wine-compholio (1.7.4-2) unstable; urgency=low
|
||||
* Updated XEmbed patches from Sebastian Lackner.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Mon, 28 Oct 2013 10:00:43 -0600
|
||||
|
||||
wine-compholio (1.7.4-1) unstable; urgency=low
|
||||
* Fix an issue with Ubuntu 13.10 post-install behavior.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sun, 13 Oct 2013 15:13:48 -0600
|
||||
|
||||
wine-compholio (1.7.4) unstable; urgency=low
|
||||
* Rebased changes against upstream Wine 1.7.4.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sat, 12 Oct 2013 13:30:33 -0600
|
||||
|
||||
wine-compholio (1.7.3) unstable; urgency=low
|
||||
* Removed patches already included in upstream Wine 1.7.3.
|
||||
* Rebased ACL extended attributes patch against upstream Wine 1.7.3.
|
||||
* Update SIO_ADDRESS_LIST_CHANGE patches to new server-based method.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Thu, 03 Oct 2013 15:16:26 -0600
|
||||
|
||||
wine-compholio (1.7.2) unstable; urgency=low
|
||||
* Rebased changes against upstream Wine 1.7.2.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Mon, 30 Sep 2013 12:21:43 -0600
|
||||
|
||||
wine-compholio (1.7.1) unstable; urgency=low
|
||||
* Rebased changes against upstream Wine 1.7.1.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Mon, 30 Sep 2013 11:42:34 -0600
|
||||
|
||||
wine-compholio (1.7.0-7) unstable; urgency=low
|
||||
* Updated all changed patches and backported upstream commits.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Mon, 30 Sep 2013 11:41:43 -0600
|
||||
|
||||
wine-compholio (1.7.0-6) unstable; urgency=low
|
||||
* Included fix for Watchever from Andreas Loibl.
|
||||
-- Erich E. Hoover <ehoover@mines.edu> Fri, 06 Sep 2013 16:33:33 -0600
|
||||
|
||||
wine-compholio (1.7.0-5) unstable; urgency=low
|
||||
* Updated patches for LOVEFiLM from Sebastian Lackner and Michael MĂĽller.
|
||||
-- Erich E. Hoover <ehoover@mines.edu> Fri, 06 Sep 2013 16:33:33 -0600
|
||||
|
||||
wine-compholio (1.7.0-4) unstable; urgency=low
|
||||
* Hopefully fixed build script problem.
|
||||
-- Erich E. Hoover <ehoover@mines.edu> Tue, 27 Aug 2013 09:51:15 -0600
|
||||
|
||||
wine-compholio (1.7.0-3) unstable; urgency=low
|
||||
* Added D3D acceleration fix from Michael MĂĽller.
|
||||
-- Erich E. Hoover <ehoover@mines.edu> Fri, 16 Apr 2010 12:20:00 -0600
|
1
debian/compat
vendored
1
debian/compat
vendored
@@ -1 +0,0 @@
|
||||
7
|
0
debian/conffiles
vendored
0
debian/conffiles
vendored
141
debian/control
vendored
141
debian/control
vendored
@@ -1,141 +0,0 @@
|
||||
Source: wine-compholio
|
||||
Section: otherosfs
|
||||
Priority: optional
|
||||
Maintainer: Erich E. Hoover <ehoover@mines.edu>
|
||||
XSBC-Original-Maintainer: Scott Ritchie <scottritchie@ubuntu.com>
|
||||
Build-Depends: autotools-dev,
|
||||
autoconf,
|
||||
bind9-host,
|
||||
bison,
|
||||
bsdmainutils,
|
||||
coreutils,
|
||||
debhelper (>= 7),
|
||||
docbook-to-man,
|
||||
docbook-utils,
|
||||
docbook-xsl,
|
||||
flex,
|
||||
fontforge,
|
||||
gawk,
|
||||
gcc-4.5 | gcc-4.7 | ubuntu-desktop (<< 1.207),
|
||||
gcc-4.5-multilib [amd64] | ubuntu-desktop (<< 1.207) [amd64],
|
||||
gcc-multilib [amd64],
|
||||
gettext,
|
||||
gzip,
|
||||
ia32-libs [amd64],
|
||||
ia32-libs-dev [amd64] | ubuntu-desktop (<< 1.267) [amd64],
|
||||
ia32-libs-multiarch [amd64] | ubuntu-desktop (<< 1.267) [amd64],
|
||||
lib32asound2-dev [amd64],
|
||||
lib32ncurses5-dev [amd64],
|
||||
lib32z1-dev [amd64],
|
||||
libacl1-dev,
|
||||
libasound2-dev [i386 lpia],
|
||||
libc6-dev-i386 [amd64],
|
||||
libcapi20-dev,
|
||||
libcups2-dev,
|
||||
libdbus-1-dev,
|
||||
libesd0 | libesd-alsa0,
|
||||
libesd0-dev,
|
||||
libfontconfig1-dev | libfontconfig-dev,
|
||||
libfreetype6-dev,
|
||||
libgif-dev | libungif4-dev,
|
||||
libgl1-mesa-dev | nvidia-glx-dev | fglrx-driver-dev | libgl-dev,
|
||||
libglu1-mesa-dev | libglu-dev,
|
||||
libgnutls-dev,
|
||||
libgphoto2-dev | libgphoto2-6-dev | libgphoto2-2-dev (>= 2.4.6),
|
||||
libgphoto2port-dev | ubuntu-desktop (>= 1.245) | debian-edu-config,
|
||||
libgsm1-dev,
|
||||
libgstreamer-plugins-base0.10-dev,
|
||||
libgstreamer0.10-dev,
|
||||
libice-dev,
|
||||
libjpeg-dev,
|
||||
liblcms1-dev, liblcms-dev,
|
||||
libldap2-dev, libldap-dev,
|
||||
libmpg123-dev,
|
||||
libncurses5-dev [i386] | libncurses-dev [i386],
|
||||
libopenal-dev (>= 1:1.12) | ubuntu-desktop (<< 1.207),
|
||||
libpng12-dev,
|
||||
libpulse-dev,
|
||||
libssl-dev,
|
||||
libstdc++6-4.5-dev | libstdc++-dev,
|
||||
libtiff4-dev,
|
||||
libv4l-dev [i386],
|
||||
libx11-dev,
|
||||
libxcomposite-dev,
|
||||
libxcursor-dev,
|
||||
libxext-dev,
|
||||
libxi-dev,
|
||||
libxinerama-dev,
|
||||
libxml2-dev,
|
||||
libxrandr-dev,
|
||||
libxrender-dev,
|
||||
libxslt1-dev,
|
||||
libxt-dev,
|
||||
libxxf86vm-dev,
|
||||
linux-kernel-headers,
|
||||
linux-libc-dev,
|
||||
prelink [i386 amd64],
|
||||
quilt (>= 0.46-7~),
|
||||
sharutils,
|
||||
unixodbc-dev,
|
||||
x11proto-xinerama-dev
|
||||
Standards-Version: 3.9.2
|
||||
|
||||
Package: wine-compholio
|
||||
Architecture: i386
|
||||
Multi-Arch: foreign
|
||||
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
|
||||
Depends: ${shlibs:Depends},
|
||||
libasound2-plugins,
|
||||
libncurses5
|
||||
Recommends: gettext,
|
||||
libcapi20-3,
|
||||
libcups2,
|
||||
libdbus-1-3,
|
||||
libfontconfig1 | libfontconfig,
|
||||
libfreetype6,
|
||||
libgif4,
|
||||
libgnutls26,
|
||||
libgphoto2-6 | libgphoto2-2 (>= 2.4.6),
|
||||
libgphoto2-port10 | libgphoto2-port0 (>= 2.4.6),
|
||||
libjpeg8,
|
||||
libopenal1 (>= 1:1.12),
|
||||
libosmesa6,
|
||||
libpng12-0,
|
||||
libpulse0,
|
||||
libsane,
|
||||
libssl1.0.0,
|
||||
libtiff4,
|
||||
libv4l-0,
|
||||
libxcomposite1,
|
||||
libxcursor1,
|
||||
libxi6,
|
||||
libxinerama1,
|
||||
libxrandr2,
|
||||
libxrender1,
|
||||
libxslt1.1,
|
||||
libxt6,
|
||||
libxxf86vm1,
|
||||
unixodbc
|
||||
Provides: wine-compholio
|
||||
Section: otherosfs
|
||||
Priority: optional
|
||||
Description: The Compholio Edition is a special build of the popular Wine software
|
||||
with patches representing my current staging tree for Wine.
|
||||
Currently these patches fix:
|
||||
* Netflix on Firefox hangs with loading bar at 100% (Bug 31993).
|
||||
* Netflix on Firefox fails with Internet Connection Problem when loading bar is
|
||||
at 99% (Bug 31858).
|
||||
.
|
||||
Microsoft Windows Compatibility Layer (Binary Emulator and Library)
|
||||
Wine is a compatibility layer for running Windows applications on Linux.
|
||||
Applications are run at full speed without the need of cpu emulation. Wine
|
||||
does not require Microsoft Windows, however it can use native system dll
|
||||
files in place of its own if they are available.
|
||||
.
|
||||
This package includes a program loader for running unmodified Windows executables
|
||||
as well as the Wine project's free version of the Windows API for running programs
|
||||
ported from Windows.
|
||||
.
|
||||
This package is based on a recent Wine beta. While many more applications will
|
||||
work, there may be some loss of functionality compared with the stable release
|
||||
provided by the regular wine package.
|
23
debian/postinst
vendored
23
debian/postinst
vendored
@@ -1,23 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [ "$1" = "upgrade" ] ; then
|
||||
if ps -C wineserver > /dev/null && test -d /var/lib/update-notifier/user.d/ ; then
|
||||
cp -f /usr/share/wine/wineserver-restart-required.update-notifier /var/lib/update-notifier/user.d/wineserver-restart-required
|
||||
fi
|
||||
fi
|
||||
|
||||
service procps start || /etc/init.d/procps restart
|
||||
|
||||
# Automatically added by dh_installmime
|
||||
if [ "$1" = "configure" ] && [ -x "`which update-mime 2>/dev/null`" ]; then
|
||||
update-mime
|
||||
fi
|
||||
# End automatically added section
|
||||
# Automatically added by dh_makeshlibs
|
||||
if [ "$1" = "configure" ]; then
|
||||
ldconfig
|
||||
fi
|
||||
# End automatically added section
|
||||
|
||||
|
||||
|
10
debian/postrm
vendored
10
debian/postrm
vendored
@@ -1,10 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
# Automatically added by dh_installmime
|
||||
if which update-mime >/dev/null 2>&1; then update-mime; fi
|
||||
# End automatically added section
|
||||
# Automatically added by dh_makeshlibs
|
||||
if [ "$1" = "remove" ]; then
|
||||
ldconfig
|
||||
fi
|
||||
# End automatically added section
|
9
debian/prerm
vendored
9
debian/prerm
vendored
@@ -1,9 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [ "$1" = "remove" ] ; then
|
||||
if [ -x /usr/sbin/update-binfmts ]; then
|
||||
/usr/sbin/update-binfmts --package wine --remove wine /usr/bin/wine || true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
144
debian/rules
vendored
144
debian/rules
vendored
@@ -1,144 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# This file was originally written by Joey Hess and Craig Small.
|
||||
# As a special exception, when this file is copied by dh-make into a
|
||||
# dh-make output file, you may use that output file without restriction.
|
||||
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
|
||||
# These are used for cross-compiling and for saving the configure script
|
||||
# from having to guess our platform (since we know it already)
|
||||
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
|
||||
CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
|
||||
else
|
||||
CROSS= --build $(DEB_BUILD_GNU_TYPE)
|
||||
endif
|
||||
|
||||
|
||||
# Apparently it's important to have an empty LDFLAGS, see:
|
||||
# http://www.winehq.org/pipermail/wine-bugs/2007-July/062505.html
|
||||
# For Wine 1.1.44 it's also important not to compile at -O0
|
||||
LDFLAGS =
|
||||
CFLAGS = -Wall -g -O2
|
||||
|
||||
# On amd64 the 32-bit libraries are in lib32 instead of lib
|
||||
ifeq ($(DEB_BUILD_ARCH), amd64)
|
||||
CONFFLAGS += --libdir=\$${prefix}/lib32
|
||||
endif
|
||||
|
||||
# Use gcc-4.5 if it's available
|
||||
ifeq ($(shell which gcc-4.5),)
|
||||
CC = gcc
|
||||
else
|
||||
CC = gcc-4.5
|
||||
endif
|
||||
|
||||
# Support passing of parallel=<n> in build options
|
||||
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
||||
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
||||
MAKEFLAGS += -j$(NUMJOBS)
|
||||
endif
|
||||
|
||||
configure:
|
||||
# Unpack the original Wine version
|
||||
tar -xjvf wine-*.tar.bz2
|
||||
mv wine-*/* .
|
||||
rm wine-*/.* || true
|
||||
rm wine-*.tar.bz2
|
||||
rmdir wine-*
|
||||
|
||||
config.status: configure
|
||||
dh_testdir
|
||||
# Add here commands to configure the package.
|
||||
ifneq "$(wildcard /usr/share/misc/config.sub)" ""
|
||||
cp -f /usr/share/misc/config.sub config.sub
|
||||
endif
|
||||
ifneq "$(wildcard /usr/share/misc/config.guess)" ""
|
||||
cp -f /usr/share/misc/config.guess config.guess
|
||||
endif
|
||||
|
||||
# Apply our patches, reconfigure, and update the wineserver protocol request data
|
||||
make -C "$(CURDIR)/patches/" DESTDIR="$(CURDIR)" install
|
||||
|
||||
# Configure
|
||||
CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/opt/wine-compholio --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --with-xattr $(CONFFLAGS)
|
||||
|
||||
build: build-stamp
|
||||
|
||||
build-stamp: config.status
|
||||
dh_testdir
|
||||
|
||||
# Add here commands to compile the package.
|
||||
$(MAKE) depend
|
||||
$(MAKE) $(MAKEFLAGS)
|
||||
#docbook-to-man debian/wine-compholio.sgml > wine-compholio.1
|
||||
|
||||
touch $@
|
||||
|
||||
clean:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
rm -f build-stamp
|
||||
|
||||
# Add here commands to clean up after the build process.
|
||||
[ ! -f Makefile ] || $(MAKE) distclean
|
||||
rm -f config.sub config.guess
|
||||
|
||||
dh_clean
|
||||
|
||||
install: build
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_prep
|
||||
dh_installdirs
|
||||
|
||||
# Add here commands to install the package into debian/wine-compholio.
|
||||
$(MAKE) DESTDIR=$(CURDIR)/debian/wine-compholio install
|
||||
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
# We have nothing to do by default.
|
||||
|
||||
# Build architecture-dependent files here.
|
||||
binary-arch: build install
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
# dh_installchangelogs ChangeLog
|
||||
# dh_installdocs
|
||||
dh_installexamples
|
||||
# dh_install
|
||||
# dh_installmenu
|
||||
# dh_installdebconf
|
||||
# dh_installlogrotate
|
||||
# dh_installemacsen
|
||||
# dh_installpam
|
||||
# dh_installmime
|
||||
# dh_python
|
||||
# dh_installinit
|
||||
# dh_installcron
|
||||
# dh_installinfo
|
||||
dh_installman
|
||||
dh_link
|
||||
dh_strip
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
# dh_perl
|
||||
dh_makeshlibs
|
||||
dh_installdeb
|
||||
ifeq ($(DEB_BUILD_ARCH), amd64)
|
||||
dh_gencontrol -- -V"shlibs:Depends= ia32-libs (>= 1.6), lib32asound2 (>> 1.0.14), libc6-i386 (>= 2.6-1), lib32nss-mdns (>= 0.10-3)"
|
||||
else
|
||||
LD_LIBRARY_PATH="$(CURDIR)/debian/wine-compholio/opt/wine-compholio/lib:${LD_LIBRARY_PATH}" dh_shlibdeps -L wine-compholio -l debian/wine-compholio/opt/wine-compholio/lib
|
||||
dh_gencontrol
|
||||
endif
|
||||
dh_md5sums
|
||||
dh_builddeb -- -Z lzma
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: build clean binary-indep binary-arch binary install
|
572
debian/tools/gitapply.sh
vendored
572
debian/tools/gitapply.sh
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,101 +0,0 @@
|
||||
From a1ad64b059de5325b15ed09a39083f5eb973a2f6 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Wed, 12 Feb 2014 13:46:28 -0700
|
||||
Subject: ws2_32: Ask the server to process unsupported WSAIoctl operations.
|
||||
|
||||
---
|
||||
dlls/ws2_32/socket.c | 60 ++++++++++++++++++++++++++++++++++++++++++++------
|
||||
1 file changed, 53 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
|
||||
index 1c558bf..fe5577c 100644
|
||||
--- a/dlls/ws2_32/socket.c
|
||||
+++ b/dlls/ws2_32/socket.c
|
||||
@@ -3668,6 +3668,40 @@ static const char *debugstr_wsaioctl(DWORD ioctl)
|
||||
(USHORT)(ioctl & 0xffff));
|
||||
}
|
||||
|
||||
+/* do an ioctl call through the server */
|
||||
+static DWORD server_ioctl_sock( SOCKET s, DWORD code, LPVOID in_buff, DWORD in_size,
|
||||
+ LPVOID out_buff, DWORD out_size, LPDWORD ret_size,
|
||||
+ LPWSAOVERLAPPED overlapped,
|
||||
+ LPWSAOVERLAPPED_COMPLETION_ROUTINE completion )
|
||||
+{
|
||||
+ HANDLE event = overlapped ? overlapped->hEvent : 0;
|
||||
+ HANDLE handle = SOCKET2HANDLE( s );
|
||||
+ struct ws2_async *wsa;
|
||||
+ NTSTATUS status;
|
||||
+ PIO_STATUS_BLOCK io;
|
||||
+
|
||||
+ if (!(wsa = RtlAllocateHeap( GetProcessHeap(), 0, sizeof(*wsa) )))
|
||||
+ return WSA_NOT_ENOUGH_MEMORY;
|
||||
+ wsa->hSocket = handle;
|
||||
+ wsa->user_overlapped = overlapped;
|
||||
+ wsa->completion_func = completion;
|
||||
+ io = (overlapped ? (PIO_STATUS_BLOCK)overlapped : &wsa->local_iosb);
|
||||
+
|
||||
+ status = NtDeviceIoControlFile( handle, event, (PIO_APC_ROUTINE)ws2_async_apc, wsa, io, code,
|
||||
+ in_buff, in_size, out_buff, out_size );
|
||||
+ if (status == STATUS_NOT_SUPPORTED)
|
||||
+ {
|
||||
+ FIXME("Unsupported ioctl %x (device=%x access=%x func=%x method=%x)\n",
|
||||
+ code, code >> 16, (code >> 14) & 3, (code >> 2) & 0xfff, code & 3);
|
||||
+ }
|
||||
+ else if (status == STATUS_SUCCESS)
|
||||
+ *ret_size = io->Information; /* "Information" is the size written to the output buffer */
|
||||
+
|
||||
+ if (status != STATUS_PENDING) RtlFreeHeap( GetProcessHeap(), 0, wsa );
|
||||
+
|
||||
+ return NtStatusToWSAError( status );
|
||||
+}
|
||||
+
|
||||
/**********************************************************************
|
||||
* WSAIoctl (WS2_32.50)
|
||||
*
|
||||
@@ -3859,12 +3893,6 @@ INT WINAPI WSAIoctl(SOCKET s, DWORD code, LPVOID in_buff, DWORD in_size, LPVOID
|
||||
break;
|
||||
}
|
||||
|
||||
- case WS_SIO_ADDRESS_LIST_CHANGE:
|
||||
- FIXME("-> SIO_ADDRESS_LIST_CHANGE request: stub\n");
|
||||
- /* FIXME: error and return code depend on whether socket was created
|
||||
- * with WSA_FLAG_OVERLAPPED, but there is no easy way to get this */
|
||||
- break;
|
||||
-
|
||||
case WS_SIO_ADDRESS_LIST_QUERY:
|
||||
{
|
||||
DWORD size;
|
||||
@@ -4100,11 +4128,29 @@ INT WINAPI WSAIoctl(SOCKET s, DWORD code, LPVOID in_buff, DWORD in_size, LPVOID
|
||||
WSASetLastError(WSAEOPNOTSUPP);
|
||||
return SOCKET_ERROR;
|
||||
default:
|
||||
- FIXME("unsupported WS_IOCTL cmd (%s)\n", debugstr_wsaioctl(code));
|
||||
status = WSAEOPNOTSUPP;
|
||||
break;
|
||||
}
|
||||
|
||||
+ if (status == WSAEOPNOTSUPP)
|
||||
+ {
|
||||
+ status = server_ioctl_sock(s, code, in_buff, in_size, out_buff, out_size, &total,
|
||||
+ overlapped, completion);
|
||||
+ if (status != WSAEOPNOTSUPP)
|
||||
+ {
|
||||
+ if (status == 0 || status == WSA_IO_PENDING)
|
||||
+ TRACE("-> %s request\n", debugstr_wsaioctl(code));
|
||||
+ else
|
||||
+ ERR("-> %s request failed with status 0x%x\n", debugstr_wsaioctl(code), status);
|
||||
+
|
||||
+ /* overlapped and completion operations will be handled by the server */
|
||||
+ completion = NULL;
|
||||
+ overlapped = NULL;
|
||||
+ }
|
||||
+ else
|
||||
+ FIXME("unsupported WS_IOCTL cmd (%s)\n", debugstr_wsaioctl(code));
|
||||
+ }
|
||||
+
|
||||
if (completion)
|
||||
{
|
||||
FIXME( "completion routine %p not supported\n", completion );
|
||||
--
|
||||
1.7.9.5
|
||||
|
@@ -1,481 +0,0 @@
|
||||
From 60f7d242951be1980501f45922dbee5480ac2810 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Tue, 31 Dec 2013 18:36:58 -0700
|
||||
Subject: server: Implement an interface change notification object.
|
||||
|
||||
---
|
||||
server/event.c | 13 +++
|
||||
server/named_pipe.c | 13 ---
|
||||
server/object.h | 1 +
|
||||
server/sock.c | 324 ++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
4 files changed, 334 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/server/event.c b/server/event.c
|
||||
index b8515af..e8a3888 100644
|
||||
--- a/server/event.c
|
||||
+++ b/server/event.c
|
||||
@@ -124,6 +124,19 @@ struct event *create_event( struct directory *root, const struct unicode_str *na
|
||||
return event;
|
||||
}
|
||||
|
||||
+obj_handle_t alloc_wait_event( struct process *process )
|
||||
+{
|
||||
+ obj_handle_t handle = 0;
|
||||
+ struct event *event = create_event( NULL, NULL, 0, 1, 0, NULL );
|
||||
+
|
||||
+ if (event)
|
||||
+ {
|
||||
+ handle = alloc_handle( process, event, EVENT_ALL_ACCESS, 0 );
|
||||
+ release_object( event );
|
||||
+ }
|
||||
+ return handle;
|
||||
+}
|
||||
+
|
||||
struct event *get_event_obj( struct process *process, obj_handle_t handle, unsigned int access )
|
||||
{
|
||||
return (struct event *)get_handle_obj( process, handle, access, &event_ops );
|
||||
diff --git a/server/named_pipe.c b/server/named_pipe.c
|
||||
index 4c85104..6ba2145 100644
|
||||
--- a/server/named_pipe.c
|
||||
+++ b/server/named_pipe.c
|
||||
@@ -587,19 +587,6 @@ static enum server_fd_type pipe_client_get_fd_type( struct fd *fd )
|
||||
return FD_TYPE_PIPE;
|
||||
}
|
||||
|
||||
-static obj_handle_t alloc_wait_event( struct process *process )
|
||||
-{
|
||||
- obj_handle_t handle = 0;
|
||||
- struct event *event = create_event( NULL, NULL, 0, 1, 0, NULL );
|
||||
-
|
||||
- if (event)
|
||||
- {
|
||||
- handle = alloc_handle( process, event, EVENT_ALL_ACCESS, 0 );
|
||||
- release_object( event );
|
||||
- }
|
||||
- return handle;
|
||||
-}
|
||||
-
|
||||
static obj_handle_t pipe_server_ioctl( struct fd *fd, ioctl_code_t code, const async_data_t *async_data,
|
||||
int blocking, const void *data, data_size_t size )
|
||||
{
|
||||
diff --git a/server/object.h b/server/object.h
|
||||
index bb3ff21..bad162f 100644
|
||||
--- a/server/object.h
|
||||
+++ b/server/object.h
|
||||
@@ -159,6 +159,7 @@ extern struct event *create_event( struct directory *root, const struct unicode_
|
||||
const struct security_descriptor *sd );
|
||||
extern struct keyed_event *create_keyed_event( struct directory *root, const struct unicode_str *name,
|
||||
unsigned int attr, const struct security_descriptor *sd );
|
||||
+extern obj_handle_t alloc_wait_event( struct process *process );
|
||||
extern struct event *get_event_obj( struct process *process, obj_handle_t handle, unsigned int access );
|
||||
extern struct keyed_event *get_keyed_event_obj( struct process *process, obj_handle_t handle, unsigned int access );
|
||||
extern void pulse_event( struct event *event );
|
||||
diff --git a/server/sock.c b/server/sock.c
|
||||
index 1a3a8f7..9c8284d 100644
|
||||
--- a/server/sock.c
|
||||
+++ b/server/sock.c
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
+#include <limits.h>
|
||||
#include <assert.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdarg.h>
|
||||
@@ -44,11 +45,17 @@
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
+#ifdef HAVE_LINUX_RTNETLINK_H
|
||||
+# include <linux/rtnetlink.h>
|
||||
+#endif
|
||||
+
|
||||
#include "ntstatus.h"
|
||||
#define WIN32_NO_STATUS
|
||||
#include "windef.h"
|
||||
#include "winternl.h"
|
||||
#include "winerror.h"
|
||||
+#define USE_WS_PREFIX
|
||||
+#include "winsock2.h"
|
||||
|
||||
#include "process.h"
|
||||
#include "file.h"
|
||||
@@ -83,9 +90,6 @@
|
||||
#define FD_WINE_RAW 0x80000000
|
||||
#define FD_WINE_INTERNAL 0xFFFF0000
|
||||
|
||||
-/* Constants for WSAIoctl() */
|
||||
-#define WSA_FLAG_OVERLAPPED 0x01
|
||||
-
|
||||
struct sock
|
||||
{
|
||||
struct object obj; /* object header */
|
||||
@@ -107,16 +111,28 @@ struct sock
|
||||
struct sock *deferred; /* socket that waits for a deferred accept */
|
||||
struct async_queue *read_q; /* queue for asynchronous reads */
|
||||
struct async_queue *write_q; /* queue for asynchronous writes */
|
||||
+ struct async_queue *ifchange_q; /* queue for interface change notifications */
|
||||
+ struct list ifchange_entry; /* entry in ifchange notification list */
|
||||
};
|
||||
|
||||
+#ifdef HAVE_LINUX_RTNETLINK_H
|
||||
+/* only keep one ifchange object around, all sockets waiting for wakeups will look to it */
|
||||
+static struct object *ifchange_object = NULL;
|
||||
+
|
||||
+static int sock_add_ifchange( struct sock *sock, const async_data_t *async_data );
|
||||
+#endif
|
||||
+
|
||||
static void sock_dump( struct object *obj, int verbose );
|
||||
static int sock_signaled( struct object *obj, struct wait_queue_entry *entry );
|
||||
static struct fd *sock_get_fd( struct object *obj );
|
||||
static void sock_destroy( struct object *obj );
|
||||
+static void sock_destroy_ifchange_q( struct sock *sock );
|
||||
|
||||
static int sock_get_poll_events( struct fd *fd );
|
||||
static void sock_poll_event( struct fd *fd, int event );
|
||||
static enum server_fd_type sock_get_fd_type( struct fd *fd );
|
||||
+static obj_handle_t sock_ioctl( struct fd *fd, ioctl_code_t code, const async_data_t *async,
|
||||
+ int blocking, const void *data, data_size_t size );
|
||||
static void sock_queue_async( struct fd *fd, const async_data_t *data, int type, int count );
|
||||
static void sock_reselect_async( struct fd *fd, struct async_queue *queue );
|
||||
static void sock_cancel_async( struct fd *fd, struct process *process, struct thread *thread, client_ptr_t iosb );
|
||||
@@ -151,7 +167,7 @@ static const struct fd_ops sock_fd_ops =
|
||||
sock_poll_event, /* poll_event */
|
||||
no_flush, /* flush */
|
||||
sock_get_fd_type, /* get_fd_type */
|
||||
- default_fd_ioctl, /* ioctl */
|
||||
+ sock_ioctl, /* ioctl */
|
||||
sock_queue_async, /* queue_async */
|
||||
sock_reselect_async, /* reselect_async */
|
||||
sock_cancel_async /* cancel_async */
|
||||
@@ -518,6 +534,41 @@ static enum server_fd_type sock_get_fd_type( struct fd *fd )
|
||||
return FD_TYPE_SOCKET;
|
||||
}
|
||||
|
||||
+obj_handle_t sock_ioctl( struct fd *fd, ioctl_code_t code, const async_data_t *async_data,
|
||||
+ int blocking, const void *data, data_size_t size )
|
||||
+{
|
||||
+#ifdef HAVE_LINUX_RTNETLINK_H
|
||||
+ struct sock *sock = get_fd_user( fd );
|
||||
+ obj_handle_t wait_handle = 0;
|
||||
+ async_data_t new_data;
|
||||
+
|
||||
+ assert( sock->obj.ops == &sock_ops );
|
||||
+
|
||||
+ if (blocking)
|
||||
+ {
|
||||
+ if (!(wait_handle = alloc_wait_event( current->process ))) return 0;
|
||||
+ new_data = *async_data;
|
||||
+ new_data.event = wait_handle;
|
||||
+ async_data = &new_data;
|
||||
+ }
|
||||
+ switch(code)
|
||||
+ {
|
||||
+ case WS_SIO_ADDRESS_LIST_CHANGE:
|
||||
+ if (sock_add_ifchange( sock, async_data ))
|
||||
+ {
|
||||
+ set_error( STATUS_PENDING );
|
||||
+ return wait_handle;
|
||||
+ }
|
||||
+ break;
|
||||
+ default:
|
||||
+ /* handled by default_fd_ioctl */
|
||||
+ break;
|
||||
+ }
|
||||
+ close_handle( current->process, wait_handle );
|
||||
+#endif
|
||||
+ return default_fd_ioctl(fd, code, async_data, blocking, data, size);
|
||||
+}
|
||||
+
|
||||
static void sock_queue_async( struct fd *fd, const async_data_t *data, int type, int count )
|
||||
{
|
||||
struct sock *sock = get_fd_user( fd );
|
||||
@@ -592,6 +643,7 @@ static void sock_destroy( struct object *obj )
|
||||
|
||||
free_async_queue( sock->read_q );
|
||||
free_async_queue( sock->write_q );
|
||||
+ sock_destroy_ifchange_q( sock );
|
||||
if (sock->event) release_object( sock->event );
|
||||
if (sock->fd)
|
||||
{
|
||||
@@ -618,6 +670,7 @@ static void init_sock(struct sock *sock)
|
||||
sock->deferred = NULL;
|
||||
sock->read_q = NULL;
|
||||
sock->write_q = NULL;
|
||||
+ sock->ifchange_q = NULL;
|
||||
memset( sock->errors, 0, sizeof(sock->errors) );
|
||||
}
|
||||
|
||||
@@ -906,6 +959,269 @@ static void sock_set_error(void)
|
||||
set_error( sock_get_ntstatus( errno ) );
|
||||
}
|
||||
|
||||
+#ifdef HAVE_LINUX_RTNETLINK_H
|
||||
+
|
||||
+static void ifchange_dump( struct object *obj, int verbose );
|
||||
+static struct fd *ifchange_get_fd( struct object *obj );
|
||||
+static void ifchange_destroy( struct object *obj );
|
||||
+
|
||||
+static int ifchange_get_poll_events( struct fd *fd );
|
||||
+static void ifchange_poll_event( struct fd *fd, int event );
|
||||
+static void ifchange_reselect_async( struct fd *fd, struct async_queue *queue );
|
||||
+
|
||||
+struct ifchange
|
||||
+{
|
||||
+ struct object obj; /* object header */
|
||||
+ struct fd *fd; /* interface change file descriptor */
|
||||
+ struct list sockets; /* list of sockets to send interface change notifications */
|
||||
+};
|
||||
+
|
||||
+static const struct object_ops ifchange_ops =
|
||||
+{
|
||||
+ sizeof(struct ifchange), /* size */
|
||||
+ ifchange_dump, /* dump */
|
||||
+ no_get_type, /* get_type */
|
||||
+ add_queue, /* add_queue */
|
||||
+ NULL, /* remove_queue */
|
||||
+ NULL, /* signaled */
|
||||
+ no_satisfied, /* satisfied */
|
||||
+ no_signal, /* signal */
|
||||
+ ifchange_get_fd, /* get_fd */
|
||||
+ default_fd_map_access, /* map_access */
|
||||
+ default_get_sd, /* get_sd */
|
||||
+ default_set_sd, /* set_sd */
|
||||
+ no_lookup_name, /* lookup_name */
|
||||
+ no_open_file, /* open_file */
|
||||
+ no_close_handle, /* close_handle */
|
||||
+ ifchange_destroy /* destroy */
|
||||
+};
|
||||
+
|
||||
+static const struct fd_ops ifchange_fd_ops =
|
||||
+{
|
||||
+ ifchange_get_poll_events, /* get_poll_events */
|
||||
+ ifchange_poll_event, /* poll_event */
|
||||
+ NULL, /* flush */
|
||||
+ NULL, /* get_fd_type */
|
||||
+ NULL, /* ioctl */
|
||||
+ NULL, /* queue_async */
|
||||
+ ifchange_reselect_async, /* reselect_async */
|
||||
+ NULL /* cancel_async */
|
||||
+};
|
||||
+
|
||||
+static void ifchange_dump( struct object *obj, int verbose )
|
||||
+{
|
||||
+ assert( obj->ops == &ifchange_ops );
|
||||
+ printf( "ifchange\n" );
|
||||
+}
|
||||
+
|
||||
+static struct fd *ifchange_get_fd( struct object *obj )
|
||||
+{
|
||||
+ struct ifchange *ifchange = (struct ifchange *)obj;
|
||||
+ return (struct fd *)grab_object( ifchange->fd );
|
||||
+}
|
||||
+
|
||||
+static void ifchange_destroy( struct object *obj )
|
||||
+{
|
||||
+ struct ifchange *ifchange = (struct ifchange *)obj;
|
||||
+ assert( obj->ops == &ifchange_ops );
|
||||
+
|
||||
+ if (ifchange->fd)
|
||||
+ {
|
||||
+ /* reset the global ifchange object so that it will be recreated if it is needed again */
|
||||
+ assert( obj == ifchange_object );
|
||||
+ ifchange_object = NULL;
|
||||
+
|
||||
+ /* shut the socket down to force pending poll() calls in the client to return */
|
||||
+ shutdown( get_unix_fd(ifchange->fd), SHUT_RDWR );
|
||||
+ release_object( ifchange->fd );
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int ifchange_get_poll_events( struct fd *fd )
|
||||
+{
|
||||
+ return POLLIN;
|
||||
+}
|
||||
+
|
||||
+static void ifchange_add_sock( struct object *obj, struct sock *sock )
|
||||
+{
|
||||
+ struct ifchange *ifchange = (struct ifchange *)obj;
|
||||
+
|
||||
+ list_add_tail( &ifchange->sockets, &sock->ifchange_entry );
|
||||
+}
|
||||
+
|
||||
+/* we only need one of these interface notification objects, all of the sockets dependent upon
|
||||
+ * it will wake up when a notification event occurs */
|
||||
+static struct object *grab_ifchange( void )
|
||||
+{
|
||||
+ struct ifchange *ifchange;
|
||||
+ struct sockaddr_nl addr;
|
||||
+ int unix_fd;
|
||||
+
|
||||
+ if (ifchange_object)
|
||||
+ {
|
||||
+ /* increment the refcount for each socket that uses the ifchange object */
|
||||
+ return grab_object( ifchange_object );
|
||||
+ }
|
||||
+
|
||||
+ /* create the socket we need for processing interface change notifications */
|
||||
+ unix_fd = socket( PF_NETLINK, SOCK_RAW, NETLINK_ROUTE );
|
||||
+ if (unix_fd == -1)
|
||||
+ {
|
||||
+ sock_set_error();
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ fcntl( unix_fd, F_SETFL, O_NONBLOCK ); /* make socket nonblocking */
|
||||
+ memset( &addr, 0, sizeof(addr) );
|
||||
+ addr.nl_family = AF_NETLINK;
|
||||
+ addr.nl_groups = RTMGRP_IPV4_IFADDR;
|
||||
+ /* bind the socket to the special netlink kernel interface */
|
||||
+ if (bind( unix_fd, (struct sockaddr *)&addr, sizeof(addr) ) == -1)
|
||||
+ {
|
||||
+ sock_set_error();
|
||||
+ close( unix_fd );
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ if (!(ifchange = alloc_object( &ifchange_ops )))
|
||||
+ {
|
||||
+ set_error( STATUS_NO_MEMORY );
|
||||
+ close( unix_fd );
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ list_init( &ifchange->sockets );
|
||||
+ if (!(ifchange->fd = create_anonymous_fd( &ifchange_fd_ops, unix_fd, &ifchange->obj, 0 )))
|
||||
+ {
|
||||
+ set_error( STATUS_NO_MEMORY );
|
||||
+ release_object( ifchange );
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ set_fd_events( ifchange->fd, POLLIN ); /* enable read wakeup on the file descriptor */
|
||||
+
|
||||
+ /* the ifchange object is now successfully configured */
|
||||
+ ifchange_object = &ifchange->obj;
|
||||
+ return ifchange_object;
|
||||
+}
|
||||
+
|
||||
+/* create a new ifchange queue for a specific socket or, if one already exists, reuse the existing one */
|
||||
+static struct async_queue *sock_get_ifchange_q( struct sock *sock )
|
||||
+{
|
||||
+ struct object *ifchange;
|
||||
+ struct fd *fd;
|
||||
+
|
||||
+ if (sock->ifchange_q) /* reuse existing ifchange_q for this socket */
|
||||
+ return sock->ifchange_q;
|
||||
+
|
||||
+ if (!(ifchange = grab_ifchange()))
|
||||
+ return NULL;
|
||||
+
|
||||
+ /* create the ifchange notification queue */
|
||||
+ fd = ifchange_get_fd( ifchange );
|
||||
+ sock->ifchange_q = create_async_queue( fd );
|
||||
+ release_object( fd );
|
||||
+ if (!sock->ifchange_q)
|
||||
+ {
|
||||
+ set_error( STATUS_NO_MEMORY );
|
||||
+ release_object( ifchange );
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ /* add the socket to the ifchange notification list */
|
||||
+ ifchange_add_sock( ifchange, sock );
|
||||
+ return sock->ifchange_q;
|
||||
+}
|
||||
+
|
||||
+/* wake up all the sockets waiting for a change notification event */
|
||||
+static void ifchange_wake_up( struct object *obj, unsigned int status )
|
||||
+{
|
||||
+ struct ifchange *ifchange = (struct ifchange *)obj;
|
||||
+ struct list *ptr, *next;
|
||||
+ assert( obj->ops == &ifchange_ops );
|
||||
+ assert( obj == ifchange_object );
|
||||
+
|
||||
+ LIST_FOR_EACH_SAFE( ptr, next, &ifchange->sockets )
|
||||
+ {
|
||||
+ struct sock *sock = LIST_ENTRY( ptr, struct sock, ifchange_entry );
|
||||
+
|
||||
+ assert( sock->ifchange_q );
|
||||
+ async_wake_up( sock->ifchange_q, status ); /* issue ifchange notification for the socket */
|
||||
+ sock_destroy_ifchange_q( sock ); /* remove socket from list and decrement ifchange refcount */
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void ifchange_poll_event( struct fd *fd, int event )
|
||||
+{
|
||||
+ struct object *ifchange = get_fd_user( fd );
|
||||
+ unsigned int status = STATUS_PENDING;
|
||||
+ char buffer[PIPE_BUF];
|
||||
+ int r;
|
||||
+
|
||||
+ r = recv( get_unix_fd(fd), buffer, sizeof(buffer), MSG_DONTWAIT );
|
||||
+ if (r < 0)
|
||||
+ {
|
||||
+ if (errno == EWOULDBLOCK || errno == EAGAIN)
|
||||
+ return; /* retry when poll() says the socket is ready */
|
||||
+ status = sock_get_ntstatus( errno );
|
||||
+ }
|
||||
+ else if (r > 0)
|
||||
+ {
|
||||
+ struct nlmsghdr *nlh;
|
||||
+
|
||||
+ for (nlh = (struct nlmsghdr *)buffer; NLMSG_OK(nlh, r); nlh = NLMSG_NEXT(nlh, r))
|
||||
+ {
|
||||
+ if (nlh->nlmsg_type == NLMSG_DONE)
|
||||
+ break;
|
||||
+ if (nlh->nlmsg_type == RTM_NEWADDR || nlh->nlmsg_type == RTM_DELADDR)
|
||||
+ status = STATUS_SUCCESS;
|
||||
+ }
|
||||
+ }
|
||||
+ if (status != STATUS_PENDING)
|
||||
+ ifchange_wake_up( ifchange, status );
|
||||
+}
|
||||
+
|
||||
+static void ifchange_reselect_async( struct fd *fd, struct async_queue *queue )
|
||||
+{
|
||||
+ /* do nothing, this object is about to disappear */
|
||||
+}
|
||||
+
|
||||
+/* add interface change notification to a socket */
|
||||
+static int sock_add_ifchange( struct sock *sock, const async_data_t *async_data )
|
||||
+{
|
||||
+ struct async_queue *ifchange_q;
|
||||
+ struct async *async;
|
||||
+
|
||||
+ if (!(ifchange_q = sock_get_ifchange_q( sock )))
|
||||
+ return FALSE;
|
||||
+
|
||||
+ if (!(async = create_async( current, ifchange_q, async_data )))
|
||||
+ {
|
||||
+ if (!async_queued( ifchange_q ))
|
||||
+ sock_destroy_ifchange_q( sock );
|
||||
+
|
||||
+ set_error( STATUS_NO_MEMORY );
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ release_object( async );
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+/* destroy an existing ifchange queue for a specific socket */
|
||||
+static void sock_destroy_ifchange_q( struct sock *sock )
|
||||
+{
|
||||
+#ifdef HAVE_LINUX_RTNETLINK_H
|
||||
+ if (sock->ifchange_q)
|
||||
+ {
|
||||
+ assert( ifchange_object );
|
||||
+
|
||||
+ list_remove( &sock->ifchange_entry );
|
||||
+ free_async_queue( sock->ifchange_q );
|
||||
+ sock->ifchange_q = NULL;
|
||||
+ release_object( ifchange_object );
|
||||
+ }
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
/* create a socket */
|
||||
DECL_HANDLER(create_socket)
|
||||
{
|
||||
--
|
||||
1.7.9.5
|
||||
|
@@ -1,98 +0,0 @@
|
||||
From b3156dc253a94f9414a04569181728ec43608f2a Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Mon, 18 Nov 2013 17:22:14 -0700
|
||||
Subject: ws2_32: Add an interactive test for interface change notifications.
|
||||
|
||||
---
|
||||
dlls/ws2_32/tests/sock.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 68 insertions(+)
|
||||
|
||||
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
|
||||
index 0abf732..4703e59 100644
|
||||
--- a/dlls/ws2_32/tests/sock.c
|
||||
+++ b/dlls/ws2_32/tests/sock.c
|
||||
@@ -6487,6 +6487,73 @@ static void test_sioRoutingInterfaceQuery(void)
|
||||
closesocket(sock);
|
||||
}
|
||||
|
||||
+static void test_sioAddressListChange(void)
|
||||
+{
|
||||
+ struct sockaddr_in bindAddress;
|
||||
+ struct in_addr net_address;
|
||||
+ WSAOVERLAPPED overlapped;
|
||||
+ struct hostent *h;
|
||||
+ DWORD num_bytes;
|
||||
+ SOCKET sock;
|
||||
+ int acount;
|
||||
+ int ret;
|
||||
+
|
||||
+ if (!winetest_interactive)
|
||||
+ {
|
||||
+ skip("Cannot test SIO_ADDRESS_LIST_CHANGE, interactive tests must be enabled\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ /* Use gethostbyname to find the list of local network interfaces */
|
||||
+ h = gethostbyname("");
|
||||
+ if (!h)
|
||||
+ {
|
||||
+ skip("Cannot test SIO_ADDRESS_LIST_CHANGE, gethostbyname failed with %u\n",
|
||||
+ WSAGetLastError());
|
||||
+ return;
|
||||
+ }
|
||||
+ for (acount = 0; h->h_addr_list[acount]; acount++);
|
||||
+ if (acount == 0)
|
||||
+ {
|
||||
+ skip("Cannot test SIO_ADDRESS_LIST_CHANGE, test requires a network card.\n");
|
||||
+ return;
|
||||
+ }
|
||||
+ net_address.s_addr = *(ULONG *) h->h_addr_list[0];
|
||||
+
|
||||
+ /* Bind an overlapped socket to the first found network interface */
|
||||
+ sock = WSASocketW(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, WSA_FLAG_OVERLAPPED);
|
||||
+ ok(sock != INVALID_SOCKET, "Expected socket to return a valid socket\n");
|
||||
+ if (sock == INVALID_SOCKET)
|
||||
+ {
|
||||
+ skip("Cannot test SIO_ADDRESS_LIST_CHANGE, socket creation failed with %u\n",
|
||||
+ WSAGetLastError());
|
||||
+ return;
|
||||
+ }
|
||||
+ memset(&bindAddress, 0, sizeof(bindAddress));
|
||||
+ bindAddress.sin_family = AF_INET;
|
||||
+ bindAddress.sin_addr.s_addr = net_address.s_addr;
|
||||
+ ret = bind(sock, (struct sockaddr*)&bindAddress, sizeof(bindAddress));
|
||||
+ if (ret != 0)
|
||||
+ {
|
||||
+ skip("Cannot test SIO_ADDRESS_LIST_CHANGE, failed to bind, error %u\n", WSAGetLastError());
|
||||
+ goto end;
|
||||
+ }
|
||||
+
|
||||
+ /* Wait for address changes, request that the user connect/disconnect an interface */
|
||||
+ memset(&overlapped, 0, sizeof(overlapped));
|
||||
+ overlapped.hEvent = CreateEventA(NULL, FALSE, FALSE, NULL);
|
||||
+ ret = WSAIoctl(sock, SIO_ADDRESS_LIST_CHANGE, NULL, 0, NULL, 0, &num_bytes, &overlapped, NULL);
|
||||
+ ok(ret == SOCKET_ERROR, "WSAIoctl succeeded unexpectedly\n");
|
||||
+ ok(WSAGetLastError() == WSA_IO_PENDING, "Expected pending last error %d\n", WSAGetLastError());
|
||||
+ trace("Testing socket-based ipv4 address list change notification. Please connect/disconnect or"
|
||||
+ " change the ipv4 address of any of the local network interfaces (10 second timeout).\n");
|
||||
+ ret = WaitForSingleObject(overlapped.hEvent, 10000);
|
||||
+ ok(ret == WAIT_OBJECT_0, "failed to get overlapped event %u\n", ret);
|
||||
+
|
||||
+end:
|
||||
+ closesocket(sock);
|
||||
+}
|
||||
+
|
||||
static void test_synchronous_WSAIoctl(void)
|
||||
{
|
||||
HANDLE previous_port, io_port;
|
||||
@@ -7570,6 +7637,7 @@ START_TEST( sock )
|
||||
test_ConnectEx();
|
||||
|
||||
test_sioRoutingInterfaceQuery();
|
||||
+ test_sioAddressListChange();
|
||||
|
||||
test_WSALookupService();
|
||||
|
||||
--
|
||||
1.7.9.5
|
||||
|
@@ -1,3 +0,0 @@
|
||||
Revision: 1
|
||||
Author: Erich E. Hoover
|
||||
Title: Implement SIO_ADDRESS_LIST_CHANGE.
|
@@ -1,150 +0,0 @@
|
||||
From 96470b6ee4c0e91700ac197e77784feb42d9a961 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Sat, 15 Feb 2014 18:20:49 -0700
|
||||
Subject: server: Store file security attributes with extended file
|
||||
attributes.
|
||||
|
||||
---
|
||||
configure.ac | 12 +++++++++++
|
||||
server/file.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 79 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 32730f3..96d796a 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -73,6 +73,7 @@ AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthrea
|
||||
AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)]))
|
||||
AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]))
|
||||
AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)]))
|
||||
+AC_ARG_WITH(xattr, AS_HELP_STRING([--without-xattr],[do not use xattr (security attributes support)]))
|
||||
AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
|
||||
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
|
||||
AC_ARG_WITH(xcursor, AS_HELP_STRING([--without-xcursor],[do not use the Xcursor extension]),
|
||||
@@ -661,6 +662,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
|
||||
#include <sys/socket.h>
|
||||
#endif])
|
||||
|
||||
+if test "x$with_xattr" != "xno"
|
||||
+then
|
||||
+ AC_CHECK_HEADERS(attr/xattr.h,HAVE_XATTR=1)
|
||||
+fi
|
||||
+if test "x$with_xattr" == "xyes"
|
||||
+then
|
||||
+ WINE_ERROR_WITH(xattr,[test "x$HAVE_XATTR" = "x"],[xattr ${notice_platform}development files not \
|
||||
+found. Wine will be built without extended attribute support, which probably isn't what you want. \
|
||||
+You will need to install ${notice_platform}development packages of libacl at the very least.])
|
||||
+fi
|
||||
+
|
||||
dnl **** Check for working dll ****
|
||||
|
||||
AC_SUBST(dlldir,"\${libdir}/wine")
|
||||
diff --git a/server/file.c b/server/file.c
|
||||
index 8baa712..c375c72 100644
|
||||
--- a/server/file.c
|
||||
+++ b/server/file.c
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <time.h>
|
||||
+#include <limits.h>
|
||||
#include <unistd.h>
|
||||
#ifdef HAVE_UTIME_H
|
||||
#include <utime.h>
|
||||
@@ -39,6 +40,9 @@
|
||||
#ifdef HAVE_POLL_H
|
||||
#include <poll.h>
|
||||
#endif
|
||||
+#ifdef HAVE_ATTR_XATTR_H
|
||||
+#include <attr/xattr.h>
|
||||
+#endif
|
||||
|
||||
#include "ntstatus.h"
|
||||
#define WIN32_NO_STATUS
|
||||
@@ -178,6 +182,66 @@ static struct object *create_file_obj( struct fd *fd, unsigned int access, mode_
|
||||
return &file->obj;
|
||||
}
|
||||
|
||||
+void set_xattr_acls( int fd, const struct security_descriptor *sd )
|
||||
+{
|
||||
+#ifdef HAVE_ATTR_XATTR_H
|
||||
+ char buffer[XATTR_SIZE_MAX], *p = buffer;
|
||||
+ const ACE_HEADER *ace;
|
||||
+ int present, i, j, n;
|
||||
+ const ACL *dacl;
|
||||
+
|
||||
+ if (!sd) return;
|
||||
+ dacl = sd_get_dacl( sd, &present );
|
||||
+ if (!present || !dacl) return;
|
||||
+ ace = (const ACE_HEADER *)(dacl + 1);
|
||||
+
|
||||
+ for (i = 0; i < dacl->AceCount; i++, ace = ace_next( ace ))
|
||||
+ {
|
||||
+ BYTE type = ace->AceType, flags;
|
||||
+ const ACCESS_ALLOWED_ACE *aaa;
|
||||
+ const ACCESS_DENIED_ACE *ada;
|
||||
+ char sidtxt[100], *s;
|
||||
+ const SID *sid;
|
||||
+ DWORD mask;
|
||||
+
|
||||
+ if (type & INHERIT_ONLY_ACE) continue;
|
||||
+
|
||||
+ switch (type)
|
||||
+ {
|
||||
+ case ACCESS_DENIED_ACE_TYPE:
|
||||
+ ada = (const ACCESS_DENIED_ACE *)ace;
|
||||
+ flags = ada->Header.AceFlags;
|
||||
+ mask = ada->Mask;
|
||||
+ sid = (const SID *)&ada->SidStart;
|
||||
+ break;
|
||||
+ case ACCESS_ALLOWED_ACE_TYPE:
|
||||
+ aaa = (const ACCESS_ALLOWED_ACE *)ace;
|
||||
+ flags = aaa->Header.AceFlags;
|
||||
+ mask = aaa->Mask;
|
||||
+ sid = (const SID *)&aaa->SidStart;
|
||||
+ break;
|
||||
+ default:
|
||||
+ continue;
|
||||
+ }
|
||||
+ n = sprintf( sidtxt, "S-%u-%d", sid->Revision,
|
||||
+ MAKELONG(
|
||||
+ MAKEWORD( sid->IdentifierAuthority.Value[5],
|
||||
+ sid->IdentifierAuthority.Value[4] ),
|
||||
+ MAKEWORD( sid->IdentifierAuthority.Value[3],
|
||||
+ sid->IdentifierAuthority.Value[2] )
|
||||
+ ) );
|
||||
+ s = sidtxt + n;
|
||||
+ for( j=0; j<sid->SubAuthorityCount; j++ )
|
||||
+ s += sprintf( s, "-%u", sid->SubAuthority[j] );
|
||||
+
|
||||
+ p += snprintf( p, XATTR_SIZE_MAX-(p-buffer), "%s%x,%x,%x,%s",
|
||||
+ (p != buffer ? ";" : ""), type, flags, mask, sidtxt );
|
||||
+ }
|
||||
+
|
||||
+ fsetxattr( fd, "user.wine.acl", buffer, p-buffer, 0 );
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
static struct object *create_file( struct fd *root, const char *nameptr, data_size_t len,
|
||||
unsigned int access, unsigned int sharing, int create,
|
||||
unsigned int options, unsigned int attrs,
|
||||
@@ -239,6 +303,7 @@ static struct object *create_file( struct fd *root, const char *nameptr, data_si
|
||||
/* FIXME: should set error to STATUS_OBJECT_NAME_COLLISION if file existed before */
|
||||
fd = open_fd( root, name, flags | O_NONBLOCK | O_LARGEFILE, &mode, access, sharing, options );
|
||||
if (!fd) goto done;
|
||||
+ set_xattr_acls( get_unix_fd( fd ), sd );
|
||||
|
||||
if (S_ISDIR(mode))
|
||||
obj = create_dir_obj( fd, access, mode );
|
||||
@@ -580,6 +645,8 @@ int file_set_acls( struct object *obj, struct fd *fd, const struct security_desc
|
||||
mode = st.st_mode & (S_ISUID|S_ISGID|S_ISVTX);
|
||||
mode |= sd_to_mode( sd, owner );
|
||||
|
||||
+ set_xattr_acls( unix_fd, sd );
|
||||
+
|
||||
if (((st.st_mode ^ mode) & (S_IRWXU|S_IRWXG|S_IRWXO)) && fchmod( unix_fd, mode ) == -1)
|
||||
{
|
||||
file_set_error();
|
||||
--
|
||||
1.7.9.5
|
||||
|
@@ -1,293 +0,0 @@
|
||||
From 66583f9f848becaa12d84270a2ebe7a79ac34724 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Thu, 13 Feb 2014 16:04:57 -0700
|
||||
Subject: server: Retrieve file security attributes with extended file
|
||||
attributes.
|
||||
|
||||
---
|
||||
dlls/advapi32/tests/security.c | 49 +++++++------
|
||||
server/file.c | 156 +++++++++++++++++++++++++++++++++++++++-
|
||||
2 files changed, 177 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
|
||||
index e2e9cd5..f107abc 100644
|
||||
--- a/dlls/advapi32/tests/security.c
|
||||
+++ b/dlls/advapi32/tests/security.c
|
||||
@@ -3105,24 +3105,24 @@ static void test_CreateDirectoryA(void)
|
||||
bret = pGetAce(pDacl, 0, (VOID **)&ace);
|
||||
ok(bret, "Failed to get Current User ACE.\n");
|
||||
bret = EqualSid(&ace->SidStart, user_sid);
|
||||
- todo_wine ok(bret, "Current User ACE != Current User SID.\n");
|
||||
- todo_wine ok(((ACE_HEADER *)ace)->AceFlags == (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE),
|
||||
- "Current User ACE has unexpected flags (0x%x != 0x03)\n",
|
||||
- ((ACE_HEADER *)ace)->AceFlags);
|
||||
- ok(ace->Mask == 0x1f01ff, "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n",
|
||||
- ace->Mask);
|
||||
+ ok(bret, "Current User ACE != Current User SID.\n");
|
||||
+ ok(((ACE_HEADER *)ace)->AceFlags == (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE),
|
||||
+ "Current User ACE has unexpected flags (0x%x != 0x03)\n",
|
||||
+ ((ACE_HEADER *)ace)->AceFlags);
|
||||
+ todo_wine ok(ace->Mask == 0x1f01ff,
|
||||
+ "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
}
|
||||
if (acl_size.AceCount > 1)
|
||||
{
|
||||
bret = pGetAce(pDacl, 1, (VOID **)&ace);
|
||||
ok(bret, "Failed to get Administators Group ACE.\n");
|
||||
bret = EqualSid(&ace->SidStart, admin_sid);
|
||||
- todo_wine ok(bret, "Administators Group ACE != Administators Group SID.\n");
|
||||
- todo_wine ok(((ACE_HEADER *)ace)->AceFlags == (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE),
|
||||
- "Administators Group ACE has unexpected flags (0x%x != 0x03)\n",
|
||||
- ((ACE_HEADER *)ace)->AceFlags);
|
||||
- ok(ace->Mask == 0x1f01ff, "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n",
|
||||
- ace->Mask);
|
||||
+ ok(bret, "Administators Group ACE != Administators Group SID.\n");
|
||||
+ ok(((ACE_HEADER *)ace)->AceFlags == (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE),
|
||||
+ "Administators Group ACE has unexpected flags (0x%x != 0x03)\n",
|
||||
+ ((ACE_HEADER *)ace)->AceFlags);
|
||||
+ todo_wine ok(ace->Mask == 0x1f01ff,
|
||||
+ "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
}
|
||||
|
||||
done:
|
||||
@@ -3294,23 +3294,22 @@ static void test_GetNamedSecurityInfoA(void)
|
||||
bret = pGetAce(pDacl, 0, (VOID **)&ace);
|
||||
ok(bret, "Failed to get Current User ACE.\n");
|
||||
bret = EqualSid(&ace->SidStart, user_sid);
|
||||
- todo_wine ok(bret, "Current User ACE != Current User SID.\n");
|
||||
+ ok(bret, "Current User ACE != Current User SID.\n");
|
||||
ok(((ACE_HEADER *)ace)->AceFlags == 0,
|
||||
"Current User ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
|
||||
- ok(ace->Mask == 0x1f01ff, "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n",
|
||||
- ace->Mask);
|
||||
+ todo_wine ok(ace->Mask == 0x1f01ff,
|
||||
+ "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
}
|
||||
if (acl_size.AceCount > 1)
|
||||
{
|
||||
bret = pGetAce(pDacl, 1, (VOID **)&ace);
|
||||
ok(bret, "Failed to get Administators Group ACE.\n");
|
||||
bret = EqualSid(&ace->SidStart, admin_sid);
|
||||
- todo_wine ok(bret || broken(!bret) /* win2k */,
|
||||
- "Administators Group ACE != Administators Group SID.\n");
|
||||
+ ok(bret || broken(!bret) /* win2k */, "Administators Group ACE != Administators Group SID.\n");
|
||||
ok(((ACE_HEADER *)ace)->AceFlags == 0,
|
||||
"Administators Group ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
|
||||
- ok(ace->Mask == 0x1f01ff || broken(ace->Mask == GENERIC_ALL) /* win2k */,
|
||||
- "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
+ todo_wine ok(ace->Mask == 0x1f01ff || broken(ace->Mask == GENERIC_ALL) /* win2k */,
|
||||
+ "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
}
|
||||
LocalFree(pSD);
|
||||
HeapFree(GetProcessHeap(), 0, user);
|
||||
@@ -3960,22 +3959,22 @@ static void test_GetSecurityInfo(void)
|
||||
bret = pGetAce(pDacl, 0, (VOID **)&ace);
|
||||
ok(bret, "Failed to get Current User ACE.\n");
|
||||
bret = EqualSid(&ace->SidStart, user_sid);
|
||||
- todo_wine ok(bret, "Current User ACE != Current User SID.\n");
|
||||
+ ok(bret, "Current User ACE != Current User SID.\n");
|
||||
ok(((ACE_HEADER *)ace)->AceFlags == 0,
|
||||
"Current User ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
|
||||
- ok(ace->Mask == 0x1f01ff, "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n",
|
||||
- ace->Mask);
|
||||
+ todo_wine ok(ace->Mask == 0x1f01ff,
|
||||
+ "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
}
|
||||
if (acl_size.AceCount > 1)
|
||||
{
|
||||
bret = pGetAce(pDacl, 1, (VOID **)&ace);
|
||||
ok(bret, "Failed to get Administators Group ACE.\n");
|
||||
bret = EqualSid(&ace->SidStart, admin_sid);
|
||||
- todo_wine ok(bret, "Administators Group ACE != Administators Group SID.\n");
|
||||
+ ok(bret, "Administators Group ACE != Administators Group SID.\n");
|
||||
ok(((ACE_HEADER *)ace)->AceFlags == 0,
|
||||
"Administators Group ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
|
||||
- ok(ace->Mask == 0x1f01ff, "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n",
|
||||
- ace->Mask);
|
||||
+ todo_wine ok(ace->Mask == 0x1f01ff,
|
||||
+ "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
}
|
||||
CloseHandle(obj);
|
||||
}
|
||||
diff --git a/server/file.c b/server/file.c
|
||||
index c375c72..b9135b9 100644
|
||||
--- a/server/file.c
|
||||
+++ b/server/file.c
|
||||
@@ -489,11 +489,160 @@ struct security_descriptor *mode_to_sd( mode_t mode, const SID *user, const SID
|
||||
return sd;
|
||||
}
|
||||
|
||||
+struct security_descriptor *get_xattr_acls( int fd, const SID *user, const SID *group )
|
||||
+{
|
||||
+#ifdef HAVE_ATTR_XATTR_H
|
||||
+ int ace_count = 0, dacl_size = sizeof(ACL), i, n;
|
||||
+ char buffer[XATTR_SIZE_MAX], *p = buffer, *pn;
|
||||
+ struct security_descriptor *sd;
|
||||
+ ACE_HEADER *current_ace;
|
||||
+ ACCESS_ALLOWED_ACE *aaa;
|
||||
+ ACCESS_DENIED_ACE *ada;
|
||||
+ int type, flags, mask;
|
||||
+ ACL *dacl;
|
||||
+ char *ptr;
|
||||
+
|
||||
+ n = fgetxattr( fd, "user.wine.acl", buffer, sizeof(buffer) );
|
||||
+ if (n == -1) return NULL;
|
||||
+ buffer[n] = 0;
|
||||
+
|
||||
+ do
|
||||
+ {
|
||||
+ int sub_authority_count = 0;
|
||||
+
|
||||
+ pn = strchr(p, ';');
|
||||
+ if (pn) pn++;
|
||||
+ sscanf(p, "%x", &type);
|
||||
+ do
|
||||
+ {
|
||||
+ p = strchr(p, '-');
|
||||
+ if (p) p++;
|
||||
+ sub_authority_count++;
|
||||
+ }
|
||||
+ while(p && (!pn || p < pn));
|
||||
+ sub_authority_count -= 3; /* Revision and IdentifierAuthority don't count */
|
||||
+
|
||||
+ switch (type)
|
||||
+ {
|
||||
+ case ACCESS_DENIED_ACE_TYPE:
|
||||
+ dacl_size += FIELD_OFFSET(ACCESS_DENIED_ACE, SidStart) +
|
||||
+ FIELD_OFFSET(SID, SubAuthority[sub_authority_count]);
|
||||
+ break;
|
||||
+ case ACCESS_ALLOWED_ACE_TYPE:
|
||||
+ dacl_size += FIELD_OFFSET(ACCESS_ALLOWED_ACE, SidStart) +
|
||||
+ FIELD_OFFSET(SID, SubAuthority[sub_authority_count]);
|
||||
+ break;
|
||||
+ default:
|
||||
+ continue;
|
||||
+ }
|
||||
+ ace_count++;
|
||||
+ p = pn;
|
||||
+ }
|
||||
+ while(p);
|
||||
+
|
||||
+ sd = mem_alloc( sizeof(struct security_descriptor) +
|
||||
+ FIELD_OFFSET(SID, SubAuthority[user->SubAuthorityCount]) +
|
||||
+ FIELD_OFFSET(SID, SubAuthority[group->SubAuthorityCount]) +
|
||||
+ dacl_size );
|
||||
+
|
||||
+ sd->control = SE_DACL_PRESENT;
|
||||
+ sd->owner_len = FIELD_OFFSET(SID, SubAuthority[user->SubAuthorityCount]);
|
||||
+ sd->group_len = FIELD_OFFSET(SID, SubAuthority[group->SubAuthorityCount]);
|
||||
+ sd->sacl_len = 0;
|
||||
+ sd->dacl_len = dacl_size;
|
||||
+
|
||||
+ ptr = (char *)(sd + 1);
|
||||
+ memcpy( ptr, user, sd->owner_len );
|
||||
+ ptr += sd->owner_len;
|
||||
+ memcpy( ptr, group, sd->group_len );
|
||||
+ ptr += sd->group_len;
|
||||
+
|
||||
+ dacl = (ACL *)ptr;
|
||||
+ dacl->AclRevision = ACL_REVISION;
|
||||
+ dacl->Sbz1 = 0;
|
||||
+ dacl->AclSize = dacl_size;
|
||||
+ dacl->AceCount = ace_count;
|
||||
+ dacl->Sbz2 = 0;
|
||||
+ aaa = (ACCESS_ALLOWED_ACE *)(dacl + 1);
|
||||
+ current_ace = &aaa->Header;
|
||||
+
|
||||
+ p = buffer;
|
||||
+ for(i=0; i<ace_count; i++)
|
||||
+ {
|
||||
+ char b[sizeof(SID) + sizeof(ULONG) * SID_MAX_SUB_AUTHORITIES];
|
||||
+ int sub_authority_count = 0;
|
||||
+ SID *sid = (SID *)&b[0];
|
||||
+ char sidtxt[100];
|
||||
+ int rev, ia, sa;
|
||||
+
|
||||
+ if (i != 0)
|
||||
+ {
|
||||
+ aaa = (ACCESS_ALLOWED_ACE *)ace_next( current_ace );
|
||||
+ current_ace = &aaa->Header;
|
||||
+ }
|
||||
+ pn = strchr(p, ';');
|
||||
+ if (pn) pn++;
|
||||
+ sscanf(p, "%x,%x,%x,%[^;]", &type, &flags, &mask, sidtxt);
|
||||
+ sscanf(sidtxt, "S-%u-%d", &rev, &ia);
|
||||
+ sid->Revision = rev;
|
||||
+ sid->IdentifierAuthority.Value[0] = 0;
|
||||
+ sid->IdentifierAuthority.Value[1] = 0;
|
||||
+ sid->IdentifierAuthority.Value[2] = HIBYTE(HIWORD(ia));
|
||||
+ sid->IdentifierAuthority.Value[3] = LOBYTE(HIWORD(ia));
|
||||
+ sid->IdentifierAuthority.Value[4] = HIBYTE(LOWORD(ia));
|
||||
+ sid->IdentifierAuthority.Value[5] = LOBYTE(LOWORD(ia));
|
||||
+ p = strchr(sidtxt, '-')+1;
|
||||
+ p = strchr(p, '-')+1; /* Revision doesn't count */
|
||||
+ p = strchr(p, '-')+1; /* IdentifierAuthority doesn't count */
|
||||
+ do
|
||||
+ {
|
||||
+ sscanf(p, "%u", &sa);
|
||||
+ sid->SubAuthority[sub_authority_count] = sa;
|
||||
+ p = strchr(p, '-');
|
||||
+ if (p) p++;
|
||||
+ sub_authority_count++;
|
||||
+ }
|
||||
+ while(p);
|
||||
+ sid->SubAuthorityCount = sub_authority_count;
|
||||
+
|
||||
+ /* Handle the specific ACE */
|
||||
+ switch (type)
|
||||
+ {
|
||||
+ case ACCESS_DENIED_ACE_TYPE:
|
||||
+ ada = (ACCESS_DENIED_ACE *)aaa;
|
||||
+ ada->Header.AceType = type;
|
||||
+ ada->Header.AceFlags = flags;
|
||||
+ ada->Header.AceSize = FIELD_OFFSET(ACCESS_DENIED_ACE, SidStart) +
|
||||
+ FIELD_OFFSET(SID, SubAuthority[sid->SubAuthorityCount]);
|
||||
+ ada->Mask = mask;
|
||||
+ memcpy( &ada->SidStart, sid, FIELD_OFFSET(SID, SubAuthority[sid->SubAuthorityCount]) );
|
||||
+ break;
|
||||
+ case ACCESS_ALLOWED_ACE_TYPE:
|
||||
+ aaa->Header.AceType = type;
|
||||
+ aaa->Header.AceFlags = flags;
|
||||
+ aaa->Header.AceSize = FIELD_OFFSET(ACCESS_ALLOWED_ACE, SidStart) +
|
||||
+ FIELD_OFFSET(SID, SubAuthority[sid->SubAuthorityCount]);
|
||||
+ aaa->Mask = mask;
|
||||
+ memcpy( &aaa->SidStart, sid, FIELD_OFFSET(SID, SubAuthority[sid->SubAuthorityCount]) );
|
||||
+ break;
|
||||
+ default:
|
||||
+ continue;
|
||||
+ }
|
||||
+ p = pn;
|
||||
+ }
|
||||
+
|
||||
+ return sd;
|
||||
+#else
|
||||
+ return NULL;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
struct security_descriptor *file_get_acls( struct object *obj, struct fd *fd, mode_t *mode,
|
||||
uid_t *uid )
|
||||
{
|
||||
int unix_fd = get_unix_fd( fd );
|
||||
struct security_descriptor *sd;
|
||||
+ const SID *user, *group;
|
||||
struct stat st;
|
||||
|
||||
if (unix_fd == -1 || fstat( unix_fd, &st ) == -1)
|
||||
@@ -504,9 +653,10 @@ struct security_descriptor *file_get_acls( struct object *obj, struct fd *fd, mo
|
||||
(st.st_uid == *uid))
|
||||
return obj->sd;
|
||||
|
||||
- sd = mode_to_sd( st.st_mode,
|
||||
- security_unix_uid_to_sid( st.st_uid ),
|
||||
- token_get_primary_group( current->process->token ));
|
||||
+ user = security_unix_uid_to_sid( st.st_uid );
|
||||
+ group = token_get_primary_group( current->process->token );
|
||||
+ sd = get_xattr_acls( unix_fd, user, group );
|
||||
+ if (!sd) sd = mode_to_sd( st.st_mode, user, group);
|
||||
if (!sd) return obj->sd;
|
||||
|
||||
*mode = st.st_mode;
|
||||
--
|
||||
1.7.9.5
|
||||
|
@@ -1,124 +0,0 @@
|
||||
From e1b3d93adab31966d145ea41a9246d8f498c09d6 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Thu, 13 Feb 2014 16:06:54 -0700
|
||||
Subject: server: Convert return of file security masks with generic access
|
||||
mappings.
|
||||
|
||||
---
|
||||
dlls/advapi32/tests/security.c | 24 ++++++++++++------------
|
||||
server/file.c | 22 ++++++++++++++++++++++
|
||||
2 files changed, 34 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
|
||||
index f107abc..b71bad3 100644
|
||||
--- a/dlls/advapi32/tests/security.c
|
||||
+++ b/dlls/advapi32/tests/security.c
|
||||
@@ -3109,8 +3109,8 @@ static void test_CreateDirectoryA(void)
|
||||
ok(((ACE_HEADER *)ace)->AceFlags == (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE),
|
||||
"Current User ACE has unexpected flags (0x%x != 0x03)\n",
|
||||
((ACE_HEADER *)ace)->AceFlags);
|
||||
- todo_wine ok(ace->Mask == 0x1f01ff,
|
||||
- "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
+ ok(ace->Mask == 0x1f01ff, "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n",
|
||||
+ ace->Mask);
|
||||
}
|
||||
if (acl_size.AceCount > 1)
|
||||
{
|
||||
@@ -3121,8 +3121,8 @@ static void test_CreateDirectoryA(void)
|
||||
ok(((ACE_HEADER *)ace)->AceFlags == (OBJECT_INHERIT_ACE|CONTAINER_INHERIT_ACE),
|
||||
"Administators Group ACE has unexpected flags (0x%x != 0x03)\n",
|
||||
((ACE_HEADER *)ace)->AceFlags);
|
||||
- todo_wine ok(ace->Mask == 0x1f01ff,
|
||||
- "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
+ ok(ace->Mask == 0x1f01ff, "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n",
|
||||
+ ace->Mask);
|
||||
}
|
||||
|
||||
done:
|
||||
@@ -3297,8 +3297,8 @@ static void test_GetNamedSecurityInfoA(void)
|
||||
ok(bret, "Current User ACE != Current User SID.\n");
|
||||
ok(((ACE_HEADER *)ace)->AceFlags == 0,
|
||||
"Current User ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
|
||||
- todo_wine ok(ace->Mask == 0x1f01ff,
|
||||
- "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
+ ok(ace->Mask == 0x1f01ff, "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n",
|
||||
+ ace->Mask);
|
||||
}
|
||||
if (acl_size.AceCount > 1)
|
||||
{
|
||||
@@ -3308,8 +3308,8 @@ static void test_GetNamedSecurityInfoA(void)
|
||||
ok(bret || broken(!bret) /* win2k */, "Administators Group ACE != Administators Group SID.\n");
|
||||
ok(((ACE_HEADER *)ace)->AceFlags == 0,
|
||||
"Administators Group ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
|
||||
- todo_wine ok(ace->Mask == 0x1f01ff || broken(ace->Mask == GENERIC_ALL) /* win2k */,
|
||||
- "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
+ ok(ace->Mask == 0x1f01ff || broken(ace->Mask == GENERIC_ALL) /* win2k */,
|
||||
+ "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
}
|
||||
LocalFree(pSD);
|
||||
HeapFree(GetProcessHeap(), 0, user);
|
||||
@@ -3962,8 +3962,8 @@ static void test_GetSecurityInfo(void)
|
||||
ok(bret, "Current User ACE != Current User SID.\n");
|
||||
ok(((ACE_HEADER *)ace)->AceFlags == 0,
|
||||
"Current User ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
|
||||
- todo_wine ok(ace->Mask == 0x1f01ff,
|
||||
- "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
+ ok(ace->Mask == 0x1f01ff, "Current User ACE has unexpected mask (0x%x != 0x1f01ff)\n",
|
||||
+ ace->Mask);
|
||||
}
|
||||
if (acl_size.AceCount > 1)
|
||||
{
|
||||
@@ -3973,8 +3973,8 @@ static void test_GetSecurityInfo(void)
|
||||
ok(bret, "Administators Group ACE != Administators Group SID.\n");
|
||||
ok(((ACE_HEADER *)ace)->AceFlags == 0,
|
||||
"Administators Group ACE has unexpected flags (0x%x != 0x0)\n", ((ACE_HEADER *)ace)->AceFlags);
|
||||
- todo_wine ok(ace->Mask == 0x1f01ff,
|
||||
- "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n", ace->Mask);
|
||||
+ ok(ace->Mask == 0x1f01ff, "Administators Group ACE has unexpected mask (0x%x != 0x1f01ff)\n",
|
||||
+ ace->Mask);
|
||||
}
|
||||
CloseHandle(obj);
|
||||
}
|
||||
diff --git a/server/file.c b/server/file.c
|
||||
index b9135b9..0df2245 100644
|
||||
--- a/server/file.c
|
||||
+++ b/server/file.c
|
||||
@@ -637,6 +637,27 @@ struct security_descriptor *get_xattr_acls( int fd, const SID *user, const SID *
|
||||
#endif
|
||||
}
|
||||
|
||||
+/* Convert generic rights into standard access rights */
|
||||
+void convert_generic_sd( struct security_descriptor *sd )
|
||||
+{
|
||||
+ const ACL *dacl;
|
||||
+ int present;
|
||||
+
|
||||
+ dacl = sd_get_dacl( sd, &present );
|
||||
+ if (present && dacl)
|
||||
+ {
|
||||
+ const ACE_HEADER *ace = (const ACE_HEADER *)(dacl + 1);
|
||||
+ ULONG i;
|
||||
+
|
||||
+ for (i = 0; i < dacl->AceCount; i++, ace = ace_next( ace ))
|
||||
+ {
|
||||
+ DWORD *mask = (DWORD *)(ace + 1);
|
||||
+
|
||||
+ *mask = generic_file_map_access( *mask );
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
struct security_descriptor *file_get_acls( struct object *obj, struct fd *fd, mode_t *mode,
|
||||
uid_t *uid )
|
||||
{
|
||||
@@ -656,6 +677,7 @@ struct security_descriptor *file_get_acls( struct object *obj, struct fd *fd, mo
|
||||
user = security_unix_uid_to_sid( st.st_uid );
|
||||
group = token_get_primary_group( current->process->token );
|
||||
sd = get_xattr_acls( unix_fd, user, group );
|
||||
+ if (sd) convert_generic_sd( sd );
|
||||
if (!sd) sd = mode_to_sd( st.st_mode, user, group);
|
||||
if (!sd) return obj->sd;
|
||||
|
||||
--
|
||||
1.7.9.5
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user