mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Automatically generate installation instructions based on template whenever updating patches / version.
This commit is contained in:
parent
a0a5084f55
commit
dc95c57c20
45
README.md
45
README.md
@ -1,7 +1,8 @@
|
||||
wine-compholio
|
||||
==============
|
||||
|
||||
The Wine "Compholio" Edition repository includes a variety of patches for Wine to run common Windows applications under Linux.
|
||||
The Wine "Compholio" Edition repository includes a variety of patches ") for
|
||||
Wine to run common Windows applications under Linux.
|
||||
|
||||
These patches fix the following Wine bugs:
|
||||
|
||||
@ -16,7 +17,6 @@ These patches fix the following Wine bugs:
|
||||
* 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 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"))
|
||||
|
||||
|
||||
Besides that the following additional changes are included:
|
||||
|
||||
* Lockfree algorithm for filedescriptor cache (improves file access speed)
|
||||
@ -27,3 +27,44 @@ Besides that the following additional changes are included:
|
||||
* Workaround for shlwapi URLs with relative paths
|
||||
* XEMBED support for embedding Wine windows inside Linux applications
|
||||
|
||||
# Compiling wine-compholio
|
||||
|
||||
In order to wine-compholio, please use the recommended Makefile based approach which
|
||||
will automatically decide whether to use 'git apply' or 'gitapply.sh'. 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
|
||||
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.22.tar.bz2
|
||||
wget https://github.com/compholio/wine-compholio-daily/archive/v1.7.22.tar.gz
|
||||
```
|
||||
Extract the archives:
|
||||
```bash
|
||||
tar xvjf wine-1*.tar.bz2
|
||||
cd wine-1*
|
||||
tar xvzf ../v1.7.22.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
|
||||
```
|
||||
|
116
debian/tools/patchupdate.py
vendored
116
debian/tools/patchupdate.py
vendored
@ -197,6 +197,12 @@ def read_patchsets(directory):
|
||||
|
||||
return patches
|
||||
|
||||
def read_changelog():
|
||||
with open("debian/changelog") as fp:
|
||||
for line in fp:
|
||||
r = re.match("^([a-zA-Z0-9][^(]*)\((.*)\) ([^;]*)", line)
|
||||
if r: yield (r.group(1).strip(), r.group(2).strip(), r.group(3).strip())
|
||||
|
||||
def generate_makefile(patches, fp):
|
||||
fp.write("#\n")
|
||||
fp.write("# This file is automatically generated, DO NOT EDIT!\n")
|
||||
@ -256,37 +262,95 @@ def generate_makefile(patches, fp):
|
||||
fp.write("\ttouch %s.ok\n" % patch.name)
|
||||
fp.write("\n");
|
||||
|
||||
README_template = """wine-compholio
|
||||
==============
|
||||
|
||||
The Wine \"Compholio\" Edition repository includes a variety of patches ") for
|
||||
Wine to run common Windows applications under Linux.
|
||||
|
||||
These patches fix the following Wine bugs:
|
||||
|
||||
@@bugs@@
|
||||
|
||||
Besides that the following additional changes are included:
|
||||
|
||||
@@fixes@@
|
||||
|
||||
# Compiling wine-compholio
|
||||
|
||||
In order to wine-compholio, please use the recommended Makefile based approach which
|
||||
will automatically decide whether to use 'git apply' or 'gitapply.sh'. 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
|
||||
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
|
||||
```
|
||||
"""
|
||||
|
||||
def generate_readme(patches, fp):
|
||||
fp.write("wine-compholio\n")
|
||||
fp.write("==============\n")
|
||||
fp.write("\n")
|
||||
fp.write("The Wine \"Compholio\" Edition repository includes a variety of patches ")
|
||||
fp.write("for Wine to run common Windows applications under Linux.\n")
|
||||
fp.write("\n")
|
||||
fp.write("These patches fix the following Wine bugs:\n")
|
||||
fp.write("\n")
|
||||
|
||||
all_bugs = []
|
||||
for i, patch in patches.iteritems():
|
||||
for (bugid, bugname, description) in patch.fixes:
|
||||
if bugid is not None: all_bugs.append((bugid, bugname, description))
|
||||
for (bugid, bugname, description) in sorted(all_bugs):
|
||||
if description is None: description = bugname
|
||||
fp.write("* %s ([Wine Bug #%d](http://bugs.winehq.org/show_bug.cgi?id=%d \"%s\"))\n" % (description, bugid, bugid, bugname))
|
||||
def _all_bugs():
|
||||
all_bugs = []
|
||||
for i, patch in patches.iteritems():
|
||||
for (bugid, bugname, description) in patch.fixes:
|
||||
if bugid is not None: all_bugs.append((bugid, bugname, description))
|
||||
for (bugid, bugname, description) in sorted(all_bugs):
|
||||
if description is None: description = bugname
|
||||
yield "%s ([Wine Bug #%d](http://bugs.winehq.org/show_bug.cgi?id=%d \"%s\"))" % (description, bugid, bugid, bugname)
|
||||
|
||||
fp.write("\n")
|
||||
fp.write("\n")
|
||||
fp.write("Besides that the following additional changes are included:\n")
|
||||
fp.write("\n")
|
||||
def _all_fixes():
|
||||
all_fixes = []
|
||||
for i, patch in patches.iteritems():
|
||||
for (bugid, bugname, description) in patch.fixes:
|
||||
if bugid is None: all_fixes.append(description)
|
||||
for description in sorted(all_fixes):
|
||||
yield description
|
||||
|
||||
all_fixes = []
|
||||
for i, patch in patches.iteritems():
|
||||
for (bugid, bugname, description) in patch.fixes:
|
||||
if bugid is None: all_fixes.append(description)
|
||||
for description in sorted(all_fixes):
|
||||
fp.write("* %s\n" % description)
|
||||
def _enum(x):
|
||||
return "* " + "\n* ".join(x)
|
||||
|
||||
fp.write("\n")
|
||||
def _latest_stable_version():
|
||||
for package, version, distro in read_changelog():
|
||||
if distro.lower() == "unreleased": continue
|
||||
return version
|
||||
|
||||
template = README_template
|
||||
template = template.replace("@@bugs@@", _enum(_all_bugs()))
|
||||
template = template.replace("@@fixes@@", _enum(_all_fixes()))
|
||||
template = template.replace("@@version@@", _latest_stable_version())
|
||||
fp.write(template)
|
||||
|
||||
if __name__ == "__main__":
|
||||
patches = read_patchsets("./patches")
|
||||
|
Loading…
Reference in New Issue
Block a user