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
384 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
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 | ||
|
47ddb3a6d1 | ||
|
5a4ba9a546 | ||
|
b51c16c86a | ||
|
c1edf8d5c4 | ||
|
ebf2fb3d7d | ||
|
ca1e83ef3f | ||
|
054930fd52 | ||
|
56fd91825e | ||
|
a6b295029c | ||
|
ddf6dd7f6a | ||
|
524c64dd2a | ||
|
e470b33f7c | ||
|
556aa9335e | ||
|
0817bd1a57 | ||
|
2f7523bffe | ||
|
9fd0a6eb9d | ||
|
f5f50d333c | ||
|
2d3f9334f8 | ||
|
9466f14d52 | ||
|
79c4f4391e | ||
|
820cc2e861 | ||
|
29d69db459 | ||
|
7642c422ed | ||
|
d56138d8ec | ||
|
b5687dc502 | ||
|
7a15599a3a | ||
|
7e5038e76c | ||
|
30f3d023d5 | ||
|
a7a1f83013 | ||
|
53053927fd | ||
|
35cab4ef93 | ||
|
43b0d84ae9 | ||
|
825145217c | ||
|
99c6fe660f | ||
|
4a69f63a78 | ||
|
39fa530c33 | ||
|
564f8aeafc | ||
|
e77f05ee52 | ||
|
f352182c20 | ||
|
7bb4be5d03 | ||
|
ef956caf59 | ||
|
8e45d4c99f | ||
|
004109b3bd | ||
|
dd5b1514b2 | ||
|
34a6c25071 | ||
|
6dc4078d74 | ||
|
6fcc7f732d | ||
|
997c04f7f8 | ||
|
658fe4e3ae | ||
|
40aaeb61f8 | ||
|
6274002623 | ||
|
24af73d1d2 | ||
|
155a364280 | ||
|
9c1492069b | ||
|
c3d5bcab99 | ||
|
c3052d2e31 | ||
|
87fd81b9d8 | ||
|
062426558b | ||
|
1c6aeef3b4 | ||
|
f7de528788 | ||
|
8d45dc126d | ||
|
1a0d969d12 | ||
|
a926ab3deb | ||
|
d31a32b073 | ||
|
c21aa8beb3 | ||
|
67079f94ae | ||
|
c1dccff70a |
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.24.tar.bz2
|
||||
wget https://github.com/compholio/wine-compholio-daily/archive/v1.7.24.tar.gz
|
||||
```
|
||||
|
||||
Extract the archives:
|
||||
```bash
|
||||
tar xvjf wine-1*.tar.bz2
|
||||
cd wine-1*
|
||||
tar xvzf ../v1.7.24.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.
|
1302
LICENSE.md
Normal file
1302
LICENSE.md
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
374
README.md
374
README.md
@@ -1,4 +1,374 @@
|
||||
wine-compholio-daily
|
||||
What is Wine-Compholio?
|
||||
=======================
|
||||
|
||||
The **Wine "Compholio" Edition** is a special patched version of Wine that
|
||||
includes both patches written by our team directly and specific 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!
|
||||
|
||||
|
||||
Included bugfixes and improvements
|
||||
----------------------------------
|
||||
|
||||
Wine-Compholio contains fixes for the following Wine bugs:
|
||||
|
||||
* ATL IOCS data should not be stored in GWLP_USERDATA ([Wine Bug #21767](http://bugs.winehq.org/show_bug.cgi?id=21767 "JLC's Internet TV crashes on startup"))
|
||||
* Add Dynamic DST exceptions for Israel Standard Time ([Wine Bug #36374](http://bugs.winehq.org/show_bug.cgi?id=36374 "Israel timezone handled incorrectly"))
|
||||
* Add implementation of WTSEnumerateProcessesW ([Wine Bug #29903](http://bugs.winehq.org/show_bug.cgi?id=29903 "Some Microsoft debuggers fail to enumerate processes due to wtsapi32.WTSEnumerateProcessesW() being a stub (Microsoft Visual Studio 2005, DbgCLR from .NET 2.0 SDK)"))
|
||||
* Add support for extra large and jumbo icon lists in shell32 ([Wine Bug #24721](http://bugs.winehq.org/show_bug.cgi?id=24721 "Explorer++ crashes when choosing to view large icons or extra large icons"))
|
||||
* Allow special characters in pipe names ([Wine Bug #28995](http://bugs.winehq.org/show_bug.cgi?id=28995 "Unable to use named pipes with \">\" character in the name"))
|
||||
* Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](http://bugs.winehq.org/show_bug.cgi?id=30639 "Audio stuttering and performance drops in Star Wolves 3"))
|
||||
* Fix comparison of punctuation characters in lstrcmp ([Wine Bug #10767](http://bugs.winehq.org/show_bug.cgi?id=10767 "lstrcmp and others do not compare punctuation characters correctly"))
|
||||
* Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](http://bugs.winehq.org/show_bug.cgi?id=16550 "ConnectNamedPort should never return OK in overlapped mode (affects chromium ui_tests.exe)"))
|
||||
* Fix for programs leaking wndproc slots ([Wine Bug #32451](http://bugs.winehq.org/show_bug.cgi?id=32451 "Multiple GOG.com installer bundles show a broken/unresponsive dialog window during installation (installer process running out of wndproc slots)"))
|
||||
* GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](http://bugs.winehq.org/show_bug.cgi?id=15980 "Rhapsody 2 crashes on startup (GetSecurityInfo returns NULL DACL for process object)"))
|
||||
* Implement ITextDocument_fnRange function ([Wine Bug #12458](http://bugs.winehq.org/show_bug.cgi?id=12458 "Multiple apps fail due to RichEdit ITextDocument_fnRange stub (MySQL Workbench, BlitzMaxDemo137)"))
|
||||
* Implement LoadIconMetric function ([Wine Bug #35375](http://bugs.winehq.org/show_bug.cgi?id=35375 "Multiple applications need Vista+ API COMCTL32.dll.380 a.k.a. 'LoadIconMetric' (Solidworks 2013 systray monitor, Microsoft One/SkyDrive)"))
|
||||
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](http://bugs.winehq.org/show_bug.cgi?id=13829 "Wine does not have CJK fonts"))
|
||||
* Implement an Arial replacement font ([Wine Bug #32323](http://bugs.winehq.org/show_bug.cgi?id=32323 "Netflix (Silverlight 4.x) and several .NET Framework 3.x/4.0 WPF apps require either Arial or Verdana to be installed"))
|
||||
* Make it possible to change media center / tablet pc status ([Wine Bug #18732](http://bugs.winehq.org/show_bug.cgi?id=18732 "Microsoft Experience Pack for Tablet PC 1 refuses to install"))
|
||||
* Need for Speed 3 installer requires devices in HKEY_DYN_DATA ([Wine Bug #7115](http://bugs.winehq.org/show_bug.cgi?id=7115 "Need for Speed III installer fails in Win9X mode, reporting \"Could not get 'HardWareKey' value\" (active PnP device keys in 'HKEY_DYN_DATA\\\\Config Manager\\\\Enum' missing)"))
|
||||
* Old games cannot locate software-only renderer ([Wine Bug #32581](http://bugs.winehq.org/show_bug.cgi?id=32581 "Invalid dwFlags of reference rasterizer's HAL D3DDEVICEDESC"))
|
||||
* Return correct IMediaSeeking stream positions in quartz ([Wine Bug #23174](http://bugs.winehq.org/show_bug.cgi?id=23174 "Fallout 3: Diologue and Video/sound issues"))
|
||||
* Set ldr.EntryPoint for main executable ([Wine Bug #33034](http://bugs.winehq.org/show_bug.cgi?id=33034 "Many GFWL (Games For Windows Live) 1.x/2.x/3.x games crash or exit silently on startup (DiRT 2/3, GTA IV Steam)"))
|
||||
* Support for AllocateAndGetTcpExTableFromStack ([Wine Bug #34372](http://bugs.winehq.org/show_bug.cgi?id=34372 "Add missing function AllocateAndGetTcpExTableFromStack() to iphlpapi.dll"))
|
||||
* Support for GetSystemTimes ([Wine Bug #19813](http://bugs.winehq.org/show_bug.cgi?id=19813 "Voddler needs GetSystemTimes to run"))
|
||||
* Support for ITextRange, ITextFont and ITextPara ([Wine Bug #18303](http://bugs.winehq.org/show_bug.cgi?id=18303 "Adobe Acrobat Pro 7: Crashes when selecting the \"edit\" menu while having a file open."))
|
||||
* Support for Junction Points ([Wine Bug #12401](http://bugs.winehq.org/show_bug.cgi?id=12401 "Support junction points, i.e. DeviceIoCtl(FSCTL_SET_REPARSE_POINT/FSCTL_GET_REPARSE_POINT)"))
|
||||
* Support for NtSetInformationFile class FileDispositionInformation ([Wine Bug #30397](http://bugs.winehq.org/show_bug.cgi?id=30397 "Multiple applications need support for NtSetInformationFile class FileDispositionInformation (Cygwin installer, Stylizer 5.x Visual CSS editor, Spoon Studio 2011 (ex Xenocode) application sandboxing scheme)"))
|
||||
* Support for PulseAudio backend for audio ([Wine Bug #10495](http://bugs.winehq.org/show_bug.cgi?id=10495 "Wine should support PulseAudio"))
|
||||
* Support for SHCreateSessionKey ([Wine Bug #35630](http://bugs.winehq.org/show_bug.cgi?id=35630 "SHCreateSessionKey is unimplemented"))
|
||||
* Support for TOOLTIPS_GetTipText edge cases ([Wine Bug #30648](http://bugs.winehq.org/show_bug.cgi?id=30648 "SEGA Genesis / Mega Drive Classic Collection (Steam) crashes on startup"))
|
||||
* Support for TransmitFile ([Wine Bug #5048](http://bugs.winehq.org/show_bug.cgi?id=5048 "Multiple applications and games need support for ws2_32 SIO_GET_EXTENSION_FUNCTION_POINTER TransmitFile (WSAID_TRANSMITFILE)"))
|
||||
* Support for [Get|Set]SystemFileCacheSize ([Wine Bug #35886](http://bugs.winehq.org/show_bug.cgi?id=35886 "Lotus Notes 9 'cacheset.exe' utility needs KERNEL32.dll.SetSystemFileCacheSize"))
|
||||
* Support for inherited file ACLs ([Wine Bug #34406](http://bugs.winehq.org/show_bug.cgi?id=34406 "Finale Notepad 2012 doesn't copy/create user files on program start"))
|
||||
* Support for interface change notifications ([Wine Bug #32328](http://bugs.winehq.org/show_bug.cgi?id=32328 "Many .NET and Silverlight applications require SIO_ADDRESS_LIST_CHANGE for interface change notifications"))
|
||||
* Support for process ACLs ([Wine Bug #22006](http://bugs.winehq.org/show_bug.cgi?id=22006 "OpenProcess does not enforce ACL"))
|
||||
* Support for stored file ACLs ([Wine Bug #31858](http://bugs.winehq.org/show_bug.cgi?id=31858 "Netflix on Firefox fails with Internet Connection Problem when loading bar is at 99%"))
|
||||
* Support for ws2_32.inet_pton ([Wine Bug #36713](http://bugs.winehq.org/show_bug.cgi?id=36713 "Watch_Dogs requires ws2_32.inet_pton"))
|
||||
* Use manual relay for RunDLL_CallEntry16 in shell32 ([Wine Bug #23033](http://bugs.winehq.org/show_bug.cgi?id=23033 "Tages Protection v5.x: games report \"DLL not found shell.dll16.dll\" (Runaway 2: The Dream Of The Turtle, ...)"))
|
||||
* Workaround for TransactNamedPipe not being supported ([Wine Bug #17273](http://bugs.winehq.org/show_bug.cgi?id=17273 "Many apps and games need SetNamedPipeHandleState implementation (support for named pipe message mode)(FireFox+Flash, Win8/NET 4.x SDK/vcrun2012, WiX installers)"))
|
||||
|
||||
Besides that the following additional changes are included:
|
||||
|
||||
* Add default ACLs for user shell folders
|
||||
* Add support for Dynamic DST (daylight saving time) information in registry
|
||||
* Lockfree algorithm for filedescriptor cache (improves file access speed)
|
||||
* Other Pipelight specific enhancements
|
||||
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
|
||||
* SO_CONNECT_TIME returns the appropriate time
|
||||
* Support for GetVolumePathName
|
||||
* Workaround for shlwapi URLs with relative paths
|
||||
* XEMBED support for embedding Wine windows inside Linux applications
|
||||
|
||||
|
||||
How to install 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 below to install it (and all required dependencies). After the
|
||||
installation, please take a look at the next section for instructions how
|
||||
to use it in order to run your desired application.
|
||||
|
||||
**Important:** If you already have installed 'pipelight' on your system, there
|
||||
is a good chance that you already have Wine-Compholio. Take a look at the
|
||||
next section on how to find out if this is the case.
|
||||
|
||||
If your distribution is not listed below, feel free to add a feature request -
|
||||
if the demand is high enough we might consider packaging it for additional
|
||||
distributions.
|
||||
|
||||
|
||||
 Ubuntu / Linux Mint
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Please run the following commands from a terminal, one line after each other.
|
||||
```bash
|
||||
sudo add-apt-repository ppa:pipelight/stable
|
||||
sudo apt-get update
|
||||
sudo apt-get install --install-recommends wine-compholio
|
||||
```
|
||||
|
||||
 Arch Linux
|
||||
---------------------------------------------------------------------
|
||||
|
||||
As a first step you have to import the key for our repository, and set the
|
||||
trust level to trusted:
|
||||
```bash
|
||||
sudo pacman-key -r E49CC0415DC2D5CA
|
||||
sudo pacman-key --lsign-key E49CC0415DC2D5CA
|
||||
```
|
||||
|
||||
Afterwards you have to add the following lines to `/etc/pacman.conf`:
|
||||
```
|
||||
[compholio]
|
||||
Server = http://cdn.fds-team.de/stable/arch/$arch
|
||||
```
|
||||
|
||||
Now you can install Wine-Compholio directly using `pacman`:
|
||||
```bash
|
||||
sudo pacman -Syu wine-compholio
|
||||
```
|
||||
|
||||
 Debian Jessie/Sid
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
*(Instructions for Debian Wheezy can be found below)*
|
||||
|
||||
In order to install i386 packages on a 64-bit system, you have to run the
|
||||
following command as a first step:
|
||||
```bash
|
||||
sudo dpkg --add-architecture i386
|
||||
```
|
||||
|
||||
Afterwards import the key for our repository:
|
||||
```bash
|
||||
wget http://repos.fds-team.de/Release.key
|
||||
sudo apt-key add Release.key
|
||||
```
|
||||
|
||||
And add our repository at the end of your `/etc/apt/sources.list` file:
|
||||
```
|
||||
# For Debian Jessie add the following line:
|
||||
deb http://cdn.fds-team.de/stable/debian/ jessie main
|
||||
|
||||
# For Debian Sid this one:
|
||||
deb http://cdn.fds-team.de/stable/debian/ sid main
|
||||
```
|
||||
|
||||
Afterwards update the package cache and install it:
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install wine-compholio
|
||||
```
|
||||
|
||||
|
||||
 Debian Wheezy
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
In order to install i386 packages on a 64-bit system, you have to run the
|
||||
following command as a first step:
|
||||
```bash
|
||||
sudo dpkg --add-architecture i386
|
||||
```
|
||||
|
||||
Afterwards import the key for our repository:
|
||||
```bash
|
||||
wget http://download.opensuse.org/repositories/home:/DarkPlayer:/Pipelight/Debian_7.0/Release.key
|
||||
sudo apt-key add Release.key
|
||||
```
|
||||
|
||||
And add our repository at the end of your `/etc/apt/sources.list` file:
|
||||
```
|
||||
# For Debian Wheezy add the following line:
|
||||
deb http://download.opensuse.org/repositories/home:/DarkPlayer:/Pipelight/Debian_7.0/ ./
|
||||
```
|
||||
|
||||
Afterwards update the package cache and install it:
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install wine-compholio
|
||||
```
|
||||
|
||||
|
||||
 OpenSUSE
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
All the following steps have to be executed as root user. As a first step
|
||||
you have to add the repository - this step depends on the openSUSE version
|
||||
you're using.
|
||||
|
||||
| openSUSE version | Path component |
|
||||
| ------------------- | ----------------------- |
|
||||
| openSUSE 12.2 | `/openSUSE_12.2/` |
|
||||
| openSUSE 12.3 | `/openSUSE_12.3/` |
|
||||
| openSUSE 13.1 | `/openSUSE_13.1/` |
|
||||
| openSUSE Factory | `/openSUSE_Factory/` |
|
||||
| openSUSE Tumbleweed | `/openSUSE_Tumbleweed/` |
|
||||
|
||||
The following commandline is an example for openSUSE 13.1, for a different
|
||||
version just replace the path component according to the table above:
|
||||
```bash
|
||||
zypper ar --refresh http://download.opensuse.org/repositories/home:/DarkPlayer:/Pipelight/openSUSE_13.1/home:DarkPlayer:Pipelight.repo
|
||||
```
|
||||
|
||||
Afterwards just run the following commands to install it:
|
||||
```bash
|
||||
zypper ref
|
||||
zypper install wine-compholio
|
||||
```
|
||||
|
||||
|
||||
 Fedora
|
||||
-------------------------------------------------------------------
|
||||
|
||||
**Warning:** In contrary to other distributions, its not possible to have both
|
||||
a regular wine version and Wine-Compholio installed at the same time - using
|
||||
the instructions below will replace your regular version. Moreover it will
|
||||
be installed to `/usr/bin/wine` in contrary to `/opt/wine-compholio/bin/wine`.
|
||||
|
||||
As a first step you have to add the repository - this step depends on the
|
||||
Fedora version you're using.
|
||||
|
||||
| Fedora version | Patch component |
|
||||
| --------------- | --------------- |
|
||||
| Fedora 18 | `/Fedora_18/` |
|
||||
| Fedora 19 | `/Fedora_19/` |
|
||||
| Fedora 20 | `/Fedora_20/` |
|
||||
|
||||
The following commandline is an example for Fedora 19, for a different version
|
||||
just replace the path component according to the table above:
|
||||
```bash
|
||||
sudo wget http://download.opensuse.org/repositories/home:/DarkPlayer:/Pipelight/Fedora_19/home:DarkPlayer:Pipelight.repo -O /etc/yum.repos.d/pipelight.repo
|
||||
```
|
||||
|
||||
Afterwards run the following command to install the package:
|
||||
```bash
|
||||
sudo yum install wine-compholio
|
||||
```
|
||||
|
||||
Please note that you might run into trouble if the official Fedora package
|
||||
(without compholio patches) is newer than the one from the repository above,
|
||||
so if something doesn't work, always make sure that you have installed
|
||||
our version. To do that just run:
|
||||
```bash
|
||||
/usr/bin/wine --patches
|
||||
```
|
||||
|
||||
When you're using Wine-Compholio this will show to a list of all patches
|
||||
included, for an unpatched version this command will fail.
|
||||
|
||||
|
||||
 Mageia 4
|
||||
---------------------------------------------------------------------
|
||||
|
||||
As a first step please add the key for our repository
|
||||
```bash
|
||||
wget http://repos.fds-team.de/Release.key
|
||||
rpm --import Release.key
|
||||
```
|
||||
|
||||
If you're using a 32-bit version of Mageia just add the repository
|
||||
for 32-bit packages:
|
||||
```bash
|
||||
sudo urpmi.addmedia "Compholio 32-bit" http://cdn.fds-team.de/stable/mageia/4/i586/
|
||||
```
|
||||
|
||||
For a 64-bit version of Mageia you'll need both the 32-bit and the
|
||||
64-bit repository:
|
||||
```bash
|
||||
sudo urpmi.addmedia "Compholio 32-bit" http://cdn.fds-team.de/stable/mageia/4/i586/
|
||||
sudo urpmi.addmedia "Compholio 64-bit" http://cdn.fds-team.de/stable/mageia/4/x86_64/
|
||||
```
|
||||
|
||||
Afterwards run the following commands to install the package:
|
||||
```bash
|
||||
sudo urpmi.update -a
|
||||
sudo urpmi wine-compholio
|
||||
```
|
||||
|
||||
Using Wine-Compholio
|
||||
====================
|
||||
|
||||
Daily updates for the Wine "Compholio" Edition.
|
||||
Since we don't want to duplicate a lot of information here, we recommend
|
||||
to take a look at the [official Wine FAQ](http://wiki.winehq.org/FAQ) for
|
||||
general information about how to use Wine. The following part will mainly
|
||||
concentrate on the differences between wine and Wine-Compholio.
|
||||
|
||||
|
||||
Running Wine-Compholio
|
||||
----------------------
|
||||
|
||||
**Using multiple Wine versions:** Unless you specify a special `WINEPREFIX`
|
||||
environment variable, Wine-Compholio will use the same wineprefix `~/.wine`
|
||||
(in your home directory) like regular wine. This allows you to use your
|
||||
already installed programs directly, without much effort or reinstalling
|
||||
them. Often you have both regular wine and Wine-Compholio installed at the
|
||||
same time, which is *absolutely no problem* - by typing in either `wine`
|
||||
(=regular wine) or `/opt/wine-compholio/bin/wine` you can decide, which
|
||||
wine version you want to run. You can switch between versions as often as
|
||||
you like - just make sure that all Windows programs have terminated before
|
||||
starting them with a different version.
|
||||
|
||||
To run Wine-Compholio always type `/opt/wine-compholio/bin/wine`, for example:
|
||||
```bash
|
||||
cd ~/.wine/drive_c/<your path>/
|
||||
/opt/wine-compholio/bin/wine game.exe
|
||||
```
|
||||
|
||||
You also have to add `/opt/wine-compholio/bin/` when running other wine
|
||||
related programs, here are some additional example:
|
||||
```bash
|
||||
# Initialize the wine prefix
|
||||
/opt/wine-compholio/bin/wineboot
|
||||
|
||||
# Open the wine configuration
|
||||
/opt/wine-compholio/bin/winecfg
|
||||
|
||||
# Run winepath to convert paths
|
||||
/opt/wine-compholio/bin/winepath --unix 'c:\Windows'
|
||||
|
||||
# Kill the running wineserver instance
|
||||
/opt/wine-compholio/bin/wineserver -k
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
If you're an experienced user, and always want to use Wine-Compholio, you
|
||||
can also add `/opt/wine-compholio/bin` to your bash profile. We will not
|
||||
go into detail here, because such a setup has the big disadvantage, that
|
||||
it hides which version you're using - which is very important for getting
|
||||
support or reporting bugs.
|
||||
|
||||
|
||||
Submitting bugs
|
||||
---------------
|
||||
|
||||
**Warning: Do not submit bug reports at bugs.winehq.org when using this
|
||||
version!**
|
||||
|
||||
If you encounter any issues, the first thing you should do is to try it with
|
||||
regular wine. We're only a very small developer team, and although we would
|
||||
like to do that, we probably cannot really solve all your Wine bugs. When
|
||||
it turns out that the official Wine version also doesn't work, you can file
|
||||
a bugreport at the official [Wine bugtracker](http://bugs.winehq.org/).
|
||||
Feel free to mention that you also tested with Wine-Compholio, but all
|
||||
bugreport related information (logs, crashdumps, ...) should concentrate
|
||||
only on upstream wine.
|
||||
|
||||
If it turns out, that it works with upstream wine, but not with Wine-Compholio,
|
||||
then it might be a regression caused by our patches. We would like you to
|
||||
report this issue to us, so we can fix it in future versions. You can also
|
||||
report issues, when testing with upstream Wine is impossible or it crashes
|
||||
with a different error (for example much earlier).
|
||||
|
||||
When submitting a application related bug here on github, please make sure to
|
||||
include at least the following information. Generally its always a good idea
|
||||
to provide as much information as possible, since this will significantly
|
||||
increase chances to provide support and to fix it.
|
||||
|
||||
1. **Which application triggers the bug**
|
||||
* Application name and version number
|
||||
* How to obtain it (download URL + checksum if public available)
|
||||
|
||||
2. **What exactly doesn't work**
|
||||
* Log of the terminal output of the application
|
||||
* For visual issues please additionally attach a screenshot, and describe
|
||||
what it should look like
|
||||
* *Optionally:* If you already know whats going wrong, please attach
|
||||
appropriate `WINEDEBUG` logs or excerpts showing the issue.
|
||||
|
||||
3. **Details about your WINEPREFIX**
|
||||
* *Recommended:* Test it in a new wine prefix, and report if this works
|
||||
* Did you install any overrides? (for examples by using `winetricks`)
|
||||
* Did you change any settings by running `winecfg`?
|
||||
|
||||
4. **Information about your Wine-Compholio version**
|
||||
* *Recommended:* Test with regular wine, and report if this works
|
||||
* Version number (`/opt/wine-compholio/bin/wine --version`)
|
||||
* Patches in your build (`/opt/wine-compholio/bin/wine --patches`)
|
||||
* Installed optional libraries (`/opt/wine-compholio/bin/wine --check-libs`)
|
||||
|
185
debian/changelog
vendored
185
debian/changelog
vendored
@@ -1,3 +1,188 @@
|
||||
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.
|
||||
* Disabled gstreamer (broken with glib >= 2.32.0).
|
||||
* Updated scripts to be compatible with BSD systems.
|
||||
* Update winepulse patches to latest revision (extracted from 1.7.19).
|
||||
* Force autoreconf even when timestamp seems to indicate that it is not necessary.
|
||||
* Added patches for default security descriptor ownership and DACLs for processes.
|
||||
* Added a patch to avoid a race-condition when unloading modules while a hook is active.
|
||||
* Add patch to fix issues with Obsidium copy protection.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sat, 14 Jun 2014 18:15:12 +0200
|
||||
|
||||
wine-compholio (1.7.19-1) unstable; urgency=low
|
||||
* Added a patch to fix return value for FSCTL_PIPE_WAIT (required for Unity3D).
|
||||
* Added a patch to stub TokenAppContainerSid in NtQueryInformationToken (required for Unity3D).
|
||||
* Added a patch to optimize the file descriptor cache by using lockfree algorithms.
|
||||
* Add additional checks in XATTR patch to ensure wineserver doesn't crash if data is corrupted.
|
||||
* Add support for extended attributes on FreeBSD systems.
|
||||
* Added a patch to fix ntdll/exception test failures on x86_64.
|
||||
* Allow to change 'strict draw ordering' at runtime.
|
||||
* Add ability to test if all dynamic libraries are installed with "wine --check-libs".
|
||||
* Added a patch to query if direct rendering is enabled via GLX extension.
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Mon, 02 Jun 2014 23:50:23 +0200
|
||||
|
||||
wine-compholio (1.7.19) unstable; urgency=low
|
||||
* Updated SIO_ADDRESS_LIST_CHANGE patches.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Tue, 06 May 2014 15:42:32 -0600
|
||||
|
||||
wine-compholio (1.7.18-1) unstable; urgency=low
|
||||
* Fix some issues on BSD systems.
|
||||
* Add additional patches to silence a few FIXMEs.
|
||||
* Rebase 02-ACL_Extended_Attributes patches.
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Tue, 13 May 2014 20:47:23 +0200
|
||||
|
||||
wine-compholio (1.7.18) unstable; urgency=low
|
||||
* Updated SetTimer patch (10 ms accepted upstream).
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 02 May 2014 13:05:13 -0600
|
||||
|
||||
wine-compholio (1.7.17) unstable; urgency=low
|
||||
* Split Arial replacement into two patches.
|
||||
* Removed dynamic unwind patches (accepted upstream).
|
||||
* Removed linguistic casing patches (accepted upstream).
|
||||
* ACL data is now stored in binary instead of converting it to ASCII.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 18 Apr 2014 16:03:57 -0600
|
||||
|
||||
wine-compholio (1.7.16-1) unstable; urgency=low
|
||||
* Fix build failure caused by dynamic unwind functions.
|
||||
* Dropped liblcms2-dev dependency for old Ubuntu versions.
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Sat, 05 Apr 2014 03:48:25 +0200
|
||||
|
||||
wine-compholio (1.7.16) unstable; urgency=low
|
||||
* Add stub for RtlInstallFunctionTableCallback.
|
||||
* Further split out the SIO_ADDRESS_LIST_CHANGE patches.
|
||||
* Add proper implementation for dynamic unwind functions, removed stub implementation.
|
||||
* Fix lcms dependency (Wine requires lcms2 instead of lcms1), add build dependency to libsane-dev.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 04 Apr 2014 17:27:52 -0600
|
||||
|
||||
wine-compholio (1.7.15-1) unstable; urgency=low
|
||||
* Build 64 bit version of Wine.
|
||||
* First SIO_ADDRESS_LIST_CHANGE patch accepted upstream.
|
||||
* Added stub dll for DirectX Video Acceleration (dxva2.dll).
|
||||
* Update DXVA2 patches (additional implementation details, parts accepted upstream).
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Tue, 25 Mar 2014 06:08:01 +0100
|
||||
|
||||
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
|
||||
|
187
debian/control
vendored
187
debian/control
vendored
@@ -5,27 +5,21 @@ 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,
|
||||
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],
|
||||
gzip,
|
||||
libacl1-dev,
|
||||
libasound2-dev [i386 lpia],
|
||||
libc6-dev-i386 [amd64],
|
||||
libasound2-dev,
|
||||
libcapi20-dev,
|
||||
libcups2-dev,
|
||||
libdbus-1-dev,
|
||||
@@ -33,28 +27,25 @@ Build-Depends: autotools-dev,
|
||||
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,
|
||||
liblcms2-dev | ubuntu-desktop (<< 1.267),
|
||||
libldap2-dev, libldap-dev,
|
||||
libmpg123-dev,
|
||||
libncurses5-dev [i386] | libncurses-dev [i386],
|
||||
libncurses5-dev | libncurses-dev,
|
||||
libopenal-dev (>= 1:1.12) | ubuntu-desktop (<< 1.207),
|
||||
libpng12-dev,
|
||||
libpulse-dev,
|
||||
libsane-dev,
|
||||
libssl-dev,
|
||||
libstdc++6-4.5-dev | libstdc++-dev,
|
||||
libtiff4-dev,
|
||||
libv4l-dev [i386],
|
||||
libtiff5-dev | libtiff4-dev | libtiff-dev,
|
||||
libv4l-dev,
|
||||
libx11-dev,
|
||||
libxcomposite-dev,
|
||||
libxcursor-dev,
|
||||
@@ -69,30 +60,28 @@ Build-Depends: autotools-dev,
|
||||
libxxf86vm-dev,
|
||||
linux-kernel-headers,
|
||||
linux-libc-dev,
|
||||
prelink [i386 amd64],
|
||||
prelink,
|
||||
quilt (>= 0.46-7~),
|
||||
sharutils,
|
||||
unixodbc-dev,
|
||||
x11proto-xinerama-dev
|
||||
Standards-Version: 3.9.2
|
||||
|
||||
Package: wine-compholio
|
||||
Package: wine-compholio-i386
|
||||
Architecture: i386
|
||||
Multi-Arch: foreign
|
||||
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
|
||||
Depends: ${shlibs:Depends},
|
||||
libasound2-plugins,
|
||||
libncurses5
|
||||
Recommends: gettext,
|
||||
libcapi20-3,
|
||||
Recommends: libcapi20-3,
|
||||
libcups2,
|
||||
libdbus-1-3,
|
||||
libfontconfig1 | libfontconfig,
|
||||
libfreetype6,
|
||||
libgif4,
|
||||
libgnutls26,
|
||||
libgphoto2-6 | libgphoto2-2 (>= 2.4.6),
|
||||
libgphoto2-port0 (>= 2.4.6),
|
||||
libgphoto2-port10 | libgphoto2-port0 (>= 2.4.6),
|
||||
libjpeg8,
|
||||
libopenal1 (>= 1:1.12),
|
||||
libosmesa6,
|
||||
@@ -100,7 +89,7 @@ Recommends: gettext,
|
||||
libpulse0,
|
||||
libsane,
|
||||
libssl1.0.0,
|
||||
libtiff4,
|
||||
libtiff5 | libtiff4,
|
||||
libv4l-0,
|
||||
libxcomposite1,
|
||||
libxcursor1,
|
||||
@@ -111,8 +100,96 @@ Recommends: gettext,
|
||||
libxslt1.1,
|
||||
libxt6,
|
||||
libxxf86vm1,
|
||||
unixodbc
|
||||
Provides: wine-compholio
|
||||
libodbc1,
|
||||
libgsm1
|
||||
Section: otherosfs
|
||||
Priority: optional
|
||||
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.
|
||||
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 provides support for loading 32-bit x86 Windows applications
|
||||
.
|
||||
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.
|
||||
|
||||
Package: wine-compholio-amd64
|
||||
Architecture: amd64
|
||||
Multi-Arch: foreign
|
||||
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
|
||||
Depends: ${shlibs:Depends},
|
||||
libasound2-plugins,
|
||||
libncurses5
|
||||
Recommends: libcapi20-3,
|
||||
libcups2,
|
||||
libdbus-1-3,
|
||||
libfontconfig1 | libfontconfig,
|
||||
libfreetype6,
|
||||
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,
|
||||
libtiff5 | libtiff4,
|
||||
libv4l-0,
|
||||
libxcomposite1,
|
||||
libxcursor1,
|
||||
libxi6,
|
||||
libxinerama1,
|
||||
libxrandr2,
|
||||
libxrender1,
|
||||
libxslt1.1,
|
||||
libxt6,
|
||||
libxxf86vm1,
|
||||
libodbc1,
|
||||
libgsm1
|
||||
Section: otherosfs
|
||||
Priority: optional
|
||||
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.
|
||||
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 provides support for loading 64-bit x86 Windows applications
|
||||
.
|
||||
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.
|
||||
|
||||
Package: wine-compholio
|
||||
Architecture: i386 amd64
|
||||
Multi-Arch: foreign
|
||||
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends},
|
||||
wine-compholio-i386 (= ${binary:Version}) [i386 amd64],
|
||||
wine-compholio-amd64 (= ${binary:Version}) [amd64],
|
||||
Section: otherosfs
|
||||
Priority: optional
|
||||
Description: The Compholio Edition is a special build of the popular Wine software
|
||||
@@ -135,3 +212,57 @@ Description: The Compholio Edition is a special build of the popular Wine softwa
|
||||
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.
|
||||
|
||||
Package: wine-compholio-dev
|
||||
Architecture: i386 amd64
|
||||
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
|
||||
Depends: libc6-dev,
|
||||
${shlibs:Depends},
|
||||
wine-compholio-i386 (= ${binary:Version}) [i386 amd64],
|
||||
wine-compholio-amd64 (= ${binary:Version}) [amd64],
|
||||
Section: libdevel
|
||||
Priority: optional
|
||||
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.
|
||||
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 consists of the development files needed to compile programs
|
||||
using wine's free version of the Microsoft Windows API.
|
||||
|
||||
Package: wine-compholio-dbg
|
||||
Architecture: i386 amd64
|
||||
Multi-Arch: same
|
||||
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
|
||||
Depends: ${shlibs:Depends},
|
||||
wine-compholio-i386 (= ${binary:Version}) [i386 amd64],
|
||||
wine-compholio-amd64 (= ${binary:Version}) [amd64],
|
||||
Section: debug
|
||||
Priority: optional
|
||||
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.
|
||||
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 debugging symbols useful for reporting crashes and other
|
||||
failures.
|
||||
|
191
debian/rules
vendored
191
debian/rules
vendored
@@ -1,36 +1,4 @@
|
||||
#!/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),)
|
||||
@@ -39,115 +7,66 @@ 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 to Wine
|
||||
for DIR in $$(find $(CURDIR)/patches/ -type d | sort); do \
|
||||
for FILE in $$(ls $$DIR | sort | grep '\.patch$$'); do \
|
||||
patch -N -p0 --strip=1 < $$DIR/$$FILE || exit 1; \
|
||||
done \
|
||||
done
|
||||
|
||||
# Update the configure script
|
||||
autoreconf
|
||||
|
||||
# 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 $(CONFFLAGS)
|
||||
%:
|
||||
dh $@ --parallel
|
||||
|
||||
|
||||
override_dh_auto_configure:
|
||||
|
||||
build: build-stamp
|
||||
# Apply our patches, reconfigure, and update the wineserver protocol request data
|
||||
make -C "$(CURDIR)/patches/" DESTDIR="$(CURDIR)" install
|
||||
|
||||
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
|
||||
# Run configure
|
||||
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)"
|
||||
./configure --prefix=/opt/wine-compholio \
|
||||
--libdir=\$${prefix}/lib64 \
|
||||
--mandir=\$${prefix}/share/man \
|
||||
--infodir=\$${prefix}/share/info \
|
||||
--enable-win64 \
|
||||
--without-gstreamer \
|
||||
--with-xattr \
|
||||
$(CONFFLAGS)
|
||||
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
|
||||
./configure --prefix=/opt/wine-compholio \
|
||||
--libdir=\$${prefix}/lib \
|
||||
--mandir=\$${prefix}/share/man \
|
||||
--infodir=\$${prefix}/share/info \
|
||||
--without-gstreamer \
|
||||
--with-xattr \
|
||||
$(CONFFLAGS)
|
||||
endif
|
||||
dh_md5sums
|
||||
dh_builddeb -- -Z lzma
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: build clean binary-indep binary-arch binary install
|
||||
|
||||
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/
|
||||
else
|
||||
dh_shlibdeps -l $(CURDIR)/debian/tmp/opt/wine-compholio/lib/
|
||||
endif
|
||||
|
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.
|
24
debian/tools/Makefile.in
vendored
Normal file
24
debian/tools/Makefile.in
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
#
|
||||
# This file is automatically generated, DO NOT EDIT!
|
||||
#
|
||||
|
||||
CURDIR ?= ${{.CURDIR}}
|
||||
PATCH := $(CURDIR)/../debian/tools/gitapply.sh
|
||||
APPLY := (cd $(DESTDIR) && $(PATCH))
|
||||
APPLY_FILE = @echo "Applying $(1)"; $(APPLY) < $(CURDIR)/$(1)
|
||||
|
||||
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: clean
|
||||
clean:
|
||||
rm -f *.ok
|
||||
|
||||
.NOTPARALLEL:
|
||||
|
331
debian/tools/README.md.in
vendored
Normal file
331
debian/tools/README.md.in
vendored
Normal file
@@ -0,0 +1,331 @@
|
||||
What is Wine-Compholio?
|
||||
=======================
|
||||
|
||||
The **Wine "Compholio" Edition** is a special patched version of Wine that
|
||||
includes both patches written by our team directly and specific 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!
|
||||
|
||||
|
||||
Included bugfixes and improvements
|
||||
----------------------------------
|
||||
|
||||
Wine-Compholio contains fixes for the following Wine bugs:
|
||||
|
||||
{bugs}
|
||||
|
||||
Besides that the following additional changes are included:
|
||||
|
||||
{fixes}
|
||||
|
||||
|
||||
How to install 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 below to install it (and all required dependencies). After the
|
||||
installation, please take a look at the next section for instructions how
|
||||
to use it in order to run your desired application.
|
||||
|
||||
**Important:** If you already have installed 'pipelight' on your system, there
|
||||
is a good chance that you already have Wine-Compholio. Take a look at the
|
||||
next section on how to find out if this is the case.
|
||||
|
||||
If your distribution is not listed below, feel free to add a feature request -
|
||||
if the demand is high enough we might consider packaging it for additional
|
||||
distributions.
|
||||
|
||||
|
||||
 Ubuntu / Linux Mint
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Please run the following commands from a terminal, one line after each other.
|
||||
```bash
|
||||
sudo add-apt-repository ppa:pipelight/stable
|
||||
sudo apt-get update
|
||||
sudo apt-get install --install-recommends wine-compholio
|
||||
```
|
||||
|
||||
 Arch Linux
|
||||
---------------------------------------------------------------------
|
||||
|
||||
As a first step you have to import the key for our repository, and set the
|
||||
trust level to trusted:
|
||||
```bash
|
||||
sudo pacman-key -r E49CC0415DC2D5CA
|
||||
sudo pacman-key --lsign-key E49CC0415DC2D5CA
|
||||
```
|
||||
|
||||
Afterwards you have to add the following lines to `/etc/pacman.conf`:
|
||||
```
|
||||
[compholio]
|
||||
Server = http://cdn.fds-team.de/stable/arch/$arch
|
||||
```
|
||||
|
||||
Now you can install Wine-Compholio directly using `pacman`:
|
||||
```bash
|
||||
sudo pacman -Syu wine-compholio
|
||||
```
|
||||
|
||||
 Debian Jessie/Sid
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
*(Instructions for Debian Wheezy can be found below)*
|
||||
|
||||
In order to install i386 packages on a 64-bit system, you have to run the
|
||||
following command as a first step:
|
||||
```bash
|
||||
sudo dpkg --add-architecture i386
|
||||
```
|
||||
|
||||
Afterwards import the key for our repository:
|
||||
```bash
|
||||
wget http://repos.fds-team.de/Release.key
|
||||
sudo apt-key add Release.key
|
||||
```
|
||||
|
||||
And add our repository at the end of your `/etc/apt/sources.list` file:
|
||||
```
|
||||
# For Debian Jessie add the following line:
|
||||
deb http://cdn.fds-team.de/stable/debian/ jessie main
|
||||
|
||||
# For Debian Sid this one:
|
||||
deb http://cdn.fds-team.de/stable/debian/ sid main
|
||||
```
|
||||
|
||||
Afterwards update the package cache and install it:
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install wine-compholio
|
||||
```
|
||||
|
||||
|
||||
 Debian Wheezy
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
In order to install i386 packages on a 64-bit system, you have to run the
|
||||
following command as a first step:
|
||||
```bash
|
||||
sudo dpkg --add-architecture i386
|
||||
```
|
||||
|
||||
Afterwards import the key for our repository:
|
||||
```bash
|
||||
wget http://download.opensuse.org/repositories/home:/DarkPlayer:/Pipelight/Debian_7.0/Release.key
|
||||
sudo apt-key add Release.key
|
||||
```
|
||||
|
||||
And add our repository at the end of your `/etc/apt/sources.list` file:
|
||||
```
|
||||
# For Debian Wheezy add the following line:
|
||||
deb http://download.opensuse.org/repositories/home:/DarkPlayer:/Pipelight/Debian_7.0/ ./
|
||||
```
|
||||
|
||||
Afterwards update the package cache and install it:
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install wine-compholio
|
||||
```
|
||||
|
||||
|
||||
 OpenSUSE
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
All the following steps have to be executed as root user. As a first step
|
||||
you have to add the repository - this step depends on the openSUSE version
|
||||
you're using.
|
||||
|
||||
| openSUSE version | Path component |
|
||||
| ------------------- | ----------------------- |
|
||||
| openSUSE 12.2 | `/openSUSE_12.2/` |
|
||||
| openSUSE 12.3 | `/openSUSE_12.3/` |
|
||||
| openSUSE 13.1 | `/openSUSE_13.1/` |
|
||||
| openSUSE Factory | `/openSUSE_Factory/` |
|
||||
| openSUSE Tumbleweed | `/openSUSE_Tumbleweed/` |
|
||||
|
||||
The following commandline is an example for openSUSE 13.1, for a different
|
||||
version just replace the path component according to the table above:
|
||||
```bash
|
||||
zypper ar --refresh http://download.opensuse.org/repositories/home:/DarkPlayer:/Pipelight/openSUSE_13.1/home:DarkPlayer:Pipelight.repo
|
||||
```
|
||||
|
||||
Afterwards just run the following commands to install it:
|
||||
```bash
|
||||
zypper ref
|
||||
zypper install wine-compholio
|
||||
```
|
||||
|
||||
|
||||
 Fedora
|
||||
-------------------------------------------------------------------
|
||||
|
||||
**Warning:** In contrary to other distributions, its not possible to have both
|
||||
a regular wine version and Wine-Compholio installed at the same time - using
|
||||
the instructions below will replace your regular version. Moreover it will
|
||||
be installed to `/usr/bin/wine` in contrary to `/opt/wine-compholio/bin/wine`.
|
||||
|
||||
As a first step you have to add the repository - this step depends on the
|
||||
Fedora version you're using.
|
||||
|
||||
| Fedora version | Patch component |
|
||||
| --------------- | --------------- |
|
||||
| Fedora 18 | `/Fedora_18/` |
|
||||
| Fedora 19 | `/Fedora_19/` |
|
||||
| Fedora 20 | `/Fedora_20/` |
|
||||
|
||||
The following commandline is an example for Fedora 19, for a different version
|
||||
just replace the path component according to the table above:
|
||||
```bash
|
||||
sudo wget http://download.opensuse.org/repositories/home:/DarkPlayer:/Pipelight/Fedora_19/home:DarkPlayer:Pipelight.repo -O /etc/yum.repos.d/pipelight.repo
|
||||
```
|
||||
|
||||
Afterwards run the following command to install the package:
|
||||
```bash
|
||||
sudo yum install wine-compholio
|
||||
```
|
||||
|
||||
Please note that you might run into trouble if the official Fedora package
|
||||
(without compholio patches) is newer than the one from the repository above,
|
||||
so if something doesn't work, always make sure that you have installed
|
||||
our version. To do that just run:
|
||||
```bash
|
||||
/usr/bin/wine --patches
|
||||
```
|
||||
|
||||
When you're using Wine-Compholio this will show to a list of all patches
|
||||
included, for an unpatched version this command will fail.
|
||||
|
||||
|
||||
 Mageia 4
|
||||
---------------------------------------------------------------------
|
||||
|
||||
As a first step please add the key for our repository
|
||||
```bash
|
||||
wget http://repos.fds-team.de/Release.key
|
||||
rpm --import Release.key
|
||||
```
|
||||
|
||||
If you're using a 32-bit version of Mageia just add the repository
|
||||
for 32-bit packages:
|
||||
```bash
|
||||
sudo urpmi.addmedia "Compholio 32-bit" http://cdn.fds-team.de/stable/mageia/4/i586/
|
||||
```
|
||||
|
||||
For a 64-bit version of Mageia you'll need both the 32-bit and the
|
||||
64-bit repository:
|
||||
```bash
|
||||
sudo urpmi.addmedia "Compholio 32-bit" http://cdn.fds-team.de/stable/mageia/4/i586/
|
||||
sudo urpmi.addmedia "Compholio 64-bit" http://cdn.fds-team.de/stable/mageia/4/x86_64/
|
||||
```
|
||||
|
||||
Afterwards run the following commands to install the package:
|
||||
```bash
|
||||
sudo urpmi.update -a
|
||||
sudo urpmi wine-compholio
|
||||
```
|
||||
|
||||
Using Wine-Compholio
|
||||
====================
|
||||
|
||||
Since we don't want to duplicate a lot of information here, we recommend
|
||||
to take a look at the [official Wine FAQ](http://wiki.winehq.org/FAQ) for
|
||||
general information about how to use Wine. The following part will mainly
|
||||
concentrate on the differences between wine and Wine-Compholio.
|
||||
|
||||
|
||||
Running Wine-Compholio
|
||||
----------------------
|
||||
|
||||
**Using multiple Wine versions:** Unless you specify a special `WINEPREFIX`
|
||||
environment variable, Wine-Compholio will use the same wineprefix `~/.wine`
|
||||
(in your home directory) like regular wine. This allows you to use your
|
||||
already installed programs directly, without much effort or reinstalling
|
||||
them. Often you have both regular wine and Wine-Compholio installed at the
|
||||
same time, which is *absolutely no problem* - by typing in either `wine`
|
||||
(=regular wine) or `/opt/wine-compholio/bin/wine` you can decide, which
|
||||
wine version you want to run. You can switch between versions as often as
|
||||
you like - just make sure that all Windows programs have terminated before
|
||||
starting them with a different version.
|
||||
|
||||
To run Wine-Compholio always type `/opt/wine-compholio/bin/wine`, for example:
|
||||
```bash
|
||||
cd ~/.wine/drive_c/<your path>/
|
||||
/opt/wine-compholio/bin/wine game.exe
|
||||
```
|
||||
|
||||
You also have to add `/opt/wine-compholio/bin/` when running other wine
|
||||
related programs, here are some additional example:
|
||||
```bash
|
||||
# Initialize the wine prefix
|
||||
/opt/wine-compholio/bin/wineboot
|
||||
|
||||
# Open the wine configuration
|
||||
/opt/wine-compholio/bin/winecfg
|
||||
|
||||
# Run winepath to convert paths
|
||||
/opt/wine-compholio/bin/winepath --unix 'c:\Windows'
|
||||
|
||||
# Kill the running wineserver instance
|
||||
/opt/wine-compholio/bin/wineserver -k
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
If you're an experienced user, and always want to use Wine-Compholio, you
|
||||
can also add `/opt/wine-compholio/bin` to your bash profile. We will not
|
||||
go into detail here, because such a setup has the big disadvantage, that
|
||||
it hides which version you're using - which is very important for getting
|
||||
support or reporting bugs.
|
||||
|
||||
|
||||
Submitting bugs
|
||||
---------------
|
||||
|
||||
**Warning: Do not submit bug reports at bugs.winehq.org when using this
|
||||
version!**
|
||||
|
||||
If you encounter any issues, the first thing you should do is to try it with
|
||||
regular wine. We're only a very small developer team, and although we would
|
||||
like to do that, we probably cannot really solve all your Wine bugs. When
|
||||
it turns out that the official Wine version also doesn't work, you can file
|
||||
a bugreport at the official [Wine bugtracker](http://bugs.winehq.org/).
|
||||
Feel free to mention that you also tested with Wine-Compholio, but all
|
||||
bugreport related information (logs, crashdumps, ...) should concentrate
|
||||
only on upstream wine.
|
||||
|
||||
If it turns out, that it works with upstream wine, but not with Wine-Compholio,
|
||||
then it might be a regression caused by our patches. We would like you to
|
||||
report this issue to us, so we can fix it in future versions. You can also
|
||||
report issues, when testing with upstream Wine is impossible or it crashes
|
||||
with a different error (for example much earlier).
|
||||
|
||||
When submitting a application related bug here on github, please make sure to
|
||||
include at least the following information. Generally its always a good idea
|
||||
to provide as much information as possible, since this will significantly
|
||||
increase chances to provide support and to fix it.
|
||||
|
||||
1. **Which application triggers the bug**
|
||||
* Application name and version number
|
||||
* How to obtain it (download URL + checksum if public available)
|
||||
|
||||
2. **What exactly doesn't work**
|
||||
* Log of the terminal output of the application
|
||||
* For visual issues please additionally attach a screenshot, and describe
|
||||
what it should look like
|
||||
* *Optionally:* If you already know whats going wrong, please attach
|
||||
appropriate `WINEDEBUG` logs or excerpts showing the issue.
|
||||
|
||||
3. **Details about your WINEPREFIX**
|
||||
* *Recommended:* Test it in a new wine prefix, and report if this works
|
||||
* Did you install any overrides? (for examples by using `winetricks`)
|
||||
* Did you change any settings by running `winecfg`?
|
||||
|
||||
4. **Information about your Wine-Compholio version**
|
||||
* *Recommended:* Test with regular wine, and report if this works
|
||||
* Version number (`/opt/wine-compholio/bin/wine --version`)
|
||||
* Patches in your build (`/opt/wine-compholio/bin/wine --patches`)
|
||||
* Installed optional libraries (`/opt/wine-compholio/bin/wine --check-libs`)
|
469
debian/tools/gitapply.sh
vendored
Executable file
469
debian/tools/gitapply.sh
vendored
Executable file
@@ -0,0 +1,469 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Wrapper to apply binary patches without git.
|
||||
#
|
||||
# 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
|
||||
#
|
||||
|
||||
nogit=0
|
||||
tmpfile=""
|
||||
|
||||
# Show usage information about gitapply script
|
||||
usage()
|
||||
{
|
||||
echo ""
|
||||
echo "Usage: ./gitapply.sh [--nogit] [-d DIRECTORY]"
|
||||
echo ""
|
||||
echo "Reads patch data from stdin and applies the patch to the current"
|
||||
echo "directory or the directory given via commandline."
|
||||
echo ""
|
||||
echo "The patch file can contain both unified text patches as well as"
|
||||
echo "git binary patches."
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Critical error, abort
|
||||
abort()
|
||||
{
|
||||
if [ ! -z "$tmpfile" ]; then
|
||||
rm "$tmpfile"
|
||||
tmpfile=""
|
||||
fi
|
||||
echo "[PATCH] ERR: $1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Show a warning
|
||||
warning()
|
||||
{
|
||||
echo "[PATCH] WRN: $1" >&2
|
||||
}
|
||||
|
||||
# Calculate git sha1 hash
|
||||
gitsha1()
|
||||
{
|
||||
if [ -f "$1" ]; then
|
||||
echo -en "blob $(du -b "$1" | cut -f1)\x00" | cat - "$1" | sha1sum | cut -d' ' -f1
|
||||
else
|
||||
echo "0000000000000000000000000000000000000000"
|
||||
fi
|
||||
}
|
||||
|
||||
# Determine size of a file (or zero, if it doesn't exist)
|
||||
filesize()
|
||||
{
|
||||
local size=$(du -b "$1" | cut -f1)
|
||||
if [ -z "$size" ]; then
|
||||
size="0"
|
||||
fi
|
||||
echo "$size"
|
||||
}
|
||||
|
||||
|
||||
# Parse environment variables
|
||||
while [[ $# > 0 ]]; do
|
||||
cmd="$1"; shift
|
||||
case "$cmd" in
|
||||
|
||||
--nogit)
|
||||
nogit=1
|
||||
;;
|
||||
|
||||
-v)
|
||||
;;
|
||||
|
||||
--directory=*)
|
||||
cd "${cmd#*=}"
|
||||
;;
|
||||
-d)
|
||||
cd "$1"; shift
|
||||
;;
|
||||
|
||||
-R)
|
||||
abort "Reverse applying patches not supported yet with this tool."
|
||||
;;
|
||||
|
||||
--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
|
||||
*)
|
||||
warning "Unknown argument $cmd."
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Redirect to git apply if available
|
||||
if [ "$nogit" -eq 0 ] && command -v git >/dev/null 2>&1; then
|
||||
exec git apply --whitespace=nowarn "$@"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Detect BSD - we check this first to error out as early as possible
|
||||
if gzip -V 2>&1 | grep "BSD" &> /dev/null; then
|
||||
echo "This script is not compatible with *BSD utilities. Please install git," >&2
|
||||
echo "which provides the same functionality and will be used instead." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for missing depdencies
|
||||
for dependency in awk cut dd du grep gzip hexdump patch sha1sum; do
|
||||
if ! command -v "$dependency" >/dev/null 2>&1; then
|
||||
echo "Missing dependency: $dependency - please install this program and try again." >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Decode base85 git data, prepend with a gzip header
|
||||
awk_decode_b85='
|
||||
BEGIN{
|
||||
git="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
||||
b85="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~";
|
||||
printf("\x1f\x8b\x08\x00\x00\x00\x00\x00");
|
||||
while (getline > 0){
|
||||
l = index(git, substr($0, 1, 1));
|
||||
if (l == 0){ exit 1; }
|
||||
p=2;
|
||||
while (l > 0 && p <= length($0)){
|
||||
a = index(b85, substr($0, p++, 1));
|
||||
b = index(b85, substr($0, p++, 1));
|
||||
c = index(b85, substr($0, p++, 1));
|
||||
d = index(b85, substr($0, p++, 1));
|
||||
e = index(b85, substr($0, p++, 1));
|
||||
if (a-- == 0 || b-- == 0 || c-- == 0 || d-- == 0 || e-- == 0){ exit 1; }
|
||||
n = (((a * 85 + b) * 85 + c) * 85 + d) * 85 + e;
|
||||
if (n > 4294967295){ exit 1; }
|
||||
a = n % 256; n /= 256;
|
||||
b = n % 256; n /= 256;
|
||||
c = n % 256; n /= 256;
|
||||
d = n % 256;
|
||||
if (l-- > 0) printf("%c", d);
|
||||
if (l-- > 0) printf("%c", c);
|
||||
if (l-- > 0) printf("%c", b);
|
||||
if (l-- > 0) printf("%c", a);
|
||||
}
|
||||
if (p != length($0) + 1 || l != 0){ exit 1; }
|
||||
}
|
||||
}'
|
||||
|
||||
# Decodes the information from a git delta patch passed in as hex encoded
|
||||
awk_decode_binarypatch='
|
||||
function get_byte(a, b){ # usage: get_byte()
|
||||
if (length(__buffer) == 0){ if(getline __buffer <= 0){ exit 1; } }
|
||||
a = index(hex, substr(__buffer, 1, 1));
|
||||
b = index(hex, substr(__buffer, 2, 1));
|
||||
if (a-- == 0 || b-- == 0){ exit 1; }
|
||||
__buffer = substr(__buffer, 3); __pos++;
|
||||
return a * 16 + b;
|
||||
}
|
||||
function skip_bytes(n, m){ # usage: skip_bytes(n)
|
||||
if (length(__buffer) == 0){ if(getline __buffer <= 0){ exit 1; } }
|
||||
while (n >= (length(__buffer) / 2)){
|
||||
m = length(__buffer) / 2; n -= m; __pos += m;
|
||||
if(getline __buffer <= 0){ exit 1; }
|
||||
}
|
||||
if (n > 0){ __buffer = substr(__buffer, 1 + 2 * n); __pos += n; }
|
||||
}
|
||||
function get_delta_hdr_size(){ # usage: get_delta_hdr_size()
|
||||
cmd = get_byte(); size = and(cmd, 0x7f); i = 7;
|
||||
while (and(cmd, 0x80)){
|
||||
cmd = get_byte(); size += lshift(and(cmd, 0x7f), i); i += 7;
|
||||
}
|
||||
return size;
|
||||
}
|
||||
BEGIN{
|
||||
hex="0123456789ABCDEF"
|
||||
src_size = get_delta_hdr_size(); dst_size = get_delta_hdr_size();
|
||||
printf("S %d %d\n", src_size, dst_size);
|
||||
while (dst_size > 0){
|
||||
cmd = get_byte();
|
||||
if (and(cmd, 0x80)){
|
||||
cp_offs = 0; cp_size = 0;
|
||||
if (and(cmd, 0x01)){ cp_offs = get_byte(); }
|
||||
if (and(cmd, 0x02)){ cp_offs += lshift(get_byte(), 8); }
|
||||
if (and(cmd, 0x04)){ cp_offs += lshift(get_byte(), 16); }
|
||||
if (and(cmd, 0x08)){ cp_offs += lshift(get_byte(), 24); }
|
||||
if (and(cmd, 0x10)){ cp_size = get_byte(); }
|
||||
if (and(cmd, 0x20)){ cp_size += lshift(get_byte(), 8); }
|
||||
if (and(cmd, 0x40)){ cp_size += lshift(get_byte(), 16); }
|
||||
if (cp_size == 0){ cp_size = 0x10000; }
|
||||
if (cp_offs + cp_size > src_size || cp_size > dst_size){ exit 1; }
|
||||
printf("1 %d %d\n", cp_offs, cp_size);
|
||||
dst_size -= cp_size;
|
||||
}else if (cmd){
|
||||
if (cmd > dst_size){ exit 1; }
|
||||
printf("2 %d %d\n", __pos, cmd);
|
||||
skip_bytes(cmd);
|
||||
dst_size -= cmd;
|
||||
}else{ exit 1; }
|
||||
}
|
||||
printf("E 0 0\n");
|
||||
}'
|
||||
|
||||
# Find end of patch header
|
||||
awk_eof_header='
|
||||
BEGIN{
|
||||
ofs=1;
|
||||
}
|
||||
!/^(--- |\+\+\+ |old |new |copy |rename |similarity |index |GIT |literal |delta )/{
|
||||
ofs=0; exit 0;
|
||||
}
|
||||
END{
|
||||
print FNR+ofs;
|
||||
}'
|
||||
|
||||
# Find end of text patch
|
||||
awk_eof_textpatch='
|
||||
BEGIN{
|
||||
ofs=1;
|
||||
}
|
||||
!/^(@| |+|-|\\)/{
|
||||
ofs=0; exit 0;
|
||||
}
|
||||
END{
|
||||
print FNR+ofs;
|
||||
}'
|
||||
|
||||
# Find end of git binary patch
|
||||
awk_eof_binarypatch='
|
||||
BEGIN{
|
||||
ofs=1;
|
||||
}
|
||||
!/^[A-Za-z]/{
|
||||
ofs=0; exit 0;
|
||||
}
|
||||
END{
|
||||
print FNR+ofs;
|
||||
}'
|
||||
|
||||
|
||||
# Create a temporary file containing the patch - NOTE: even if the user
|
||||
# provided a filename it still makes sense to work with a temporary file,
|
||||
# to avoid changes of the content while this script is active.
|
||||
tmpfile=$(mktemp)
|
||||
if [ ! -f "$tmpfile" ]; then
|
||||
tmpfile=""
|
||||
abort "Unable to create temporary file for patch."
|
||||
elif ! cat > "$tmpfile"; then
|
||||
abort "Patch truncated."
|
||||
fi
|
||||
|
||||
# Go through the different patch sections
|
||||
lastoffset=1
|
||||
for offset in $(awk '/^diff --git /{ print FNR; }' "$tmpfile"); do
|
||||
|
||||
# Check part between end of last patch and start of current patch
|
||||
if [ "$lastoffset" -gt "$offset" ]; then
|
||||
abort "Unable to split patch. Is this a proper git patch?"
|
||||
elif [ "$lastoffset" -lt "$offset" ]; then
|
||||
tmpoffset=$((offset - 1))
|
||||
if sed -n "$lastoffset,$tmpoffset p" "$tmpfile" | grep -q '^\(@@ -\|--- \|+++ \)'; then
|
||||
abort "Patch corrupted or not created with git."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Find out the size of the patch header
|
||||
tmpoffset=$((offset + 1))
|
||||
tmpoffset=$(sed -n "$tmpoffset,\$ p" "$tmpfile" | awk "$awk_eof_header")
|
||||
hdroffset=$((offset + tmpoffset))
|
||||
|
||||
# Parse all important fields of the header
|
||||
patch_oldname=""
|
||||
patch_newname=""
|
||||
patch_oldsha1=""
|
||||
patch_newsha1=""
|
||||
patch_is_binary=0
|
||||
patch_binary_type=""
|
||||
patch_binary_size=""
|
||||
|
||||
tmpoffset=$((hdroffset - 1))
|
||||
while IFS= read -r line; do
|
||||
if [ "$line" == "GIT binary patch" ]; then
|
||||
patch_is_binary=1
|
||||
|
||||
elif [[ "$line" =~ ^diff\ --git\ ([^ ]*)\ ([^ ]*)$ ]]; then
|
||||
patch_oldname="${BASH_REMATCH[1]}"
|
||||
patch_newname="${BASH_REMATCH[2]}"
|
||||
|
||||
elif [[ "$line" =~ ^---\ (.*)$ ]]; then
|
||||
patch_oldname="${BASH_REMATCH[1]}"
|
||||
|
||||
elif [[ "$line" =~ ^\+\+\+\ (.*)$ ]]; then
|
||||
patch_newname="${BASH_REMATCH[1]}"
|
||||
|
||||
elif [[ "$line" =~ ^index\ ([a-fA-F0-9]*)\.\.([a-fA-F0-9]*) ]]; then
|
||||
patch_oldsha1="${BASH_REMATCH[1]}"
|
||||
patch_newsha1="${BASH_REMATCH[2]}"
|
||||
|
||||
elif [[ "$line" =~ ^(literal|delta)\ ([0-9]+)$ ]]; then
|
||||
patch_binary_type="${BASH_REMATCH[1]}"
|
||||
patch_binary_size="${BASH_REMATCH[2]}"
|
||||
|
||||
fi
|
||||
done < <(sed -n "$offset,$tmpoffset p" "$tmpfile")
|
||||
|
||||
# Remove first path components, which are always a/ and b/ for git patches
|
||||
if [[ "$patch_oldname" =~ ^a/(.*)$ ]]; then
|
||||
patch_oldname="${BASH_REMATCH[1]}"
|
||||
elif [ "$patch_oldname" != "/dev/null" ]; then
|
||||
abort "Old name doesn't start with a/."
|
||||
fi
|
||||
if [[ "$patch_newname" =~ ^b/(.*)$ ]]; then
|
||||
patch_newname="${BASH_REMATCH[1]}"
|
||||
elif [ "$patch_newname" != "/dev/null" ]; then
|
||||
abort "New name doesn't start with b/."
|
||||
fi
|
||||
|
||||
# Short progress message
|
||||
echo "patching $patch_newname"
|
||||
|
||||
# If its a textual patch, then use 'patch' to apply it.
|
||||
if [ "$patch_is_binary" -eq 0 ]; then
|
||||
|
||||
# Find end of textual patch
|
||||
tmpoffset=$(sed -n "$hdroffset,\$ p" "$tmpfile" | awk "$awk_eof_textpatch")
|
||||
lastoffset=$((hdroffset + tmpoffset - 1))
|
||||
|
||||
# Apply textual patch
|
||||
tmpoffset=$((lastoffset - 1))
|
||||
if ! sed -n "$offset,$tmpoffset p" "$tmpfile" | patch -p1 -s -f; then
|
||||
abort "Textual patch did not apply, aborting."
|
||||
fi
|
||||
|
||||
continue
|
||||
fi
|
||||
|
||||
# It is a binary patch - check that requirements are fulfilled
|
||||
if [ "$patch_binary_type" != "literal" ] && [ "$patch_binary_type" != "delta" ]; then
|
||||
abort "Unknown binary patch type."
|
||||
|
||||
elif [ -z "$patch_oldsha1" ] || [ -z "$patch_newsha1" ]; then
|
||||
abort "Missing index header, sha1 sums required for binary patch."
|
||||
|
||||
elif [ "$patch_oldname" != "$patch_newname" ]; then
|
||||
abort "Stripped old and new name doesn't match for binary patch."
|
||||
fi
|
||||
|
||||
# Ensure that checksum of old file matches
|
||||
sha=$(gitsha1 "$patch_oldname")
|
||||
if [ "$patch_oldsha1" != "$sha" ]; then
|
||||
abort "Checksum mismatch for $patch_oldname (expected $patch_oldsha1, got $sha)."
|
||||
fi
|
||||
|
||||
# Find end of binary patch
|
||||
tmpoffset=$(sed -n "$hdroffset,\$ p" "$tmpfile" | awk "$awk_eof_binarypatch")
|
||||
lastoffset=$((hdroffset + tmpoffset - 1))
|
||||
|
||||
# Special case - deleting the whole file
|
||||
if [ "$patch_newsha1" == "0000000000000000000000000000000000000000" ] &&
|
||||
[ "$patch_binary_size" -eq 0 ] && [ "$patch_binary_type" == "literal" ]; then
|
||||
|
||||
# Applying the patch just means deleting the file
|
||||
if [ -f "$patch_oldname" ] && ! rm "$patch_oldname"; then
|
||||
abort "Unable to delete file $patch_oldname."
|
||||
fi
|
||||
|
||||
continue
|
||||
fi
|
||||
|
||||
# Create temporary file for literal patch
|
||||
literal_tmpfile=$(mktemp)
|
||||
if [ ! -f "$literal_tmpfile" ]; then
|
||||
abort "Unable to create temporary file for binary patch."
|
||||
fi
|
||||
|
||||
# Decode base85 and gzip compression
|
||||
tmpoffset=$((lastoffset - 1))
|
||||
sed -n "$hdroffset,$tmpoffset p" "$tmpfile" | awk "$awk_decode_b85" | gzip -dc > "$literal_tmpfile" 2>/dev/null
|
||||
if [ "$patch_binary_size" -ne "$(filesize "$literal_tmpfile")" ]; then
|
||||
rm "$literal_tmpfile"
|
||||
abort "Uncompressed binary patch has wrong size."
|
||||
fi
|
||||
|
||||
# Convert delta to literal patch
|
||||
if [ "$patch_binary_type" == "delta" ]; then
|
||||
|
||||
# Create new temporary file for literal patch
|
||||
delta_tmpfile="$literal_tmpfile"
|
||||
literal_tmpfile=$(mktemp)
|
||||
if [ ! -f "$literal_tmpfile" ]; then
|
||||
rm "$delta_tmpfile"
|
||||
abort "Unable to create temporary file for binary patch."
|
||||
fi
|
||||
|
||||
patch_binary_complete=0
|
||||
patch_binary_destsize=0
|
||||
|
||||
while read cmd arg1 arg2; do
|
||||
if [ "$cmd" == "S" ]; then
|
||||
[ "$arg1" -eq "$(filesize "$patch_oldname")" ] || break
|
||||
patch_binary_destsize="$arg2"
|
||||
|
||||
elif [ "$cmd" == "1" ]; then
|
||||
dd if="$patch_oldname" bs=1 skip="$arg1" count="$arg2" >> "$literal_tmpfile" 2>/dev/null || break
|
||||
|
||||
elif [ "$cmd" == "2" ]; then
|
||||
dd if="$delta_tmpfile" bs=1 skip="$arg1" count="$arg2" >> "$literal_tmpfile" 2>/dev/null || break
|
||||
|
||||
elif [ "$cmd" == "E" ]; then
|
||||
patch_binary_complete=1
|
||||
|
||||
else break; fi
|
||||
done < <(hexdump -v -e '32/1 "%02X" "\n"' "$delta_tmpfile" | awk "$awk_decode_binarypatch")
|
||||
|
||||
rm "$delta_tmpfile"
|
||||
|
||||
if [ "$patch_binary_complete" -eq 0 ]; then
|
||||
rm "$literal_tmpfile"
|
||||
abort "Unable to parse full patch."
|
||||
|
||||
elif [ "$patch_binary_destsize" -ne "$(filesize "$literal_tmpfile")" ]; then
|
||||
rm "$literal_tmpfile"
|
||||
abort "Unpacked delta patch has wrong size."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure that checksum of literal patch matches
|
||||
sha=$(gitsha1 "$literal_tmpfile")
|
||||
if [ "$patch_newsha1" != "$sha" ]; then
|
||||
rm "$literal_tmpfile"
|
||||
abort "Checksum mismatch for patched $patch_newname (expected $patch_newsha1, got $sha)."
|
||||
fi
|
||||
|
||||
# Apply the patch - copy literal patch to destination path
|
||||
if ! cp "$literal_tmpfile" "$patch_newname"; then
|
||||
rm "$literal_tmpfile"
|
||||
abort "Unable to replace $patch_newname with patched file."
|
||||
fi
|
||||
|
||||
rm "$literal_tmpfile"
|
||||
done
|
||||
|
||||
# Check last remaining part for unparsed patches
|
||||
if sed -n "$lastoffset,\$ p" "$tmpfile" | grep -q '^\(@@ -\|--- \|+++ \)'; then
|
||||
abort "Patch corrupted or not created with git."
|
||||
fi
|
||||
|
||||
# Delete temp file (if any)
|
||||
if [ ! -z "$tmpfile" ]; then
|
||||
rm "$tmpfile"
|
||||
tmpfile=""
|
||||
fi
|
||||
|
||||
# Success
|
||||
exit 0
|
73
debian/tools/patchlist.sh
vendored
Executable file
73
debian/tools/patchlist.sh
vendored
Executable file
@@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
PATCH_DATA=$(cat);
|
||||
PATCH_LINES=$(echo "${PATCH_DATA}" | wc -l);
|
||||
PATCH_LINES=$((${PATCH_LINES}+20));
|
||||
|
||||
cat <<EOF
|
||||
From: "FDS-Team" <webmaster@fds-team.de>
|
||||
Subject: Autogenerated patch list.
|
||||
|
||||
---
|
||||
diff --git a/libs/wine/config.c b/libs/wine/config.c
|
||||
index a273502..5fa0cd5 100644
|
||||
--- a/libs/wine/config.c
|
||||
+++ b/libs/wine/config.c
|
||||
@@ -478,6 +478,${PATCH_LINES} @@ const char *wine_get_version(void)
|
||||
return PACKAGE_VERSION;
|
||||
}
|
||||
|
||||
+struct wine_patch {
|
||||
+ const char *hash;
|
||||
+ const char *author;
|
||||
+ const char *title;
|
||||
+} wine_patch_data[] = {
|
||||
${PATCH_DATA}
|
||||
+ { NULL, NULL, NULL }
|
||||
+};
|
||||
+
|
||||
+/* return the applied non-standard patches */
|
||||
+const void * wine_get_patches(void)
|
||||
+{
|
||||
+ return &wine_patch_data[0];
|
||||
+}
|
||||
+
|
||||
/* return the build id string */
|
||||
const char *wine_get_build_id(void)
|
||||
{
|
||||
diff --git a/libs/wine/wine.def b/libs/wine/wine.def
|
||||
index ed315bd..5b42029 100644
|
||||
--- a/libs/wine/wine.def
|
||||
+++ b/libs/wine/wine.def
|
||||
@@ -83,6 +83,7 @@ EXPORTS
|
||||
wine_get_sortkey
|
||||
wine_get_user_name
|
||||
wine_get_version
|
||||
+ wine_get_patches
|
||||
wine_init
|
||||
wine_init_argv0_path
|
||||
wine_is_dbcs_leadbyte
|
||||
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
|
||||
index 2159fac..7cb2918 100644
|
||||
--- a/libs/wine/wine.map
|
||||
+++ b/libs/wine/wine.map
|
||||
@@ -90,6 +90,7 @@ WINE_1.0
|
||||
wine_get_ss;
|
||||
wine_get_user_name;
|
||||
wine_get_version;
|
||||
+ wine_get_patches;
|
||||
wine_init;
|
||||
wine_init_argv0_path;
|
||||
wine_is_dbcs_leadbyte;
|
||||
diff --git a/include/wine/library.h b/include/wine/library.h
|
||||
index 242bb69..aa9e585 100644
|
||||
--- a/include/wine/library.h
|
||||
+++ b/include/wine/library.h
|
||||
@@ -43,6 +43,7 @@ extern const char *wine_get_data_dir(void);
|
||||
extern const char *wine_get_server_dir(void);
|
||||
extern const char *wine_get_user_name(void);
|
||||
extern const char *wine_get_version(void);
|
||||
+extern const void *wine_get_patches(void);
|
||||
extern const char *wine_get_build_id(void);
|
||||
extern void wine_init_argv0_path( const char *argv0 );
|
||||
extern void wine_exec_wine_binary( const char *name, char **argv, const char *env_var );
|
||||
EOF
|
546
debian/tools/patchupdate.py
vendored
Executable file
546
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/python
|
||||
#
|
||||
# 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-amd64.install
vendored
Normal file
4
debian/wine-compholio-amd64.install
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/opt/wine-compholio/lib64/libwine.so*
|
||||
/opt/wine-compholio/lib64/wine
|
||||
/opt/wine-compholio/bin/wine64
|
||||
/opt/wine-compholio/bin/wine64-preloader
|
1
debian/wine-compholio-dev.install
vendored
Normal file
1
debian/wine-compholio-dev.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/opt/wine-compholio/include
|
4
debian/wine-compholio-i386.install
vendored
Normal file
4
debian/wine-compholio-i386.install
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/opt/wine-compholio/lib/libwine.so*
|
||||
/opt/wine-compholio/lib/wine
|
||||
/opt/wine-compholio/bin/wine
|
||||
/opt/wine-compholio/bin/wine-preloader
|
6
debian/wine-compholio.docs
vendored
Normal file
6
debian/wine-compholio.docs
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
documentation/README.*
|
||||
ANNOUNCE
|
||||
AUTHORS
|
||||
LICENSE.wine
|
||||
LICENSE.wine-compholio
|
||||
README
|
2
debian/wine-compholio.install
vendored
Normal file
2
debian/wine-compholio.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/opt/wine-compholio/bin
|
||||
/opt/wine-compholio/share
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user