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
390 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
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 | ||
|
ec9af72c77 |
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
debian/tools/wine
|
||||
.depcache
|
||||
.srccache
|
||||
*.ok
|
||||
*.pyc
|
152
DEVELOPER.md
Normal file
152
DEVELOPER.md
Normal file
@@ -0,0 +1,152 @@
|
||||
Developers and maintainers guide
|
||||
================================
|
||||
|
||||
This document will provide some information targeted at developers, who
|
||||
either want to build/package Wine-Compholio for their distribution, but also
|
||||
for developers who would like to contribute their patches to Wine-Compholio,
|
||||
to get them included in future releases.
|
||||
|
||||
|
||||
|
||||
Compiling Wine-Compholio
|
||||
========================
|
||||
|
||||
**Warning:** Please note that starting with Wine-Compholio 1.7.23 it is
|
||||
deprecated to manually apply patches without using the Makefile. To avoid
|
||||
typical pitfalls for package maintainers (like trying to use the patch
|
||||
commandline utility for binary patches or not updating the patchlist) it is
|
||||
highly recommended to use the Makefile in order to apply all patches. This
|
||||
ensures that the the correct patch utility is used, that the list of patches
|
||||
is updated appropriately, and so on. Please note that it is still possible
|
||||
to exclude patches if desired, take a look at the end of this document for
|
||||
more details.
|
||||
|
||||
Instructions
|
||||
------------
|
||||
|
||||
The following instructions (based on the [Gentoo
|
||||
Wiki](https://wiki.gentoo.org/wiki/Netflix/Pipelight#Compiling_manually))
|
||||
will give a short overview how to compile Wine-Compholio, but of course not
|
||||
explain all details. Make sure to install all required Wine dependencies
|
||||
before proceeding.
|
||||
|
||||
As the first step please grab the latest Wine source:
|
||||
```bash
|
||||
wget http://prdownloads.sourceforge.net/wine/wine-1.7.28.tar.bz2
|
||||
wget https://github.com/compholio/wine-compholio-daily/archive/v1.7.28.tar.gz
|
||||
```
|
||||
|
||||
Extract the archives:
|
||||
```bash
|
||||
tar xvjf wine-1*.tar.bz2
|
||||
cd wine-1*
|
||||
tar xvzf ../v1.7.28.tar.gz --strip-components 1
|
||||
```
|
||||
|
||||
And apply the patches:
|
||||
```bash
|
||||
make -C ./patches DESTDIR=$(pwd) install
|
||||
```
|
||||
|
||||
Afterwards run configure (you can also specify a prefix if you don't want to install
|
||||
Wine-Compholio system-wide):
|
||||
```bash
|
||||
./configure --with-xattr
|
||||
```
|
||||
|
||||
Before you continue you should make sure that `./configure` doesn't show any
|
||||
warnings (look at the end of the output). If there are any warnings, this
|
||||
most likely means that you're missing some important header files. Install
|
||||
them and repeat the `./configure` step until all problems are fixed.
|
||||
|
||||
Afterwards compile it (and grab a cup of coffee):
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
And install it (you only need sudo for a system-wide installation):
|
||||
```bash
|
||||
sudo make install
|
||||
```
|
||||
|
||||
Excluding patches
|
||||
-----------------
|
||||
|
||||
It is also possible to apply only a subset of the patches, for example if
|
||||
you're compiling for a distribution where PulseAudio is not installed, or
|
||||
if you just don't like a specific patchset. Please note that some patchsets
|
||||
depend on each other, and requesting an impossible situation might result
|
||||
in a failure to apply all patches.
|
||||
|
||||
Lets assume you want to exclude the patchset in directory `DIRNAME`, then
|
||||
just invoke the Makefile like this:
|
||||
```bash
|
||||
make -C ./patches DESTDIR=$(pwd) install -W DIRNAME.ok
|
||||
```
|
||||
|
||||
Using the same method its also possible to exclude multiple patchsets. If you
|
||||
want to exclude a very large number of patches, it is easier to do specify
|
||||
a list of patches which should be included instead. To apply for example
|
||||
only the patchsets in directory `DIRNAME1` and `DIRNAME2`, you can use:
|
||||
```bash
|
||||
make -C ./patches DESTDIR=$(pwd) PATCHLIST="DIRNAME1.ok DIRNAME2.ok" install
|
||||
```
|
||||
|
||||
|
||||
Contributing to Wine-Compholio
|
||||
==============================
|
||||
|
||||
Please note that Wine-Compholio is not just an arbitrary collection of Wine
|
||||
patches. We see Wine-Compholio as a **testing version** in preparation for
|
||||
patches to be submitted to upstream Wine. This implies that all patches should
|
||||
at least have a minimum standard quality. Unlike some other PPAs/AURs which
|
||||
provide heavily patched Wine versions, we will not accept hacks for very
|
||||
specific games. Such hacks often break compatibility with other applications,
|
||||
which means we probably don't want to include them, sorry.
|
||||
|
||||
If you think your patches are indeed a proper implementation, then feel free
|
||||
to contribute them. Please note that to allow possible later inclusion
|
||||
into upstream Wine, we will require you to pay attention to the same
|
||||
[rules](http://wiki.winehq.org/SubmittingPatches). Please be patient and
|
||||
give us up to about a week to review them - we're a very small team, so
|
||||
it might take some time, and we want to make sure that the implementation
|
||||
doesn't contain any critical errors, which could cause regressions. If you
|
||||
want to contribute huge sets of patches, we would really like you to *stay
|
||||
contributing* in the future. Even if we accepted your patches, this doesn't
|
||||
necessary mean we understand all of it, and if you cannot or don't want
|
||||
to maintain them (especially in case of errors, or difficult rebasing),
|
||||
we will probably end up removing them again.
|
||||
|
||||
You can also suggest adding patches written by other people - in this case
|
||||
your request should include who wrote the patch. Anonymous patches which
|
||||
don't include the author information aren't welcome, similar to the rules
|
||||
for upstream Wine.
|
||||
|
||||
|
||||
Attribution guidelines
|
||||
----------------------
|
||||
|
||||
The Wine "Compholio" Edition repository expects all patches to conform to
|
||||
Wine's (undocumented) attribution guidelines. There are a variety of ways
|
||||
to attribute patches, but they all involve an additional line to the patch
|
||||
subject:
|
||||
|
||||
```
|
||||
commit 0000000000000000000000000000000000000000
|
||||
Author: Example Author <example.email@email-provider.com>
|
||||
Date: Sat Jul 26 12:31:50 2014 -0600
|
||||
|
||||
Name of patch.
|
||||
|
||||
TYPE-OF-ATTRIBUTION.
|
||||
```
|
||||
|
||||
TYPE-OF-ATTRIBUTION can be any of the following:
|
||||
|
||||
`Found/Spotted by FINDER.`: The resolved issue was found by FINDER, they
|
||||
should receive appropriate credit for finding the problem - even though
|
||||
their patch was not used in the final implementation.
|
||||
|
||||
`Based on patch by AUTHOR.`: The patch created by AUTHOR was a starting point
|
||||
for the patch, some modifications were made to their patch - but they should
|
||||
receive credit since the original implementation was theirs.
|
1405
LICENSE.md
Normal file
1405
LICENSE.md
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
127
README.md
127
README.md
@@ -1,22 +1,113 @@
|
||||
wine-compholio-daily
|
||||
====================
|
||||
What is Wine-Compholio?
|
||||
=======================
|
||||
|
||||
Daily updates for the Wine "Compholio" Edition.
|
||||
**Warning: Do not report bugs at bugs.winehq.org when using this version!
|
||||
Please take a look at our
|
||||
[Wiki](https://github.com/compholio/wine-compholio/wiki/Reporting-bugs)
|
||||
for more information about how to report bugs.**
|
||||
|
||||
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)
|
||||
* Workaround for TransactNamedPipe not being supported (http://bugs.winehq.org/show_bug.cgi?id=17273)
|
||||
* Avoid unloading modules while hook is still active (http://bugs.winehq.org/show_bug.cgi?id=22091)
|
||||
* Add missing DBG_PRINTEXCEPTION_C exception in OutputDebugStringA (http://bugs.winehq.org/show_bug.cgi?id=35646)
|
||||
* XEMBED support for embedding Wine windows inside Linux applications
|
||||
* Reduced SetTimer minimum value from 15 ms to 5 ms (improves Silverlight framerates)
|
||||
The **Wine "Compholio" Edition** is a special build of the popular Wine
|
||||
software that includes both patches written by our team and selected patches
|
||||
by third party developers that we consider good enough for inclusion. This can
|
||||
be seen as a testing version in preparation for patches to be submitted to
|
||||
upstream Wine - don't be surprised if you encounter additional bugs, which are
|
||||
not present in regular wine, and always report such issues to us (via github!),
|
||||
so we can improve our fixes even further. Thanks!
|
||||
|
||||
|
||||
How to install and use Wine-Compholio
|
||||
=====================================
|
||||
|
||||
Ready-to-use packages for Wine-Compholio are available for a variety
|
||||
of different Linux distributions directly for download. Just follow the
|
||||
instructions available on the
|
||||
[Wiki](https://github.com/compholio/wine-compholio/wiki/Installation).
|
||||
|
||||
When using Wine-Compholio 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-compholio/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/compholio/wine-compholio/wiki/Usage).
|
||||
|
||||
|
||||
Included bugfixes and improvements
|
||||
==================================
|
||||
|
||||
**Bugs fixed in Wine-Compholio 1.7.28 [73]:**
|
||||
|
||||
* ATL IOCS data should not be stored in GWLP_USERDATA ([Wine Bug #21767](http://bugs.winehq.org/show_bug.cgi?id=21767))
|
||||
* Add Dynamic DST exceptions for Israel Standard Time ([Wine Bug #36374](http://bugs.winehq.org/show_bug.cgi?id=36374))
|
||||
* Add default ACLs for user shell folders
|
||||
* Allow special characters in pipe names ([Wine Bug #28995](http://bugs.winehq.org/show_bug.cgi?id=28995))
|
||||
* Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](http://bugs.winehq.org/show_bug.cgi?id=30639))
|
||||
* Correctly treat '.' when checking for empty directories ([Wine Bug #26272](http://bugs.winehq.org/show_bug.cgi?id=26272))
|
||||
* Do not fail when a used context is passed to wglShareLists ([Wine Bug #11436](http://bugs.winehq.org/show_bug.cgi?id=11436))
|
||||
* Don't fill KdHelp structure for usermode applications ([Wine Bug #37272](http://bugs.winehq.org/show_bug.cgi?id=37272))
|
||||
* Ensure NtProtectVirtualMemory and NtCreateSection are on separate pages ([Wine Bug #33162](http://bugs.winehq.org/show_bug.cgi?id=33162))
|
||||
* Fix black screen on startup introduced by pixelformat changes. ([Wine Bug #35950](http://bugs.winehq.org/show_bug.cgi?id=35950))
|
||||
* Fix comparison of punctuation characters in lstrcmp ([Wine Bug #10767](http://bugs.winehq.org/show_bug.cgi?id=10767))
|
||||
* Fix flickering introduced by pixelformat changes. ([Wine Bug #35718](http://bugs.winehq.org/show_bug.cgi?id=35718))
|
||||
* Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](http://bugs.winehq.org/show_bug.cgi?id=16550))
|
||||
* Fix for programs leaking wndproc slots ([Wine Bug #32451](http://bugs.winehq.org/show_bug.cgi?id=32451))
|
||||
* Fix gray screen on startup introduced by pixelformat changes. ([Wine Bug #35975](http://bugs.winehq.org/show_bug.cgi?id=35975))
|
||||
* Fix issue with invisible dragimages in ImageList ([Wine Bug #36761](http://bugs.winehq.org/show_bug.cgi?id=36761))
|
||||
* Fix issues when driver dispatch routine returns different status codes ([Wine Bug #30155](http://bugs.winehq.org/show_bug.cgi?id=30155))
|
||||
* Fix missing video introduced by pixelformat changes. ([Wine Bug #36900](http://bugs.winehq.org/show_bug.cgi?id=36900))
|
||||
* Fix unintentional leaks with ntdll internals
|
||||
* Fix wined3d performance drop introduced by pixelformat changes. ([Wine Bug #35655](http://bugs.winehq.org/show_bug.cgi?id=35655))
|
||||
* Games For Windows Live 1.x expects a valid linker version in the PE header ([Wine Bug #28768](http://bugs.winehq.org/show_bug.cgi?id=28768))
|
||||
* GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](http://bugs.winehq.org/show_bug.cgi?id=15980))
|
||||
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](http://bugs.winehq.org/show_bug.cgi?id=13829))
|
||||
* Implement an Arial replacement font ([Wine Bug #32323](http://bugs.winehq.org/show_bug.cgi?id=32323))
|
||||
* Improvement for heap allocation performance
|
||||
* Lego Stunt Rally requires DXTn software de/encoding support ([Wine Bug #25486](http://bugs.winehq.org/show_bug.cgi?id=25486))
|
||||
* Limit cross thread access to ImmSet* functions ([Wine Bug #35361](http://bugs.winehq.org/show_bug.cgi?id=35361))
|
||||
* Lockfree algorithm for filedescriptor cache (improves file access speed)
|
||||
* Make it possible to change media center / tablet pc status ([Wine Bug #18732](http://bugs.winehq.org/show_bug.cgi?id=18732))
|
||||
* Need for Speed 3 installer requires devices in HKEY_DYN_DATA ([Wine Bug #7115](http://bugs.winehq.org/show_bug.cgi?id=7115))
|
||||
* Other Pipelight-specific enhancements
|
||||
* Prevent window managers from grouping all wine programs together ([Wine Bug #32699](http://bugs.winehq.org/show_bug.cgi?id=32699))
|
||||
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
|
||||
* Return an error when trying to open a terminated process ([Wine Bug #37087](http://bugs.winehq.org/show_bug.cgi?id=37087))
|
||||
* Return correct IMediaSeeking stream positions in quartz ([Wine Bug #23174](http://bugs.winehq.org/show_bug.cgi?id=23174))
|
||||
* SO_CONNECT_TIME returns the appropriate time
|
||||
* Send WM_PAINT event during dialog creation ([Wine Bug #35652](http://bugs.winehq.org/show_bug.cgi?id=35652))
|
||||
* Set ldr.EntryPoint for main executable ([Wine Bug #33034](http://bugs.winehq.org/show_bug.cgi?id=33034))
|
||||
* Support for AllocateAndGetTcpExTableFromStack ([Wine Bug #34372](http://bugs.winehq.org/show_bug.cgi?id=34372))
|
||||
* Support for DOS hidden/system file attributes ([Wine Bug #9158](http://bugs.winehq.org/show_bug.cgi?id=9158))
|
||||
* Support for Dynamic DST (daylight saving time) information in registry
|
||||
* Support for FindFirstFileExW level FindExInfoBasic ([Wine Bug #37354](http://bugs.winehq.org/show_bug.cgi?id=37354))
|
||||
* Support for GetFinalPathNameByHandle ([Wine Bug #36073](http://bugs.winehq.org/show_bug.cgi?id=36073))
|
||||
* Support for GetSystemTimes ([Wine Bug #19813](http://bugs.winehq.org/show_bug.cgi?id=19813))
|
||||
* Support for GetVolumePathName
|
||||
* Support for IRichEditOle and ITextDocument support for ITextServices. ([Wine Bug #17042](http://bugs.winehq.org/show_bug.cgi?id=17042))
|
||||
* Support for ITextDocument_fnRange function ([Wine Bug #12458](http://bugs.winehq.org/show_bug.cgi?id=12458))
|
||||
* Support for ITextRange, ITextFont and ITextPara ([Wine Bug #18303](http://bugs.winehq.org/show_bug.cgi?id=18303))
|
||||
* Support for Junction Points ([Wine Bug #12401](http://bugs.winehq.org/show_bug.cgi?id=12401))
|
||||
* Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath ([Wine Bug #30385](http://bugs.winehq.org/show_bug.cgi?id=30385))
|
||||
* Support for LoadIconMetric ([Wine Bug #35375](http://bugs.winehq.org/show_bug.cgi?id=35375))
|
||||
* Support for NtQuerySection ([Wine Bug #37338](http://bugs.winehq.org/show_bug.cgi?id=37338))
|
||||
* Support for NtSetInformationFile class FileDispositionInformation ([Wine Bug #30397](http://bugs.winehq.org/show_bug.cgi?id=30397))
|
||||
* Support for PulseAudio backend for audio ([Wine Bug #10495](http://bugs.winehq.org/show_bug.cgi?id=10495))
|
||||
* Support for SHCreateSessionKey ([Wine Bug #35630](http://bugs.winehq.org/show_bug.cgi?id=35630))
|
||||
* Support for TOOLTIPS_GetTipText edge cases ([Wine Bug #30648](http://bugs.winehq.org/show_bug.cgi?id=30648))
|
||||
* Support for TransmitFile ([Wine Bug #5048](http://bugs.winehq.org/show_bug.cgi?id=5048))
|
||||
* Support for WTSEnumerateProcessesW ([Wine Bug #29903](http://bugs.winehq.org/show_bug.cgi?id=29903))
|
||||
* Support for [Get|Set]SystemFileCacheSize ([Wine Bug #35886](http://bugs.winehq.org/show_bug.cgi?id=35886))
|
||||
* Support for extra large and jumbo icon lists in shell32 ([Wine Bug #24721](http://bugs.winehq.org/show_bug.cgi?id=24721))
|
||||
* Support for inherited file ACLs ([Wine Bug #34406](http://bugs.winehq.org/show_bug.cgi?id=34406))
|
||||
* Support for interface change notifications ([Wine Bug #32328](http://bugs.winehq.org/show_bug.cgi?id=32328))
|
||||
* Support for process ACLs ([Wine Bug #22006](http://bugs.winehq.org/show_bug.cgi?id=22006))
|
||||
* Support for setcap on wine-preloader ([Wine Bug #26256](http://bugs.winehq.org/show_bug.cgi?id=26256))
|
||||
* Support for stored file ACLs ([Wine Bug #31858](http://bugs.winehq.org/show_bug.cgi?id=31858))
|
||||
* Support for ws2_32.inet_pton ([Wine Bug #36713](http://bugs.winehq.org/show_bug.cgi?id=36713))
|
||||
* Unity3D Editor requires ProductId registry value ([Wine Bug #36964](http://bugs.winehq.org/show_bug.cgi?id=36964))
|
||||
* Update a XIM candidate position when cursor location changes ([Wine Bug #30938](http://bugs.winehq.org/show_bug.cgi?id=30938))
|
||||
* Use manual relay for RunDLL_CallEntry16 in shell32 ([Wine Bug #23033](http://bugs.winehq.org/show_bug.cgi?id=23033))
|
||||
* Voobly expects correct handling of WRITECOPY memory protection ([Wine Bug #29384](http://bugs.winehq.org/show_bug.cgi?id=29384))
|
||||
* Workaround for shlwapi URLs with relative paths
|
||||
* Support for PulseAudio backend for audio
|
||||
* Other Pipelight specific enhancements
|
||||
* XEMBED support for embedding Wine windows inside Linux applications
|
||||
* nVidia driver for high-end laptop cards does not list all supported resolutions
|
||||
|
||||
|
144
debian/changelog
vendored
144
debian/changelog
vendored
@@ -1,3 +1,147 @@
|
||||
wine-compholio (1.7.28) unstable; urgency=low
|
||||
* Added missing recommendation for libtxc-dxtn-s2tc0 on Ubuntu.
|
||||
* Added patch to fix issues with over-the-spot input method.
|
||||
* Added patch to fix winemenubuilder desktop icon wine path (when using multiple wine versions).
|
||||
* Added patch to support FIND_FIRST_EX_CASE_SENSITIVE flag in FindFirstFileExW.
|
||||
* Added patch to send WM_PAINT event during dialog creation.
|
||||
* Added patch to fix issues when driver dispatch routine returns different status codes.
|
||||
* Added several patches for Unity3D Editor.
|
||||
* Added patch to fix differences between exception handling behaviour in Wine and Windows.
|
||||
* Added patch to export ?_BADOFF@std@@3_JB on both i386 and win64.
|
||||
* Added patch to limit cross thread access to ImmSet* functions.
|
||||
* Added patch for IRichEditOle and ITextDocument support for ITextServices.
|
||||
* Added patch to fix implementation of SH*Shared commands.
|
||||
* Added patch to handle WRITECOPY memory protection properly on i386 (disabled by default).
|
||||
* Added patch to fix some issues with write watches / guard page access.
|
||||
* Added patch to implement NtQuerySection.
|
||||
* Added patches to make clearly visible, that this is a patched wine version.
|
||||
* Added patch for FindFirstFileExW level FindExInfoBasic.
|
||||
* Removed patch to support FIND_FIRST_EX_CASE_SENSITIVE flag in FindFirstFileExW (accepted upstream).
|
||||
* Removed patch to fix implementation of SH*Shared commands (accepted upstream).
|
||||
* Removed patch to export ?_BADOFF@std@@3_JB on both i386 and win64 (accepted upstream).
|
||||
* Partially removed patches for CreateProcess ACLs (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sat, 04 Oct 2014 04:36:22 +0200
|
||||
|
||||
wine-compholio (1.7.27) unstable; urgency=low
|
||||
* Fixed some issues in the patches for GetSystemTimes.
|
||||
* Added patch to support FIND_FIRST_EX_LARGE_FETCH flag in FindFirstFileExW.
|
||||
* Added patch to fix deadlock caused by incorrect wrapper of glu polygon/contour function.
|
||||
* Added patch to avoid filling out KdHelp for usermode applications.
|
||||
* Added patch to silence repeated GSUB_apply_ChainContext[Subst|Pos] FIXMEs.
|
||||
* Added patch to revert wined3d pixelformat changes (causes regression in many games).
|
||||
* Added patch to implement software decoding/encoding of DXT1 textures.
|
||||
* Removed patch to use assembly wrapper for TLS callbacks (accepted upstream).
|
||||
* Removed patch to fix uninitialized cch struct member in GetMenuItemInfo (accepted upstream).
|
||||
* Removed some patches for riched20/IText*-interface (accepted upstream).
|
||||
* Removed patch to fix deadlock caused by incorrect wrapper of glu functions (accepted upstream).
|
||||
* Removed patch for stub of BCryptGetFipsAlgorithmMode (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sat, 20 Sep 2014 05:52:23 +0200
|
||||
|
||||
wine-compholio (1.7.26) unstable; urgency=low
|
||||
* Added new make targets 'series' and 'install-git'.
|
||||
* Some improvements in the patch system scripts.
|
||||
* Fixed issues in the winepulse configure script.
|
||||
* Fixed some issues in patches for Inherited ACLs.
|
||||
* Fixed some issues in patches for backwards compatibility with old ACL format.
|
||||
* Added patch to fix unintentional leaks with ntdll internals.
|
||||
* Added patch to add support for DOS hidden/system file attributes.
|
||||
* Added patch to use dynamic linking for libpcap.
|
||||
* Added patch to fix issues when using setcap on wine executable.
|
||||
* Added patch to improve heap allocation performance by using more freelists.
|
||||
* Added patch to fix detection of ncurses on Archlinux (avoids ugly workarounds at build time).
|
||||
* Added patch to fix detection of gnutls on Ubuntu 14.10.
|
||||
* Added patch to use assembly wrapper for TLS callbacks.
|
||||
* Added patch to fix uninitialized cch struct member in GetMenuItemInfo.
|
||||
* Removed patch to fix issue with msi/ITERATE_MoveFiles (accepted upstream).
|
||||
* Removed patch to fix detection of ncurses on Archlinux (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 07 Sep 2014 23:50:25 +0200
|
||||
|
||||
wine-compholio (1.7.25) unstable; urgency=low
|
||||
* Improve generation of README.md on patch update.
|
||||
* Updated patches for riched20 IText* Interface.
|
||||
* Fixed some issues in the patches for TransmitFile.
|
||||
* Fixed some issues in the patches for CreateProcess ACLs.
|
||||
* Fixed issue with gitapply.sh script on Gentoo systems.
|
||||
* Added patch with stub for DwmInvalidateIconicBitmaps.
|
||||
* Added Courier Prime (OFLv1.1) as a Courier New replacement.
|
||||
* Added patch to implement DOS hidden/system file attributes.
|
||||
* Added patch to better detect broken nVidia RandR 1.2 support.
|
||||
* Added patch to set linker version in PE header.
|
||||
* Added patch to move NtProtectVirtualMemory and NtCreateSection to separate pages.
|
||||
* Added patch to fix issues with drag image in ImageLists.
|
||||
* Added patch with stub for BCryptGetFipsAlgorithmMode.
|
||||
* Added patch to fix issues with OpenProcess on terminated processes.
|
||||
* Added patch to fix issues with msi/ITERATE_MoveFiles.
|
||||
* Added patch to avoid grouping all Wine windows together.
|
||||
* Added patch to implement KF_FLAG_DEFAULT_PATH for SHGetKnownFolderPath.
|
||||
* Added patch to implement GetFinalPathNameByHandle.
|
||||
* Removed patch to update gl_drawable for embedded windows (deprecated).
|
||||
* Removed patch to return empty D3D hardware flags for RGB device enumeration (accepted upstream).
|
||||
* Removed patch with stub for DwmInvalidateIconicBitmaps (accepted upstream).
|
||||
* Removed patch for SetNamedPipeHandleState implementation (accepted upstream).
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sun, 24 Aug 2014 11:09:58 -0600
|
||||
|
||||
wine-compholio (1.7.24) unstable; urgency=low
|
||||
* Various further improvements to the patch system.
|
||||
* Added patch to implement inet_pton.
|
||||
* Added patch to implement GetSystemTimes.
|
||||
* Added patch to implement SHCreateSessionKey.
|
||||
* Added patch to create directory available on Vista and later.
|
||||
* Added patch to fix edge cases in TOOLTIPS_GetTipText.
|
||||
* Added patch to allow special characters in pipe names.
|
||||
* Added patch with stubs for [Get|Set]SystemFileCacheSize.
|
||||
* Added patch to implement AllocateAndGetTcpExTableFromStack.
|
||||
* Added patch to support setting file disposition information.
|
||||
* Added patch to fix ConnectNamedPort return value in overlapped mode.
|
||||
* Added patch to store IOCS data in a property instead of GWLP_USERDATA.
|
||||
* Added patch to return empty D3D hardware flags for HEL device enumeration.
|
||||
* Added patch to return the appropriate connection time with SO_CONNECT_TIME.
|
||||
* Added patch to support extra large and jumbo icons.
|
||||
* Added patch to allow setting tablet / media center status via registry.
|
||||
* Added patch to use manual redirection for RunDLL_CallEntry16.
|
||||
* Added patch to set ldr.EntryPoint for main executable.
|
||||
* Added patch to fix invalid memory access in windowscodecs/PropertyBag.
|
||||
* Added patch to use a linear resampler when there a large number of dsound mixing buffers.
|
||||
* Added patch to fix comparison of punctuation characters in lstrcmp.
|
||||
* Added patch to workaround programs leaking wndproc splots.
|
||||
* Added patch to implement ITextRange, ITextFont and ITextPara.
|
||||
* Removed patch to create Vista directories (accepted upstream).
|
||||
* Removed strmbase/quartz locking fix patches (accepted upstream).
|
||||
* Removed windowscodecs/PropertyBag patch (accepted upstream).
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 08 Aug 2014 22:06:07 -0600
|
||||
|
||||
wine-compholio (1.7.23) unstable; urgency=low
|
||||
* Rewrite of patch system to simplify maintaining large patchsets.
|
||||
* Fix failing Junction Point test.
|
||||
* Fix possible race conditions in strmbase/quartz.
|
||||
* Fix race condition between EndOfStream and Pause.
|
||||
* Fix issues with Israel Standard Time timezone.
|
||||
* Add support for Dynamic DST (daylight saving time) information.
|
||||
* Add some generic hardware in HKEY_DYN_DATA\Config Manager\Enum.
|
||||
* Return correct IMediaSeeking stream positions in quartz.
|
||||
* Make sure LICENSE files are included in the Debian packages.
|
||||
* Downgraded Arial replacement font to Liberation Sans v1.07.3.
|
||||
* Remove relative Junction Point linking for now (breaks tests).
|
||||
* Added WenQuanYi Micro Hei (GPLv3) as a Microsoft Yahei replacement.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 25 Jul 2014 21:12:42 -0600
|
||||
|
||||
wine-compholio (1.7.22) unstable; urgency=low
|
||||
* Implement passing ACLs to CreateProcess.
|
||||
* Removed several patches (accepted upstream).
|
||||
* Added NT4 support to the process ACL tests.
|
||||
* Implement RegSetKeySecurity on top of NtSetSecurityObject.
|
||||
* Updated RegSetKeySecurity patch to work with special root keys.
|
||||
* Add patch for wtsapi32.WTSEnumerateProcessesW function.
|
||||
* Fix incorrect scaling for DECIMAL values in VarDecAdd.
|
||||
* Updated main extended attributes patch to include BSD support.
|
||||
* Return NULL-terminated list of arguments in CommandLineToArgvW.
|
||||
* Updated main extended attributes patch to include additional data checks.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 11 Jul 2014 13:00:03 -0600
|
||||
|
||||
wine-compholio (1.7.21) unstable; urgency=low
|
||||
* Remove several patches (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Fri, 27 Jun 2014 23:08:48 -0600
|
||||
|
||||
wine-compholio (1.7.20) unstable; urgency=low
|
||||
* Remove several patches (accepted upstream).
|
||||
* Fix recommendation for odbc and add libgsm1.
|
||||
|
28
debian/control
vendored
28
debian/control
vendored
@@ -1,7 +1,7 @@
|
||||
Source: wine-compholio
|
||||
Section: otherosfs
|
||||
Priority: optional
|
||||
Maintainer: Erich E. Hoover <ehoover@mines.edu>
|
||||
Maintainer: Erich E. Hoover <erich.e.hoover@gmail.com>
|
||||
XSBC-Original-Maintainer: Scott Ritchie <scottritchie@ubuntu.com>
|
||||
Build-Depends: autotools-dev,
|
||||
autoconf,
|
||||
@@ -39,12 +39,14 @@ Build-Depends: autotools-dev,
|
||||
libmpg123-dev,
|
||||
libncurses5-dev | libncurses-dev,
|
||||
libopenal-dev (>= 1:1.12) | ubuntu-desktop (<< 1.207),
|
||||
libpcap-dev,
|
||||
libpng12-dev,
|
||||
libpulse-dev,
|
||||
libsane-dev,
|
||||
libssl-dev,
|
||||
libstdc++6-4.5-dev | libstdc++-dev,
|
||||
libtiff5-dev | libtiff4-dev | libtiff-dev,
|
||||
libtxc-dxtn-s2tc-dev,
|
||||
libv4l-dev,
|
||||
libx11-dev,
|
||||
libxcomposite-dev,
|
||||
@@ -85,11 +87,13 @@ Recommends: libcapi20-3,
|
||||
libjpeg8,
|
||||
libopenal1 (>= 1:1.12),
|
||||
libosmesa6,
|
||||
libpcap0.8,
|
||||
libpng12-0,
|
||||
libpulse0,
|
||||
libsane,
|
||||
libssl1.0.0,
|
||||
libtiff5 | libtiff4,
|
||||
libtxc-dxtn-s2tc0,
|
||||
libv4l-0,
|
||||
libxcomposite1,
|
||||
libxcursor1,
|
||||
@@ -108,10 +112,6 @@ Replaces: wine-compholio (<< 1.7.15-1~)
|
||||
Breaks: wine-compholio (<< 1.7.15-1~)
|
||||
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.
|
||||
@@ -143,11 +143,13 @@ Recommends: libcapi20-3,
|
||||
libjpeg8,
|
||||
libopenal1 (>= 1:1.12),
|
||||
libosmesa6,
|
||||
libpcap0.8,
|
||||
libpng12-0,
|
||||
libpulse0,
|
||||
libsane,
|
||||
libssl1.0.0,
|
||||
libtiff5 | libtiff4,
|
||||
libtxc-dxtn-s2tc0,
|
||||
libv4l-0,
|
||||
libxcomposite1,
|
||||
libxcursor1,
|
||||
@@ -166,10 +168,6 @@ Replaces: wine-compholio (<< 1.7.15-1~)
|
||||
Breaks: wine-compholio (<< 1.7.15-1~)
|
||||
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.
|
||||
@@ -194,10 +192,6 @@ 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.
|
||||
@@ -226,10 +220,6 @@ Replaces: wine-compholio (<< 1.7.15-1~)
|
||||
Breaks: wine-compholio (<< 1.7.15-1~)
|
||||
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.
|
||||
@@ -253,10 +243,6 @@ Replaces: wine-compholio (<< 1.7.15-1~)
|
||||
Breaks: wine-compholio (<< 1.7.15-1~)
|
||||
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.
|
||||
|
30
debian/rules
vendored
30
debian/rules
vendored
@@ -10,34 +10,60 @@ endif
|
||||
%:
|
||||
dh $@ --parallel
|
||||
|
||||
|
||||
override_dh_auto_configure:
|
||||
|
||||
# Apply our patches, reconfigure, and update the wineserver protocol request data
|
||||
make -C "$(CURDIR)/patches/" DESTDIR="$(CURDIR)" install
|
||||
|
||||
# Run configure
|
||||
ifeq ($(DEB_BUILD_ARCH), amd64)
|
||||
./configure --prefix=/opt/wine-compholio --libdir=\$${prefix}/lib64 --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --enable-win64 --without-gstreamer --with-xattr $(CONFFLAGS)
|
||||
./configure --prefix=/opt/wine-compholio \
|
||||
--libdir=\$${prefix}/lib64 \
|
||||
--mandir=\$${prefix}/share/man \
|
||||
--infodir=\$${prefix}/share/info \
|
||||
--enable-win64 \
|
||||
--without-gstreamer \
|
||||
--with-xattr \
|
||||
$(CONFFLAGS)
|
||||
else
|
||||
./configure --prefix=/opt/wine-compholio --libdir=\$${prefix}/lib --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --without-gstreamer --with-xattr $(CONFFLAGS)
|
||||
./configure --prefix=/opt/wine-compholio \
|
||||
--libdir=\$${prefix}/lib \
|
||||
--mandir=\$${prefix}/share/man \
|
||||
--infodir=\$${prefix}/share/info \
|
||||
--without-gstreamer \
|
||||
--with-xattr \
|
||||
$(CONFFLAGS)
|
||||
endif
|
||||
|
||||
|
||||
override_dh_auto_test:
|
||||
# Wine's test suite does not pass on build daemons, skip it for now
|
||||
|
||||
|
||||
override_dh_installdocs:
|
||||
|
||||
# Create copies of license files
|
||||
cp "$(CURDIR)/LICENSE" "$(CURDIR)/LICENSE.wine"
|
||||
cp "$(CURDIR)/LICENSE.md" "$(CURDIR)/LICENSE.wine-compholio"
|
||||
|
||||
dh_installdocs --link-doc=wine-compholio
|
||||
|
||||
|
||||
override_dh_install:
|
||||
dh_install --fail-missing
|
||||
|
||||
# These files will end up in multiple packages otherwise
|
||||
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine
|
||||
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine-preloader
|
||||
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine64
|
||||
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine64-preloader
|
||||
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip -Xwine-pthread -Xwine-kthread --dbg-package=wine-compholio-dbg
|
||||
|
||||
|
||||
override_dh_shlibdeps:
|
||||
ifeq ($(DEB_HOST_ARCH),amd64)
|
||||
dh_shlibdeps -l $(CURDIR)/debian/tmp/opt/wine-compholio/lib64/
|
||||
|
152
debian/tools/DEVELOPER.md.in
vendored
Normal file
152
debian/tools/DEVELOPER.md.in
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
Developers and maintainers guide
|
||||
================================
|
||||
|
||||
This document will provide some information targeted at developers, who
|
||||
either want to build/package Wine-Compholio for their distribution, but also
|
||||
for developers who would like to contribute their patches to Wine-Compholio,
|
||||
to get them included in future releases.
|
||||
|
||||
|
||||
|
||||
Compiling Wine-Compholio
|
||||
========================
|
||||
|
||||
**Warning:** Please note that starting with Wine-Compholio 1.7.23 it is
|
||||
deprecated to manually apply patches without using the Makefile. To avoid
|
||||
typical pitfalls for package maintainers (like trying to use the patch
|
||||
commandline utility for binary patches or not updating the patchlist) it is
|
||||
highly recommended to use the Makefile in order to apply all patches. This
|
||||
ensures that the the correct patch utility is used, that the list of patches
|
||||
is updated appropriately, and so on. Please note that it is still possible
|
||||
to exclude patches if desired, take a look at the end of this document for
|
||||
more details.
|
||||
|
||||
Instructions
|
||||
------------
|
||||
|
||||
The following instructions (based on the [Gentoo
|
||||
Wiki](https://wiki.gentoo.org/wiki/Netflix/Pipelight#Compiling_manually))
|
||||
will give a short overview how to compile Wine-Compholio, but of course not
|
||||
explain all details. Make sure to install all required Wine dependencies
|
||||
before proceeding.
|
||||
|
||||
As the first step please grab the latest Wine source:
|
||||
```bash
|
||||
wget http://prdownloads.sourceforge.net/wine/wine-{version}.tar.bz2
|
||||
wget https://github.com/compholio/wine-compholio-daily/archive/v{version}.tar.gz
|
||||
```
|
||||
|
||||
Extract the archives:
|
||||
```bash
|
||||
tar xvjf wine-1*.tar.bz2
|
||||
cd wine-1*
|
||||
tar xvzf ../v{version}.tar.gz --strip-components 1
|
||||
```
|
||||
|
||||
And apply the patches:
|
||||
```bash
|
||||
make -C ./patches DESTDIR=$(pwd) install
|
||||
```
|
||||
|
||||
Afterwards run configure (you can also specify a prefix if you don't want to install
|
||||
Wine-Compholio system-wide):
|
||||
```bash
|
||||
./configure --with-xattr
|
||||
```
|
||||
|
||||
Before you continue you should make sure that `./configure` doesn't show any
|
||||
warnings (look at the end of the output). If there are any warnings, this
|
||||
most likely means that you're missing some important header files. Install
|
||||
them and repeat the `./configure` step until all problems are fixed.
|
||||
|
||||
Afterwards compile it (and grab a cup of coffee):
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
And install it (you only need sudo for a system-wide installation):
|
||||
```bash
|
||||
sudo make install
|
||||
```
|
||||
|
||||
Excluding patches
|
||||
-----------------
|
||||
|
||||
It is also possible to apply only a subset of the patches, for example if
|
||||
you're compiling for a distribution where PulseAudio is not installed, or
|
||||
if you just don't like a specific patchset. Please note that some patchsets
|
||||
depend on each other, and requesting an impossible situation might result
|
||||
in a failure to apply all patches.
|
||||
|
||||
Lets assume you want to exclude the patchset in directory `DIRNAME`, then
|
||||
just invoke the Makefile like this:
|
||||
```bash
|
||||
make -C ./patches DESTDIR=$(pwd) install -W DIRNAME.ok
|
||||
```
|
||||
|
||||
Using the same method its also possible to exclude multiple patchsets. If you
|
||||
want to exclude a very large number of patches, it is easier to do specify
|
||||
a list of patches which should be included instead. To apply for example
|
||||
only the patchsets in directory `DIRNAME1` and `DIRNAME2`, you can use:
|
||||
```bash
|
||||
make -C ./patches DESTDIR=$(pwd) PATCHLIST="DIRNAME1.ok DIRNAME2.ok" install
|
||||
```
|
||||
|
||||
|
||||
Contributing to Wine-Compholio
|
||||
==============================
|
||||
|
||||
Please note that Wine-Compholio is not just an arbitrary collection of Wine
|
||||
patches. We see Wine-Compholio as a **testing version** in preparation for
|
||||
patches to be submitted to upstream Wine. This implies that all patches should
|
||||
at least have a minimum standard quality. Unlike some other PPAs/AURs which
|
||||
provide heavily patched Wine versions, we will not accept hacks for very
|
||||
specific games. Such hacks often break compatibility with other applications,
|
||||
which means we probably don't want to include them, sorry.
|
||||
|
||||
If you think your patches are indeed a proper implementation, then feel free
|
||||
to contribute them. Please note that to allow possible later inclusion
|
||||
into upstream Wine, we will require you to pay attention to the same
|
||||
[rules](http://wiki.winehq.org/SubmittingPatches). Please be patient and
|
||||
give us up to about a week to review them - we're a very small team, so
|
||||
it might take some time, and we want to make sure that the implementation
|
||||
doesn't contain any critical errors, which could cause regressions. If you
|
||||
want to contribute huge sets of patches, we would really like you to *stay
|
||||
contributing* in the future. Even if we accepted your patches, this doesn't
|
||||
necessary mean we understand all of it, and if you cannot or don't want
|
||||
to maintain them (especially in case of errors, or difficult rebasing),
|
||||
we will probably end up removing them again.
|
||||
|
||||
You can also suggest adding patches written by other people - in this case
|
||||
your request should include who wrote the patch. Anonymous patches which
|
||||
don't include the author information aren't welcome, similar to the rules
|
||||
for upstream Wine.
|
||||
|
||||
|
||||
Attribution guidelines
|
||||
----------------------
|
||||
|
||||
The Wine "Compholio" Edition repository expects all patches to conform to
|
||||
Wine's (undocumented) attribution guidelines. There are a variety of ways
|
||||
to attribute patches, but they all involve an additional line to the patch
|
||||
subject:
|
||||
|
||||
```
|
||||
commit 0000000000000000000000000000000000000000
|
||||
Author: Example Author <example.email@email-provider.com>
|
||||
Date: Sat Jul 26 12:31:50 2014 -0600
|
||||
|
||||
Name of patch.
|
||||
|
||||
TYPE-OF-ATTRIBUTION.
|
||||
```
|
||||
|
||||
TYPE-OF-ATTRIBUTION can be any of the following:
|
||||
|
||||
`Found/Spotted by FINDER.`: The resolved issue was found by FINDER, they
|
||||
should receive appropriate credit for finding the problem - even though
|
||||
their patch was not used in the final implementation.
|
||||
|
||||
`Based on patch by AUTHOR.`: The patch created by AUTHOR was a starting point
|
||||
for the patch, some modifications were made to their patch - but they should
|
||||
receive credit since the original implementation was theirs.
|
70
debian/tools/Makefile.in
vendored
Normal file
70
debian/tools/Makefile.in
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
#
|
||||
# This file is automatically generated, DO NOT EDIT!
|
||||
#
|
||||
|
||||
.NOTPARALLEL:
|
||||
|
||||
CURDIR ?= ${{.CURDIR}}
|
||||
PATCH := $(CURDIR)/../debian/tools/gitapply.sh
|
||||
APPLY = (cd "$(DESTDIR)" && $(PATCH))
|
||||
APPLY_FILE = @echo "Applying $(1)"; $(APPLY) < "$(CURDIR)/$(1)"
|
||||
|
||||
#
|
||||
# This Makefile understands the following targets:
|
||||
#
|
||||
# install (default): apply patches to directory provided by DESTDIR
|
||||
# install-git: as above, but use 'git am' to apply the patches
|
||||
# series: create a 'series' file containing the patch order
|
||||
# clean: delete autogenerated and temporary files
|
||||
#
|
||||
|
||||
PATCHLIST := \
|
||||
{patchlist}
|
||||
|
||||
.PHONY: install
|
||||
install: $(PATCHLIST)
|
||||
cat *.ok | sort | $(CURDIR)/../debian/tools/patchlist.sh | $(APPLY)
|
||||
cd $(DESTDIR) && autoreconf -f
|
||||
cd $(DESTDIR) && ./tools/make_requests
|
||||
|
||||
.PHONY: install-git
|
||||
install-git: PATCH := git am
|
||||
install-git: install
|
||||
|
||||
series: APPLY_FILE = @echo "$(1)" >> series
|
||||
series: $(PATCHLIST)
|
||||
@cat *.ok | sort | $(CURDIR)/../debian/tools/patchlist.sh > patchlist.diff
|
||||
@echo "patchlist.diff" >> series
|
||||
@( \
|
||||
echo ""; \
|
||||
echo "The 'series' file was created in current directory. Please note that"; \
|
||||
echo "'patchlist.diff' is autogenerated based on your selection of patches and not"; \
|
||||
echo "included in this repository - keep in mind to update it on every release."; \
|
||||
echo ""; \
|
||||
echo "Moreover, depending on which patches you have selected, you will have to run"; \
|
||||
echo "'autoreconf -f' and/or './tools/make_requests' after applying them."; \
|
||||
echo ""; \
|
||||
binary=0; \
|
||||
while IFS= read -r line; do \
|
||||
if grep -q "^GIT binary patch" "$$line"; then \
|
||||
binary=1; break; \
|
||||
fi \
|
||||
done < series; \
|
||||
if [ "$$binary" -ne 0 ]; then \
|
||||
echo "The following files contain binary patches and cannot be applied with the"; \
|
||||
echo "regular 'patch' commandline tool:"; \
|
||||
echo ""; \
|
||||
while IFS= read -r line; do \
|
||||
grep -q "^GIT binary patch" "$$line" && echo "$$line"; \
|
||||
done < series; \
|
||||
echo ""; \
|
||||
echo "Please use 'git apply' or '../debian/tools/gitapply.sh' from this repository."; \
|
||||
echo ""; \
|
||||
fi \
|
||||
)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f series patchlist.diff
|
||||
rm -f *.ok
|
||||
|
39
debian/tools/README.md.in
vendored
Normal file
39
debian/tools/README.md.in
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
What is Wine-Compholio?
|
||||
=======================
|
||||
|
||||
**Warning: Do not report bugs at bugs.winehq.org when using this version!
|
||||
Please take a look at our
|
||||
[Wiki](https://github.com/compholio/wine-compholio/wiki/Reporting-bugs)
|
||||
for more information about how to report bugs.**
|
||||
|
||||
The **Wine "Compholio" Edition** is a special build of the popular Wine
|
||||
software that includes both patches written by our team and selected patches
|
||||
by third party developers that we consider good enough for inclusion. This can
|
||||
be seen as a testing version in preparation for patches to be submitted to
|
||||
upstream Wine - don't be surprised if you encounter additional bugs, which are
|
||||
not present in regular wine, and always report such issues to us (via github!),
|
||||
so we can improve our fixes even further. Thanks!
|
||||
|
||||
|
||||
How to install and use Wine-Compholio
|
||||
=====================================
|
||||
|
||||
Ready-to-use packages for Wine-Compholio are available for a variety
|
||||
of different Linux distributions directly for download. Just follow the
|
||||
instructions available on the
|
||||
[Wiki](https://github.com/compholio/wine-compholio/wiki/Installation).
|
||||
|
||||
When using Wine-Compholio 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-compholio/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/compholio/wine-compholio/wiki/Usage).
|
||||
|
||||
|
||||
Included bugfixes and improvements
|
||||
==================================
|
||||
|
||||
{fixes}
|
||||
|
761
debian/tools/gitapply.sh
vendored
761
debian/tools/gitapply.sh
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,21 +1,5 @@
|
||||
#!/bin/sh
|
||||
PATCH_DATA="";
|
||||
|
||||
for FILE in patches/*/*.def; do
|
||||
UUID=$(echo "${FILE}" | sed -e 's|^.*/||g' -e 's|\.def$||g');
|
||||
REVISION=$(cat "${FILE}" | sed -n 's|Revision: \(.*\)|\1|p');
|
||||
AUTHOR=$(cat "${FILE}" | sed -n 's|Author: \(.*\)|\1|p');
|
||||
TITLE=$(cat "${FILE}" | sed -n 's|Title: \(.*\)|\1|p');
|
||||
if [ "${AUTHOR}" = "" ] && [ "${TITLE}" = "" ]; then
|
||||
continue;
|
||||
fi
|
||||
if [ "${PATCH_DATA}" != "" ]; then
|
||||
PATCH_DATA="${PATCH_DATA}
|
||||
";
|
||||
fi
|
||||
PATCH_DATA="${PATCH_DATA}+ { \"${UUID}:${REVISION}\", \"${AUTHOR}\", \"${TITLE}\" },";
|
||||
done
|
||||
|
||||
PATCH_DATA=$(cat);
|
||||
PATCH_LINES=$(echo "${PATCH_DATA}" | wc -l);
|
||||
PATCH_LINES=$((${PATCH_LINES}+20));
|
||||
|
||||
@@ -33,7 +17,7 @@ index a273502..5fa0cd5 100644
|
||||
}
|
||||
|
||||
+struct wine_patch {
|
||||
+ const char *hash;
|
||||
+ const char *name;
|
||||
+ const char *author;
|
||||
+ const char *title;
|
||||
+} wine_patch_data[] = {
|
633
debian/tools/patchupdate.py
vendored
Executable file
633
debian/tools/patchupdate.py
vendored
Executable file
File diff suppressed because it is too large
Load Diff
320
debian/tools/patchutils.py
vendored
Normal file
320
debian/tools/patchutils.py
vendored
Normal file
@@ -0,0 +1,320 @@
|
||||
#!/usr/bin/python2
|
||||
#
|
||||
# Python functions to read, split and apply patches.
|
||||
#
|
||||
# Copyright (C) 2014 Sebastian Lackner
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
#
|
||||
|
||||
import collections
|
||||
import difflib
|
||||
import hashlib
|
||||
import itertools
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import tempfile
|
||||
|
||||
class PatchParserError(RuntimeError):
|
||||
"""Unable to parse patch file - either an unimplemented feature, or corrupted patch."""
|
||||
pass
|
||||
|
||||
class PatchApplyError(RuntimeError):
|
||||
"""Failed to apply/merge patch."""
|
||||
pass
|
||||
|
||||
class PatchObject(object):
|
||||
def __init__(self, filename):
|
||||
self.extracted_patch = None
|
||||
self.unique_hash = None
|
||||
|
||||
self.filename = filename
|
||||
self.offset_begin = None
|
||||
self.offset_end = None
|
||||
self.isbinary = False
|
||||
|
||||
self.oldname = None
|
||||
self.newname = None
|
||||
self.modified_file = None
|
||||
|
||||
self.oldsha1 = None
|
||||
self.newsha1 = None
|
||||
self.newmode = None
|
||||
|
||||
def is_binary(self):
|
||||
return self.isbinary
|
||||
|
||||
def read_chunks(self):
|
||||
"""Iterates over arbitrary sized chunks of this patch."""
|
||||
assert self.offset_end >= self.offset_begin
|
||||
with open(self.filename) as fp:
|
||||
fp.seek(self.offset_begin)
|
||||
i = self.offset_end - self.offset_begin
|
||||
while i > 0:
|
||||
buf = fp.read(4096 if i > 4096 else i)
|
||||
if buf == "": raise IOError("Unable to extract patch.")
|
||||
yield buf
|
||||
i -= len(buf)
|
||||
|
||||
def extract(self):
|
||||
"""Create a temporary file containing the extracted patch."""
|
||||
if not self.extracted_patch:
|
||||
self.extracted_patch = tempfile.NamedTemporaryFile()
|
||||
for chunk in self.read_chunks():
|
||||
self.extracted_patch.write(chunk)
|
||||
self.extracted_patch.flush()
|
||||
return self.extracted_patch
|
||||
|
||||
def hash(self):
|
||||
"""Hash the content of the patch."""
|
||||
if not self.unique_hash:
|
||||
m = hashlib.sha256()
|
||||
for chunk in self.read_chunks():
|
||||
m.update(chunk)
|
||||
self.unique_hash = m.digest()
|
||||
return self.unique_hash
|
||||
|
||||
def read_patch(filename):
|
||||
"""Iterates over all patches contained in a file, and returns PatchObject objects."""
|
||||
|
||||
class _FileReader(object):
|
||||
def __init__(self, filename):
|
||||
self.filename = filename
|
||||
self.fp = open(self.filename)
|
||||
self.peeked = None
|
||||
|
||||
def close(self):
|
||||
self.fp.close()
|
||||
|
||||
def __enter__(self):
|
||||
return self
|
||||
|
||||
def __exit__(self, type, value, traceback):
|
||||
self.close()
|
||||
|
||||
def seek(self, pos):
|
||||
"""Change the file cursor position."""
|
||||
self.fp.seek(pos)
|
||||
self.peeked = None
|
||||
|
||||
def tell(self):
|
||||
"""Return the current file cursor position."""
|
||||
if self.peeked is None:
|
||||
return self.fp.tell()
|
||||
return self.peeked[0]
|
||||
|
||||
def peek(self):
|
||||
"""Read one line without changing the file cursor."""
|
||||
if self.peeked is None:
|
||||
pos = self.fp.tell()
|
||||
tmp = self.fp.readline()
|
||||
if len(tmp) == 0: return None
|
||||
self.peeked = (pos, tmp)
|
||||
return self.peeked[1]
|
||||
|
||||
def read(self):
|
||||
"""Read one line from the file, and move the file cursor to the next line."""
|
||||
if self.peeked is None:
|
||||
tmp = self.fp.readline()
|
||||
if len(tmp) == 0: return None
|
||||
return tmp
|
||||
tmp, self.peeked = self.peeked, None
|
||||
return tmp[1]
|
||||
|
||||
def _read_single_patch(fp, oldname=None, newname=None):
|
||||
"""Internal function to read a single patch from a file."""
|
||||
|
||||
patch = PatchObject(fp.filename)
|
||||
patch.offset_begin = fp.tell()
|
||||
patch.oldname = oldname
|
||||
patch.newname = newname
|
||||
|
||||
# Skip over initial diff --git header
|
||||
line = fp.peek()
|
||||
if line.startswith("diff --git "):
|
||||
assert fp.read() == line
|
||||
|
||||
# Read header
|
||||
while True:
|
||||
line = fp.peek()
|
||||
if line is None:
|
||||
break
|
||||
elif line.startswith("--- "):
|
||||
patch.oldname = line[4:].strip()
|
||||
elif line.startswith("+++ "):
|
||||
patch.newname = line[4:].strip()
|
||||
elif line.startswith("old mode") or line.startswith("deleted file mode"):
|
||||
pass # ignore
|
||||
elif line.startswith("new mode "):
|
||||
patch.newmode = line[9:].strip()
|
||||
elif line.startswith("new file mode "):
|
||||
patch.newmode = line[14:].strip()
|
||||
elif line.startswith("new mode") or line.startswith("new file mode"):
|
||||
raise PatchParserError("Unable to parse header line '%s'." % line)
|
||||
elif line.startswith("copy from") or line.startswith("copy to"):
|
||||
raise NotImplementedError("Patch copy header not implemented yet.")
|
||||
elif line.startswith("rename "):
|
||||
raise NotImplementedError("Patch rename header not implemented yet.")
|
||||
elif line.startswith("similarity index") or line.startswith("dissimilarity index"):
|
||||
pass # ignore
|
||||
elif line.startswith("index "):
|
||||
r = re.match("^index ([a-fA-F0-9]*)\.\.([a-fA-F0-9]*)", line)
|
||||
if not r: raise PatchParserError("Unable to parse index header line '%s'." % line)
|
||||
patch.oldsha1, patch.newsha1 = r.group(1), r.group(2)
|
||||
else:
|
||||
break
|
||||
assert fp.read() == line
|
||||
|
||||
if patch.oldname is None or patch.newname is None:
|
||||
raise PatchParserError("Missing old or new name.")
|
||||
elif patch.oldname == "/dev/null" and patch.newname == "/dev/null":
|
||||
raise PatchParserError("Old and new name is /dev/null?")
|
||||
|
||||
if patch.oldname.startswith("a/"):
|
||||
patch.oldname = patch.oldname[2:]
|
||||
elif patch.oldname != "/dev/null":
|
||||
raise PatchParserError("Old name in patch doesn't start with a/.")
|
||||
|
||||
if patch.newname.startswith("b/"):
|
||||
patch.newname = patch.newname[2:]
|
||||
elif patch.newname != "/dev/null":
|
||||
raise PatchParserError("New name in patch doesn't start with b/.")
|
||||
|
||||
if patch.newname != "/dev/null":
|
||||
patch.modified_file = patch.newname
|
||||
else:
|
||||
patch.modified_file = patch.oldname
|
||||
|
||||
# Decide between binary and textual patch
|
||||
if line is None or line.startswith("diff --git ") or line.startswith("--- "):
|
||||
if oldname != newname:
|
||||
raise PatchParserError("Stripped old- and new name doesn't match.")
|
||||
|
||||
elif line.startswith("@@ -"):
|
||||
while True:
|
||||
line = fp.peek()
|
||||
if line is None or not line.startswith("@@ -"):
|
||||
break
|
||||
|
||||
r = re.match("^@@ -(([0-9]+),)?([0-9]+) \+(([0-9]+),)?([0-9]+) @@", line)
|
||||
if not r: raise PatchParserError("Unable to parse hunk header '%s'." % line)
|
||||
srcpos = max(int(r.group(2)) - 1, 0) if r.group(2) else 0
|
||||
dstpos = max(int(r.group(5)) - 1, 0) if r.group(5) else 0
|
||||
srclines, dstlines = int(r.group(3)), int(r.group(6))
|
||||
if srclines <= 0 and dstlines <= 0:
|
||||
raise PatchParserError("Empty hunk doesn't make sense.")
|
||||
assert fp.read() == line
|
||||
|
||||
while srclines > 0 or dstlines > 0:
|
||||
line = fp.read()
|
||||
if line is None:
|
||||
raise PatchParserError("Truncated patch.")
|
||||
elif line.startswith(" "):
|
||||
if srclines == 0 or dstlines == 0:
|
||||
raise PatchParserError("Corrupted patch.")
|
||||
srclines -= 1
|
||||
dstlines -= 1
|
||||
elif line.startswith("-"):
|
||||
if srclines == 0:
|
||||
raise PatchParserError("Corrupted patch.")
|
||||
srclines -= 1
|
||||
elif line.startswith("+"):
|
||||
if dstlines == 0:
|
||||
raise PatchParserError("Corrupted patch.")
|
||||
dstlines -= 1
|
||||
elif line.startswith("\\ "):
|
||||
pass # ignore
|
||||
else:
|
||||
raise PatchParserError("Unexpected line in hunk.")
|
||||
|
||||
while True:
|
||||
line = fp.peek()
|
||||
if line is None or not line.startswith("\\ "): break
|
||||
assert fp.read() == line
|
||||
|
||||
elif line.rstrip() == "GIT binary patch":
|
||||
if patch.oldsha1 is None or patch.newsha1 is None:
|
||||
raise PatchParserError("Missing index header, sha1 sums required for binary patch.")
|
||||
elif patch.oldname != patch.newname:
|
||||
raise PatchParserError("Stripped old- and new name doesn't match for binary patch.")
|
||||
assert fp.read() == line
|
||||
|
||||
line = fp.read()
|
||||
if line is None: raise PatchParserError("Unexpected end of file.")
|
||||
r = re.match("^(literal|delta) ([0-9]+)", line)
|
||||
if not r: raise NotImplementedError("Only literal/delta patches are supported.")
|
||||
patch.isbinary = True
|
||||
|
||||
# Skip over patch data
|
||||
while True:
|
||||
line = fp.read()
|
||||
if line is None or line.strip() == "":
|
||||
break
|
||||
|
||||
else:
|
||||
raise PatchParserError("Unknown patch format.")
|
||||
|
||||
patch.offset_end = fp.tell()
|
||||
return patch
|
||||
|
||||
with _FileReader(filename) as fp:
|
||||
while True:
|
||||
line = fp.peek()
|
||||
if line is None:
|
||||
break
|
||||
elif line.startswith("diff --git "):
|
||||
tmp = line.strip().split(" ")
|
||||
if len(tmp) != 4: raise PatchParserError("Unable to parse git diff header line '%s'." % line)
|
||||
yield _read_single_patch(fp, tmp[2].strip(), tmp[3].strip())
|
||||
elif line.startswith("--- "):
|
||||
yield _read_single_patch(fp)
|
||||
elif line.startswith("@@ -") or line.startswith("+++ "):
|
||||
raise PatchParserError("Patch didn't start with a git or diff header.")
|
||||
else:
|
||||
assert fp.read() == line
|
||||
|
||||
def apply_patch(content, patches, reverse=False, fuzz=2):
|
||||
"""Apply a patch with optional fuzz - uses the commandline 'patch' utility."""
|
||||
|
||||
if not isinstance(patches, collections.Sequence):
|
||||
patches = [patches]
|
||||
|
||||
contentfile = tempfile.NamedTemporaryFile(delete=False)
|
||||
try:
|
||||
contentfile.write(content)
|
||||
contentfile.close()
|
||||
|
||||
for patch in patches:
|
||||
|
||||
patchfile = patch.extract()
|
||||
cmdline = ["patch", "--force", "--silent", "-r", "-"]
|
||||
if reverse: cmdline.append("--reverse")
|
||||
if fuzz != 2: cmdline.append("--fuzz=%d" % fuzz)
|
||||
cmdline += [contentfile.name, patchfile.name]
|
||||
|
||||
with open(os.devnull, 'w') as devnull:
|
||||
exitcode = subprocess.call(cmdline, stdout=devnull, stderr=devnull)
|
||||
if exitcode != 0:
|
||||
raise PatchApplyError("Failed to apply patch (exitcode %d)." % exitcode)
|
||||
|
||||
with open(contentfile.name) as fp:
|
||||
content = fp.read()
|
||||
|
||||
finally:
|
||||
os.unlink(contentfile.name)
|
||||
|
||||
return content
|
||||
|
4
debian/wine-compholio.docs
vendored
4
debian/wine-compholio.docs
vendored
@@ -1,4 +1,6 @@
|
||||
documentation/README.*
|
||||
ANNOUNCE
|
||||
AUTHORS
|
||||
README
|
||||
LICENSE.wine
|
||||
LICENSE.wine-compholio
|
||||
README
|
||||
|
@@ -1,3 +0,0 @@
|
||||
Revision: 1
|
||||
Author: Sebastian Lackner
|
||||
Title: Add commandline option --patches to show the patch list.
|
@@ -1,3 +0,0 @@
|
||||
Revision: 1
|
||||
Author: Michael MĂĽller
|
||||
Title: Add commandline option --check-libs to test if shared libraries are installed.
|
@@ -1,3 +0,0 @@
|
||||
Revision: 2
|
||||
Author: Erich E. Hoover
|
||||
Title: Implement SIO_ADDRESS_LIST_CHANGE.
|
@@ -1,193 +0,0 @@
|
||||
From 0be335ce9c2c93a186cf35be0a99519868ab8a0d Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Fri, 18 Apr 2014 15:21:00 -0600
|
||||
Subject: server: Add compatibility code for handling the old method of
|
||||
storing ACLs.
|
||||
|
||||
---
|
||||
server/file.c | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 162 insertions(+)
|
||||
|
||||
diff --git a/server/file.c b/server/file.c
|
||||
index e29d06b..08231a7 100644
|
||||
--- a/server/file.c
|
||||
+++ b/server/file.c
|
||||
@@ -750,6 +750,167 @@ struct security_descriptor *get_xattr_sd( int fd )
|
||||
#endif
|
||||
}
|
||||
|
||||
+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; /* ensure NULL terminated buffer for string functions */
|
||||
+
|
||||
+ 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 */
|
||||
+ p = pn; /* prepare for the next ACE */
|
||||
+
|
||||
+ /* verify that the SubAuthorityCount does not exceed the maximum permitted value */
|
||||
+ if (sub_authority_count > SID_MAX_SUB_AUTHORITIES)
|
||||
+ continue;
|
||||
+
|
||||
+ 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++;
|
||||
+ }
|
||||
+ 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
|
||||
+ {
|
||||
+ if (sub_authority_count == SID_MAX_SUB_AUTHORITIES)
|
||||
+ {
|
||||
+ sub_authority_count++; /* fail on this SID and move on to the next one */
|
||||
+ break;
|
||||
+ }
|
||||
+ 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;
|
||||
+ p = pn; /* prepare for the next ACE */
|
||||
+
|
||||
+ /* verify that the SubAuthorityCount does not exceed the maximum permitted value */
|
||||
+ if (sub_authority_count > SID_MAX_SUB_AUTHORITIES)
|
||||
+ continue;
|
||||
+
|
||||
+ /* 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;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return sd;
|
||||
+#else
|
||||
+ return NULL;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
/* Convert generic rights into standard access rights */
|
||||
void convert_generic_sd( struct security_descriptor *sd )
|
||||
{
|
||||
@@ -790,6 +951,7 @@ struct security_descriptor *get_file_sd( struct object *obj, struct fd *fd, mode
|
||||
user = security_unix_uid_to_sid( st.st_uid );
|
||||
group = token_get_primary_group( current->process->token );
|
||||
sd = get_xattr_sd( unix_fd );
|
||||
+ if (!sd) sd = get_xattr_acls( unix_fd, user, group );
|
||||
if (sd && convert_generic) 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