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
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
8d274db63d |
6
.gitignore
vendored
6
.gitignore
vendored
@@ -1,3 +1,5 @@
|
||||
staging/wine
|
||||
debian/tools/wine
|
||||
.depcache
|
||||
.srccache
|
||||
*.ok
|
||||
*.pyc
|
||||
.patchupdate.cache
|
||||
|
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.
|
216
LICENSE.md
216
LICENSE.md
@@ -1,17 +1,15 @@
|
||||
Wine Staging license
|
||||
====================
|
||||
Wine-Compholio license
|
||||
======================
|
||||
|
||||
**Note:** Some files in this repository are provided under a different license.
|
||||
Please check the list of exceptions below. Unless stated otherwise all files
|
||||
are part of **Wine Staging** and are licensed under the terms of the
|
||||
are part of **Wine-Compholio** and are licensed under the terms of the
|
||||
[LGPLv2.1](#gnu-lgpl-version-21), to stay compatible with Wine:
|
||||
|
||||
```
|
||||
Copyright (C) 2014-2017 the Wine Staging project authors.
|
||||
Copyright (C) 2018 Alistair Leslie-Hughes, Zebediah Figura
|
||||
Copyright (C) 2019-2020 Alistair Leslie-Hughes, Zebediah Figura, Paul Gofman
|
||||
Copyright (C) 2014 the Wine-Compholio project authors.
|
||||
|
||||
Wine Staging is free software; you can redistribute it and/or
|
||||
Wine-Compholio 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.
|
||||
@@ -28,7 +26,7 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
### Exceptions
|
||||
|
||||
The following files are not part of Wine Staging and provided under a
|
||||
The following files are not part of Wine-Compholio and provided under a
|
||||
different license. These files are not linked to the rest of the project in
|
||||
any way and are simply installed for end-user convenience.
|
||||
|
||||
@@ -39,21 +37,16 @@ any way and are simply installed for end-user convenience.
|
||||
file is licensed under the
|
||||
[LIBERATION FONT SOFTWARE LICENSE](#liberation-font-software-license).
|
||||
|
||||
* `0002-fonts-Add-Liberation-Serif-as-an-Times-New-Roman-rep.patch`:
|
||||
The **Liberation Serif** font is used as a Times New Roman replacement. This
|
||||
file is licensed under the
|
||||
[LIBERATION FONT SOFTWARE LICENSE](#liberation-font-software-license).
|
||||
|
||||
* `0003-fonts-Add-Liberation-Mono-as-an-Courier-New-replacem.patch`:
|
||||
The **Liberation Mono** font is used as a Courier New replacement. This
|
||||
file is licensed under the
|
||||
[LIBERATION FONT SOFTWARE LICENSE](#liberation-font-software-license).
|
||||
|
||||
* `0004-fonts-Add-WenQuanYi-Micro-Hei-as-a-Microsoft-Yahei-r.patch`:
|
||||
* `0002-fonts-Add-WenQuanYi-Micro-Hei-as-a-Microsoft-Yahei-r.patch`:
|
||||
The **WenQuanYi Micro Hei** font is used as a Microsoft Yahei
|
||||
replacement. This file is licensed under both the APACHE 2 license and
|
||||
[GPLv3](#gnu-gpl-version-3).
|
||||
|
||||
* `0003-fonts-Add-Courier-Prime-as-a-Courier-New-replacement.patch`:
|
||||
The **Courier Prime** font is used as a Courier New replacement.
|
||||
This file is licensed under the
|
||||
[OFLv1.1](#ofl-version-11).
|
||||
|
||||
Full license texts
|
||||
==================
|
||||
|
||||
@@ -578,64 +571,55 @@ This agreement governs the use of the Software and any updates to the Software,
|
||||
regardless of the delivery mechanism. Subject to the following terms, Red Hat,
|
||||
Inc. ("Red Hat") grants to the user ("Client") a license to this work pursuant
|
||||
to the GNU General Public License v.2 with the exceptions set forth below and
|
||||
such other terms as are set forth in this End User License Agreement.
|
||||
such other terms as our set forth in this End User License Agreement.
|
||||
|
||||
1. The Software and License Exception. LIBERATION font software (the
|
||||
"Software") consists of TrueType-OpenType formatted font software for rendering
|
||||
LIBERATION typefaces in sans-serif, serif, and monospaced character styles. You
|
||||
are licensed to use, modify, copy, and distribute the Software pursuant to the
|
||||
GNU General Public License v.2 with the following exceptions:
|
||||
|
||||
(a) As a special exception, if you create a document which uses this font,
|
||||
and embed this font or unaltered portions of this font into the document, this
|
||||
font does not by itself cause the resulting document to be covered by the GNU
|
||||
General Public License. This exception does not however invalidate any other
|
||||
reasons why the document might be covered by the GNU General Public License. If
|
||||
you modify this font, you may extend this exception to your version of the
|
||||
font, but you are not obligated to do so. If you do not wish to do so, delete
|
||||
this exception statement from your version.
|
||||
|
||||
(b) As a further exception, any distribution of the object code of the
|
||||
Software in a physical product must provide you the right to access and modify
|
||||
the source code for the Software and to reinstall that modified version of the
|
||||
Software in object code form on the same physical product on which you received
|
||||
it.
|
||||
|
||||
2. Intellectual Property Rights. The Software and each of its components,
|
||||
including the source code, documentation, appearance, structure and
|
||||
organization are owned by Red Hat and others and are protected under copyright
|
||||
and other laws. Title to the Software and any component, or to any copy,
|
||||
modification, or merged portion shall remain with the aforementioned, subject
|
||||
to the applicable license. The "LIBERATION" trademark is a trademark of Red
|
||||
Hat, Inc. in the U.S. and other countries. This agreement does not permit
|
||||
Client to distribute modified versions of the Software using Red Hat's
|
||||
trademarks. If Client makes a redistribution of a modified version of the
|
||||
Software, then Client must modify the files names to remove any reference to
|
||||
the Red Hat trademarks and must not use the Red Hat trademarks in any way to
|
||||
reference or promote the modified Software.
|
||||
|
||||
3. Limited Warranty. To the maximum extent permitted under applicable law, the
|
||||
1.The Software and License Exception. LIBERATION font software (the "Software")
|
||||
consists of TrueType-OpenType formatted font software for rendering LIBERATION
|
||||
typefaces in sans serif, serif, and monospaced character styles. You are licensed
|
||||
to use, modify, copy, and distribute the Software pursuant to the GNU General
|
||||
Public License v.2 with the following exceptions:
|
||||
(a)As a special exception, if you create a document which uses this font, and
|
||||
embed this font or unaltered portions of this font into the document, this font
|
||||
does not by itself cause the resulting document to be covered by the GNU General
|
||||
Public License. This exception does not however invalidate any other reasons why
|
||||
the document might be covered by the GNU General Public License. If you modify
|
||||
this font, you may extend this exception to your version of the font, but you
|
||||
are not obligated to do so. If you do not wish to do so, delete this exception
|
||||
statement from your version.
|
||||
(b)As a further exception, any distribution of the object code of the Software
|
||||
in a physical product must provide you the right to access and modify the source
|
||||
code for the Software and to reinstall that modified version of the Software in
|
||||
object code form on the same physical product on which you received it.
|
||||
2.Intellectual Property Rights. The Software and each of its components,
|
||||
including the source code, documentation, appearance, structure and organization
|
||||
are owned by Red Hat and others and are protected under copyright and other laws.
|
||||
Title to the Software and any component, or to any copy, modification, or merged
|
||||
portion shall remain with the aforementioned, subject to the applicable license.
|
||||
The "LIBERATION" trademark is a trademark of Red Hat, Inc. in the U.S. and other
|
||||
countries. This agreement does not permit Client to distribute modified versions
|
||||
of the Software using Red Hat's trademarks. If Client makes a redistribution of
|
||||
a modified version of the Software, then Client must modify the files names to
|
||||
remove any reference to the Red Hat trademarks and must not use the Red Hat
|
||||
trademarks in any way to reference or promote the modified Software.
|
||||
3.Limited Warranty. To the maximum extent permitted under applicable law, the
|
||||
Software is provided and licensed "as is" without warranty of any kind,
|
||||
expressed or implied, including the implied warranties of merchantability,
|
||||
non-infringement or fitness for a particular purpose. Red Hat does not warrant
|
||||
that the functions contained in the Software will meet Client's requirements or
|
||||
that the operation of the Software will be entirely error free or appear
|
||||
precisely as described in the accompanying documentation.
|
||||
|
||||
4. Limitation of Remedies and Liability. To the maximum extent permitted by
|
||||
4.Limitation of Remedies and Liability. To the maximum extent permitted by
|
||||
applicable law, Red Hat or any Red Hat authorized dealer will not be liable to
|
||||
Client for any incidental or consequential damages, including lost profits or
|
||||
lost savings arising out of the use or inability to use the Software, even if
|
||||
Red Hat or such dealer has been advised of the possibility of such damages.
|
||||
|
||||
5. General. If any provision of this agreement is held to be unenforceable,
|
||||
that shall not affect the enforceability of the remaining provisions. This
|
||||
agreement shall be governed by the laws of the State of North Carolina and of
|
||||
the United States, without regard to any conflict of laws provisions, except
|
||||
that the United Nations Convention on the International Sale of Goods shall not
|
||||
apply.
|
||||
Copyright © 2007-2011 Red Hat, Inc. All rights reserved. LIBERATION is a
|
||||
trademark of Red Hat, Inc.
|
||||
5.General. If any provision of this agreement is held to be unenforceable, that
|
||||
shall not affect the enforceability of the remaining provisions. This agreement
|
||||
shall be governed by the laws of the State of North Carolina and of the United
|
||||
States, without regard to any conflict of laws provisions, except that the
|
||||
United Nations Convention on the International Sale of Goods shall not apply.
|
||||
Copyright © 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark
|
||||
of Red Hat, Inc.
|
||||
```
|
||||
|
||||
|
||||
@@ -1319,3 +1303,103 @@ the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
```
|
||||
|
||||
OFL, Version 1.1
|
||||
---------------------
|
||||
|
||||
```
|
||||
Copyright (c) 2013, Quote-Unquote Apps (http://quoteunquoteapps.com),
|
||||
with Reserved Font Name Courier Prime.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
```
|
||||
|
434
README.md
434
README.md
@@ -1,82 +1,386 @@
|
||||
What is Wine Staging?
|
||||
---------------------
|
||||
What is Wine-Compholio?
|
||||
=======================
|
||||
|
||||
**Wine Staging** is the testing area of winehq.org. It contains bug fixes and
|
||||
features, which have not been integrated into the development branch yet. The
|
||||
idea of Wine Staging is to provide experimental features faster to end users and
|
||||
to give developers the possibility to discuss and improve their patches before
|
||||
they are integrated into the main branch. More information about Wine Staging
|
||||
can also be found [on the WineHQ wiki](https://wiki.winehq.org/Wine-Staging).
|
||||
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!
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Ready-to-use packages for Wine Staging are available for a variety of Linux
|
||||
distributions and for Mac OS X. Just follow the [installation
|
||||
instructions](https://wiki.winehq.org/Download) for your operating system.
|
||||
Included bugfixes and improvements
|
||||
----------------------------------
|
||||
|
||||
On most distributions the `wine-staging` package is installed to
|
||||
`/opt/wine-staging`, such that multiple Wine versions can be installed in
|
||||
parallel. If this is the case for your distribution, you will have to type
|
||||
`/opt/wine-staging/bin/wine` instead of just `wine`. The same also applies for
|
||||
other wine-specific programs like `winecfg`. To learn more about how to use
|
||||
Wine Staging, please take a look at the
|
||||
[usage instructions](https://wiki.winehq.org/Wine-Staging_Usage).
|
||||
**Bugfixes and features included in the next upcoming release [11]:**
|
||||
|
||||
Building
|
||||
--------
|
||||
* Adobe Reader requires NtProtectVirtualMemory and NtCreateSection to be on separate pages ([Wine Bug #33162](http://bugs.winehq.org/show_bug.cgi?id=33162 "Acrobat Reader 11 crashes on start (native API application virtualization, NtProtectVirtualMemory removes execute page protection on its own code)"))
|
||||
* Fix ITERATE_MoveFiles when no source- and destname is specified ([Wine Bug #10085](http://bugs.winehq.org/show_bug.cgi?id=10085 "Adobe Bridge CS2 complains that it can't start due to licensing restrictions (affects photoshop)"))
|
||||
* Fix issue with invisible dragimages in ImageList ([Wine Bug #36761](http://bugs.winehq.org/show_bug.cgi?id=36761 "Imagelist invisible dragimage"))
|
||||
* Games For Windows Live 1.x expects a valid linker version in the PE header ([Wine Bug #28768](http://bugs.winehq.org/show_bug.cgi?id=28768 "Multiple GFWL (Games For Windows Live) 1.x games crash on startup (Kane & Lynch: Dead Men)"))
|
||||
* Gothic 2 demo expects an error when opening a terminating process ([Wine Bug #37087](http://bugs.winehq.org/show_bug.cgi?id=37087 "Gothic 2 english demo fails with 'Conflict: a hook process was found. Please deactivate all Antivirus and Anti-Trojan programs and debuggers.'"))
|
||||
* Multiple applications need BCryptGetFipsAlgorithmMode ([Wine Bug #32194](http://bugs.winehq.org/show_bug.cgi?id=32194 "Multiple games and applications need bcrypt.dll.BCryptGetFipsAlgorithmMode (Chess Position Trainer, Terraria, .NET System.Security.Cryptography)"))
|
||||
* Other Pipelight-specific enhancements
|
||||
* Prevent window managers from grouping all wine programs together ([Wine Bug #32699](http://bugs.winehq.org/show_bug.cgi?id=32699 "Add StartupWMClass to .desktop files."))
|
||||
* Support for Dynamic DST (daylight saving time) information in registry
|
||||
* Support for GetFinalPathNameByHandle ([Wine Bug #36073](http://bugs.winehq.org/show_bug.cgi?id=36073 "OneDrive crashes on unimplemented function KERNEL32.dll.GetFinalPathNameByHandleW"))
|
||||
* nVidia driver for high-end laptop cards does not list all supported resolutions
|
||||
|
||||
Wine Staging is maintained as a set of patches which has to be applied on top of
|
||||
the development branch. In order to build Wine Staging, the first step is to
|
||||
setup a build environment for Wine, including all required dependencies. A lot
|
||||
of information about that is collected in the
|
||||
[WineHQ Wiki](http://wiki.winehq.org/BuildingWine).
|
||||
|
||||
In order to apply all Wine Staging patches it is recommended to use the
|
||||
`patchinstall.sh` utility which takes care of applying all patches in the
|
||||
correct order. For reference, the possible commandline arguments are:
|
||||
**Bugs fixed in Wine-Compholio 1.7.24 [45]:**
|
||||
|
||||
```
|
||||
Usage: ./patchinstall.sh [DESTDIR=path] [--all] [-W patchset] [patchset ...]
|
||||
* 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 default ACLs for user shell folders
|
||||
* ~~Add support for Dynamic DST (daylight saving time) information in registry~~
|
||||
* 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 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"))
|
||||
* Lockfree algorithm for filedescriptor cache (improves file access speed)
|
||||
* Make it possible to change media center / tablet pc status ([Wine Bug #18732](http://bugs.winehq.org/show_bug.cgi?id=18732 "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"))
|
||||
* ~~Other Pipelight specific enhancements~~
|
||||
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
|
||||
* 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"))
|
||||
* SO_CONNECT_TIME returns the appropriate time
|
||||
* 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 GetVolumePathName
|
||||
* Support for 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)"))
|
||||
* 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 LoadIconMetric ([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)"))
|
||||
* 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 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)"))
|
||||
* 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 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"))
|
||||
* 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)"))
|
||||
* Workaround for shlwapi URLs with relative paths
|
||||
* XEMBED support for embedding Wine windows inside Linux applications
|
||||
|
||||
Autogenerated script to apply all Wine Staging patches on your Wine
|
||||
source tree.
|
||||
|
||||
Configuration:
|
||||
DESTDIR=path Specify the path to the wine source tree
|
||||
--all Select all patches
|
||||
--force-autoconf Run autoreconf and tools/make_requests after each patch
|
||||
--help Display this help and exit
|
||||
--no-autoconf Do not run autoreconf and tools/make_requests
|
||||
--no-patchlist Do not apply patchlist (needed for 'wine --patches')
|
||||
--upstream-commit Print the upstream Wine commit SHA1 and exit
|
||||
--version Show version information and exit
|
||||
-W patchset Exclude a specific patchset
|
||||
How to install Wine-Compholio
|
||||
=============================
|
||||
|
||||
Backends:
|
||||
--backend=patch Use regular 'patch' utility to apply patches (default)
|
||||
--backend=eapply Use 'eapply' to apply patches (Gentoo only)
|
||||
--backend=epatch Use 'epatch' to apply patches (Gentoo only, deprecated)
|
||||
--backend=git-am Use 'git am' to apply patches
|
||||
--backend=git-apply Use 'git apply' to apply patches
|
||||
--backend=stg Import the patches using stacked git
|
||||
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
|
||||
```
|
||||
|
||||
If you want to apply *all* patches with the `patch` utility, the commandline
|
||||
should look similar to this:
|
||||
```
|
||||
./patches/patchinstall.sh DESTDIR="/path/to/wine" --all
|
||||
 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
|
||||
```
|
||||
|
||||
Before you proceed with the compilation, please make sure that you installed all
|
||||
additional build dependencies required for the Wine Staging features you are
|
||||
interested in (check output of `./configure`). More information about building
|
||||
Wine Staging, optional build dependencies, and hints for packagers are collected
|
||||
in our [Wiki](https://wiki.winehq.org/Wine-Staging).
|
||||
Afterwards you have to add the following lines to `/etc/pacman.conf`:
|
||||
```
|
||||
[compholio]
|
||||
Server = http://cdn.fds-team.de/stable/arch/$arch
|
||||
```
|
||||
|
||||
Contributing
|
||||
------------
|
||||
Now you can install Wine-Compholio directly using `pacman`:
|
||||
```bash
|
||||
sudo pacman -Syu wine-compholio
|
||||
```
|
||||
|
||||
For information on contributing to Wine-Staging, please see
|
||||
<https://wiki.winehq.org/Wine-Staging_Contributing>. Note that GitHub pull
|
||||
requests are strongly dispreferred, especially for patches.
|
||||
 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`)
|
||||
|
285
debian/changelog
vendored
Normal file
285
debian/changelog
vendored
Normal file
@@ -0,0 +1,285 @@
|
||||
wine-compholio (1.7.25) UNRELEASED; urgency=low
|
||||
* Improve generation of README.md on patch update.
|
||||
* Added patch with stub for DwmInvalidateIconicBitmaps.
|
||||
* Added Courier Prime (OFLv1.1) as a Courier New replacement.
|
||||
* Added patch to better detect broken nVidia RandR 1.2 support.
|
||||
* Added patch to set linker version in PE header.
|
||||
* Added patch to move NtProtectVirtualMemory and NtCreateSection to separate pages.
|
||||
* Added patch to fix issues with drag image in ImageLists.
|
||||
* Added patch with stub for BCryptGetFipsAlgorithmMode.
|
||||
* Added patch to fix issues with OpenProcess on terminated processes.
|
||||
* Added patch to fix issues with msi/ITERATE_MoveFiles.
|
||||
* Added patch to avoid grouping all Wine windows together.
|
||||
* Updated patches for riched20 IText* Interface.
|
||||
* Removed patch to update gl_drawable for embedded windows (deprecated).
|
||||
* Removed patch to return empty D3D hardware flags for RGB device enumeration (accepted upstream).
|
||||
* Removed patch with stub for DwmInvalidateIconicBitmaps (accepted upstream).
|
||||
* Removed patch for SetNamedPipeHandleState implementation (accepted upstream).
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Mon, 11 Aug 2014 16:21:22 -0600
|
||||
|
||||
wine-compholio (1.7.24) unstable; urgency=low
|
||||
* Various further improvements to the patch system.
|
||||
* Added patch to implement inet_pton.
|
||||
* Added patch to implement GetSystemTimes.
|
||||
* Added patch to implement SHCreateSessionKey.
|
||||
* Added patch to create directory available on Vista and later.
|
||||
* Added patch to fix edge cases in TOOLTIPS_GetTipText.
|
||||
* Added patch to allow special characters in pipe names.
|
||||
* Added patch with stubs for [Get|Set]SystemFileCacheSize.
|
||||
* Added patch to implement AllocateAndGetTcpExTableFromStack.
|
||||
* Added patch to support setting file disposition information.
|
||||
* Added patch to fix ConnectNamedPort return value in overlapped mode.
|
||||
* Added patch to store IOCS data in a property instead of GWLP_USERDATA.
|
||||
* Added patch to return empty D3D hardware flags for HEL device enumeration.
|
||||
* Added patch to return the appropriate connection time with SO_CONNECT_TIME.
|
||||
* Added patch to support extra large and jumbo icons.
|
||||
* Added patch to allow setting tablet / media center status via registry.
|
||||
* Added patch to use manual redirection for RunDLL_CallEntry16.
|
||||
* Added patch to set ldr.EntryPoint for main executable.
|
||||
* Added patch to fix invalid memory access in windowscodecs/PropertyBag.
|
||||
* Added patch to use a linear resampler when there a large number of dsound mixing buffers.
|
||||
* Added patch to fix comparison of punctuation characters in lstrcmp.
|
||||
* Added patch to workaround programs leaking wndproc splots.
|
||||
* Added patch to implement ITextRange, ITextFont and ITextPara.
|
||||
* Removed patch to create Vista directories (accepted upstream).
|
||||
* Removed strmbase/quartz locking fix patches (accepted upstream).
|
||||
* Removed windowscodecs/PropertyBag patch (accepted upstream).
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 08 Aug 2014 22:06:07 -0600
|
||||
|
||||
wine-compholio (1.7.23) unstable; urgency=low
|
||||
* Rewrite of patch system to simplify maintaining large patchsets.
|
||||
* Fix failing Junction Point test.
|
||||
* Fix possible race conditions in strmbase/quartz.
|
||||
* Fix race condition between EndOfStream and Pause.
|
||||
* Fix issues with Israel Standard Time timezone.
|
||||
* Add support for Dynamic DST (daylight saving time) information.
|
||||
* Add some generic hardware in HKEY_DYN_DATA\Config Manager\Enum.
|
||||
* Return correct IMediaSeeking stream positions in quartz.
|
||||
* Make sure LICENSE files are included in the Debian packages.
|
||||
* Downgraded Arial replacement font to Liberation Sans v1.07.3.
|
||||
* Remove relative Junction Point linking for now (breaks tests).
|
||||
* Added WenQuanYi Micro Hei (GPLv3) as a Microsoft Yahei replacement.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 25 Jul 2014 21:12:42 -0600
|
||||
|
||||
wine-compholio (1.7.22) unstable; urgency=low
|
||||
* Implement passing ACLs to CreateProcess.
|
||||
* Removed several patches (accepted upstream).
|
||||
* Added NT4 support to the process ACL tests.
|
||||
* Implement RegSetKeySecurity on top of NtSetSecurityObject.
|
||||
* Updated RegSetKeySecurity patch to work with special root keys.
|
||||
* Add patch for wtsapi32.WTSEnumerateProcessesW function.
|
||||
* Fix incorrect scaling for DECIMAL values in VarDecAdd.
|
||||
* Updated main extended attributes patch to include BSD support.
|
||||
* Return NULL-terminated list of arguments in CommandLineToArgvW.
|
||||
* Updated main extended attributes patch to include additional data checks.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 11 Jul 2014 13:00:03 -0600
|
||||
|
||||
wine-compholio (1.7.21) unstable; urgency=low
|
||||
* Remove several patches (accepted upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Fri, 27 Jun 2014 23:08:48 -0600
|
||||
|
||||
wine-compholio (1.7.20) unstable; urgency=low
|
||||
* Remove several patches (accepted upstream).
|
||||
* Fix recommendation for odbc and add libgsm1.
|
||||
* 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
|
||||
|
||||
wine-compholio (1.7.8) unstable; urgency=low
|
||||
* Added PulseAudio support patches.
|
||||
* Updated SIO_ADDRESS_LIST_CHANGE patches.
|
||||
* Separated out patches into logical subfolders.
|
||||
* Updated XEMBED patch to work with latest upstream Wine.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 06 Dec 2013 13:26:24 -0700
|
||||
|
||||
wine-compholio (1.7.7) unstable; urgency=low
|
||||
* Remove patches included in upstream Wine 1.7.7.
|
||||
* Rebase ACL extended attribute patches against upstream Wine 1.7.7.
|
||||
* Rebase SIO_ADDRESS_LIST_CHANGE patches against upstream Wine 1.7.7.
|
||||
* Added the ability to return the list of patches with "wine --patches".
|
||||
* Added a patch to workaround a Silverlight issue with multiple monitors.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Fri, 22 Nov 2013 14:24:53 -0700
|
||||
|
||||
wine-compholio (1.7.6-1) unstable; urgency=low
|
||||
* Work around a build problem with Wine 1.7.6.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Tue, 12 Nov 2013 14:16:16 -0700
|
||||
|
||||
wine-compholio (1.7.6) unstable; urgency=low
|
||||
* Rebased VMR7 patches against upstream Wine 1.7.6.
|
||||
* Rebased SIO_ADDRESS_LIST_CHANGE patches against upstream Wine 1.7.6.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sun, 10 Nov 2013 17:26:30 -0700
|
||||
|
||||
wine-compholio (1.7.5-1) unstable; urgency=low
|
||||
* Included new patch to fix running TestOut under Silverlight.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Thu, 07 Nov 2013 11:18:23 -0700
|
||||
|
||||
wine-compholio (1.7.5) unstable; urgency=low
|
||||
* Rebased changes against upstream Wine 1.7.5.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Wed, 30 Oct 2013 08:05:51 -0600
|
||||
|
||||
wine-compholio (1.7.4-2) unstable; urgency=low
|
||||
* Updated XEmbed patches from Sebastian Lackner.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Mon, 28 Oct 2013 10:00:43 -0600
|
||||
|
||||
wine-compholio (1.7.4-1) unstable; urgency=low
|
||||
* Fix an issue with Ubuntu 13.10 post-install behavior.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sun, 13 Oct 2013 15:13:48 -0600
|
||||
|
||||
wine-compholio (1.7.4) unstable; urgency=low
|
||||
* Rebased changes against upstream Wine 1.7.4.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sat, 12 Oct 2013 13:30:33 -0600
|
||||
|
||||
wine-compholio (1.7.3) unstable; urgency=low
|
||||
* Removed patches already included in upstream Wine 1.7.3.
|
||||
* Rebased ACL extended attributes patch against upstream Wine 1.7.3.
|
||||
* Update SIO_ADDRESS_LIST_CHANGE patches to new server-based method.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Thu, 03 Oct 2013 15:16:26 -0600
|
||||
|
||||
wine-compholio (1.7.2) unstable; urgency=low
|
||||
* Rebased changes against upstream Wine 1.7.2.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Mon, 30 Sep 2013 12:21:43 -0600
|
||||
|
||||
wine-compholio (1.7.1) unstable; urgency=low
|
||||
* Rebased changes against upstream Wine 1.7.1.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Mon, 30 Sep 2013 11:42:34 -0600
|
||||
|
||||
wine-compholio (1.7.0-7) unstable; urgency=low
|
||||
* Updated all changed patches and backported upstream commits.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Mon, 30 Sep 2013 11:41:43 -0600
|
||||
|
||||
wine-compholio (1.7.0-6) unstable; urgency=low
|
||||
* Included fix for Watchever from Andreas Loibl.
|
||||
-- Erich E. Hoover <ehoover@mines.edu> Fri, 06 Sep 2013 16:33:33 -0600
|
||||
|
||||
wine-compholio (1.7.0-5) unstable; urgency=low
|
||||
* Updated patches for LOVEFiLM from Sebastian Lackner and Michael MĂĽller.
|
||||
-- Erich E. Hoover <ehoover@mines.edu> Fri, 06 Sep 2013 16:33:33 -0600
|
||||
|
||||
wine-compholio (1.7.0-4) unstable; urgency=low
|
||||
* Hopefully fixed build script problem.
|
||||
-- Erich E. Hoover <ehoover@mines.edu> Tue, 27 Aug 2013 09:51:15 -0600
|
||||
|
||||
wine-compholio (1.7.0-3) unstable; urgency=low
|
||||
* Added D3D acceleration fix from Michael MĂĽller.
|
||||
-- Erich E. Hoover <ehoover@mines.edu> Fri, 16 Apr 2010 12:20:00 -0600
|
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
@@ -0,0 +1 @@
|
||||
7
|
269
debian/control
vendored
Normal file
269
debian/control
vendored
Normal file
@@ -0,0 +1,269 @@
|
||||
Source: wine-compholio
|
||||
Section: otherosfs
|
||||
Priority: optional
|
||||
Maintainer: Erich E. Hoover <erich.e.hoover@gmail.com>
|
||||
XSBC-Original-Maintainer: Scott Ritchie <scottritchie@ubuntu.com>
|
||||
Build-Depends: autotools-dev,
|
||||
autoconf,
|
||||
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),
|
||||
gettext,
|
||||
gzip,
|
||||
libacl1-dev,
|
||||
libasound2-dev,
|
||||
libcapi20-dev,
|
||||
libcups2-dev,
|
||||
libdbus-1-dev,
|
||||
libesd0 | libesd-alsa0,
|
||||
libesd0-dev,
|
||||
libfontconfig1-dev | libfontconfig-dev,
|
||||
libfreetype6-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),
|
||||
libgsm1-dev,
|
||||
libice-dev,
|
||||
libjpeg-dev,
|
||||
liblcms2-dev | ubuntu-desktop (<< 1.267),
|
||||
libldap2-dev, libldap-dev,
|
||||
libmpg123-dev,
|
||||
libncurses5-dev | libncurses-dev,
|
||||
libopenal-dev (>= 1:1.12) | ubuntu-desktop (<< 1.207),
|
||||
libpcap-dev,
|
||||
libpng12-dev,
|
||||
libpulse-dev,
|
||||
libsane-dev,
|
||||
libssl-dev,
|
||||
libstdc++6-4.5-dev | libstdc++-dev,
|
||||
libtiff5-dev | libtiff4-dev | libtiff-dev,
|
||||
libv4l-dev,
|
||||
libx11-dev,
|
||||
libxcomposite-dev,
|
||||
libxcursor-dev,
|
||||
libxext-dev,
|
||||
libxi-dev,
|
||||
libxinerama-dev,
|
||||
libxml2-dev,
|
||||
libxrandr-dev,
|
||||
libxrender-dev,
|
||||
libxslt1-dev,
|
||||
libxt-dev,
|
||||
libxxf86vm-dev,
|
||||
linux-kernel-headers,
|
||||
linux-libc-dev,
|
||||
prelink,
|
||||
quilt (>= 0.46-7~),
|
||||
sharutils,
|
||||
unixodbc-dev,
|
||||
x11proto-xinerama-dev
|
||||
Standards-Version: 3.9.2
|
||||
|
||||
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: 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 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
|
||||
with patches representing my current staging tree for Wine.
|
||||
Currently these patches fix:
|
||||
* Netflix on Firefox hangs with loading bar at 100% (Bug 31993).
|
||||
* Netflix on Firefox fails with Internet Connection Problem when loading bar is
|
||||
at 99% (Bug 31858).
|
||||
.
|
||||
Microsoft Windows Compatibility Layer (Binary Emulator and Library)
|
||||
Wine is a compatibility layer for running Windows applications on Linux.
|
||||
Applications are run at full speed without the need of cpu emulation. Wine
|
||||
does not require Microsoft Windows, however it can use native system dll
|
||||
files in place of its own if they are available.
|
||||
.
|
||||
This package includes a program loader for running unmodified Windows executables
|
||||
as well as the Wine project's free version of the Windows API for running programs
|
||||
ported from Windows.
|
||||
.
|
||||
This package is based on a recent Wine beta. While many more applications will
|
||||
work, there may be some loss of functionality compared with the stable release
|
||||
provided by the regular wine package.
|
||||
|
||||
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.
|
23
debian/postinst
vendored
Executable file
23
debian/postinst
vendored
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [ "$1" = "upgrade" ] ; then
|
||||
if ps -C wineserver > /dev/null && test -d /var/lib/update-notifier/user.d/ ; then
|
||||
cp -f /usr/share/wine/wineserver-restart-required.update-notifier /var/lib/update-notifier/user.d/wineserver-restart-required
|
||||
fi
|
||||
fi
|
||||
|
||||
service procps start || /etc/init.d/procps restart
|
||||
|
||||
# Automatically added by dh_installmime
|
||||
if [ "$1" = "configure" ] && [ -x "`which update-mime 2>/dev/null`" ]; then
|
||||
update-mime
|
||||
fi
|
||||
# End automatically added section
|
||||
# Automatically added by dh_makeshlibs
|
||||
if [ "$1" = "configure" ]; then
|
||||
ldconfig
|
||||
fi
|
||||
# End automatically added section
|
||||
|
||||
|
||||
|
10
debian/postrm
vendored
Executable file
10
debian/postrm
vendored
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
# Automatically added by dh_installmime
|
||||
if which update-mime >/dev/null 2>&1; then update-mime; fi
|
||||
# End automatically added section
|
||||
# Automatically added by dh_makeshlibs
|
||||
if [ "$1" = "remove" ]; then
|
||||
ldconfig
|
||||
fi
|
||||
# End automatically added section
|
9
debian/prerm
vendored
Executable file
9
debian/prerm
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
if [ "$1" = "remove" ] ; then
|
||||
if [ -x /usr/sbin/update-binfmts ]; then
|
||||
/usr/sbin/update-binfmts --package wine --remove wine /usr/bin/wine || true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
72
debian/rules
vendored
Executable file
72
debian/rules
vendored
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
# Use gcc-4.5 if it's available
|
||||
ifeq ($(shell which gcc-4.5),)
|
||||
CC = gcc
|
||||
else
|
||||
CC = gcc-4.5
|
||||
endif
|
||||
|
||||
%:
|
||||
dh $@ --parallel
|
||||
|
||||
|
||||
override_dh_auto_configure:
|
||||
|
||||
# Apply our patches, reconfigure, and update the wineserver protocol request data
|
||||
make -C "$(CURDIR)/patches/" DESTDIR="$(CURDIR)" install
|
||||
|
||||
# Run configure
|
||||
ifeq ($(DEB_BUILD_ARCH), amd64)
|
||||
./configure --prefix=/opt/wine-compholio \
|
||||
--libdir=\$${prefix}/lib64 \
|
||||
--mandir=\$${prefix}/share/man \
|
||||
--infodir=\$${prefix}/share/info \
|
||||
--enable-win64 \
|
||||
--without-gstreamer \
|
||||
--with-xattr \
|
||||
$(CONFFLAGS)
|
||||
else
|
||||
./configure --prefix=/opt/wine-compholio \
|
||||
--libdir=\$${prefix}/lib \
|
||||
--mandir=\$${prefix}/share/man \
|
||||
--infodir=\$${prefix}/share/info \
|
||||
--without-gstreamer \
|
||||
--with-xattr \
|
||||
$(CONFFLAGS)
|
||||
endif
|
||||
|
||||
|
||||
override_dh_auto_test:
|
||||
# Wine's test suite does not pass on build daemons, skip it for now
|
||||
|
||||
|
||||
override_dh_installdocs:
|
||||
|
||||
# Create copies of license files
|
||||
cp "$(CURDIR)/LICENSE" "$(CURDIR)/LICENSE.wine"
|
||||
cp "$(CURDIR)/LICENSE.md" "$(CURDIR)/LICENSE.wine-compholio"
|
||||
|
||||
dh_installdocs --link-doc=wine-compholio
|
||||
|
||||
|
||||
override_dh_install:
|
||||
dh_install --fail-missing
|
||||
|
||||
# These files will end up in multiple packages otherwise
|
||||
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine
|
||||
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine-preloader
|
||||
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine64
|
||||
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine64-preloader
|
||||
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip -Xwine-pthread -Xwine-kthread --dbg-package=wine-compholio-dbg
|
||||
|
||||
|
||||
override_dh_shlibdeps:
|
||||
ifeq ($(DEB_HOST_ARCH),amd64)
|
||||
dh_shlibdeps -l $(CURDIR)/debian/tmp/opt/wine-compholio/lib64/
|
||||
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:
|
||||
|
325
debian/tools/README.md.in
vendored
Normal file
325
debian/tools/README.md.in
vendored
Normal file
@@ -0,0 +1,325 @@
|
||||
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
|
||||
----------------------------------
|
||||
|
||||
{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`)
|
35
patches/gitapply.sh → debian/tools/gitapply.sh
vendored
35
patches/gitapply.sh → debian/tools/gitapply.sh
vendored
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Wrapper to apply binary patches without git.
|
||||
#
|
||||
# Copyright (C) 2014-2016 Sebastian Lackner
|
||||
# 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
|
||||
@@ -75,7 +75,7 @@ filesize()
|
||||
|
||||
|
||||
# Parse environment variables
|
||||
while [ "$#" -gt 0 ]; do
|
||||
while [[ $# > 0 ]]; do
|
||||
cmd="$1"; shift
|
||||
case "$cmd" in
|
||||
|
||||
@@ -115,27 +115,14 @@ if [ "$nogit" -eq 0 ] && command -v git >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
# Detect BSD - we check this first to error out as early as possible
|
||||
if gzip -V 2>&1 | grep -q "BSD"; then
|
||||
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 if GNU Awk is available
|
||||
if ! command -v gawk >/dev/null 2>&1; then
|
||||
if ! awk -V 2>/dev/null | grep -q "GNU Awk"; then
|
||||
echo "This script requires GNU Awk (or alternatively git) to work properly." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
gawk()
|
||||
{
|
||||
awk "$@"
|
||||
}
|
||||
fi
|
||||
|
||||
# Check for missing depdencies
|
||||
for dependency in gawk cut dd du grep gzip hexdump patch sha1sum; do
|
||||
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
|
||||
@@ -237,7 +224,7 @@ awk_eof_header='
|
||||
BEGIN{
|
||||
ofs=1;
|
||||
}
|
||||
!/^(--- |\+\+\+ |old |deleted |new |copy |rename |similarity |index |GIT |literal |delta )/{
|
||||
!/^(--- |\+\+\+ |old |new |copy |rename |similarity |index |GIT |literal |delta )/{
|
||||
ofs=0; exit 0;
|
||||
}
|
||||
END{
|
||||
@@ -282,7 +269,7 @@ fi
|
||||
|
||||
# Go through the different patch sections
|
||||
lastoffset=1
|
||||
for offset in $(gawk '/^diff --git /{ print FNR; }' "$tmpfile"); do
|
||||
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
|
||||
@@ -296,7 +283,7 @@ for offset in $(gawk '/^diff --git /{ print FNR; }' "$tmpfile"); do
|
||||
|
||||
# Find out the size of the patch header
|
||||
tmpoffset=$((offset + 1))
|
||||
tmpoffset=$(sed -n "$tmpoffset,\$ p" "$tmpfile" | gawk "$awk_eof_header")
|
||||
tmpoffset=$(sed -n "$tmpoffset,\$ p" "$tmpfile" | awk "$awk_eof_header")
|
||||
hdroffset=$((offset + tmpoffset))
|
||||
|
||||
# Parse all important fields of the header
|
||||
@@ -353,7 +340,7 @@ for offset in $(gawk '/^diff --git /{ print FNR; }' "$tmpfile"); do
|
||||
if [ "$patch_is_binary" -eq 0 ]; then
|
||||
|
||||
# Find end of textual patch
|
||||
tmpoffset=$(sed -n "$hdroffset,\$ p" "$tmpfile" | gawk "$awk_eof_textpatch")
|
||||
tmpoffset=$(sed -n "$hdroffset,\$ p" "$tmpfile" | awk "$awk_eof_textpatch")
|
||||
lastoffset=$((hdroffset + tmpoffset - 1))
|
||||
|
||||
# Apply textual patch
|
||||
@@ -383,7 +370,7 @@ for offset in $(gawk '/^diff --git /{ print FNR; }' "$tmpfile"); do
|
||||
fi
|
||||
|
||||
# Find end of binary patch
|
||||
tmpoffset=$(sed -n "$hdroffset,\$ p" "$tmpfile" | gawk "$awk_eof_binarypatch")
|
||||
tmpoffset=$(sed -n "$hdroffset,\$ p" "$tmpfile" | awk "$awk_eof_binarypatch")
|
||||
lastoffset=$((hdroffset + tmpoffset - 1))
|
||||
|
||||
# Special case - deleting the whole file
|
||||
@@ -406,7 +393,7 @@ for offset in $(gawk '/^diff --git /{ print FNR; }' "$tmpfile"); do
|
||||
|
||||
# Decode base85 and gzip compression
|
||||
tmpoffset=$((lastoffset - 1))
|
||||
sed -n "$hdroffset,$tmpoffset p" "$tmpfile" | gawk "$awk_decode_b85" | gzip -dc > "$literal_tmpfile" 2>/dev/null
|
||||
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."
|
||||
@@ -441,7 +428,7 @@ for offset in $(gawk '/^diff --git /{ print FNR; }' "$tmpfile"); do
|
||||
patch_binary_complete=1
|
||||
|
||||
else break; fi
|
||||
done < <(hexdump -v -e '32/1 "%02X" "\n"' "$delta_tmpfile" | gawk "$awk_decode_binarypatch")
|
||||
done < <(hexdump -v -e '32/1 "%02X" "\n"' "$delta_tmpfile" | awk "$awk_decode_binarypatch")
|
||||
|
||||
rm "$delta_tmpfile"
|
||||
|
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
|
625
debian/tools/patchupdate.py
vendored
Executable file
625
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
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user