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
Move debian/ folder to separate repository.
This commit is contained in:
38
patch-tools/README.md.in
Normal file
38
patch-tools/README.md.in
Normal file
@@ -0,0 +1,38 @@
|
||||
What is Wine Staging?
|
||||
---------------------
|
||||
|
||||
**Wine Staging** is the testing area of winehq.org. It contains bug fixes and
|
||||
features, which have not been integrated into the development branch yet. The
|
||||
idea of Wine Staging is to provide experimental features faster to end users and
|
||||
to give developers the possibility to discuss and improve their patches before
|
||||
they are integrated into the main branch. More information about Wine Staging
|
||||
can also be found on our website [wine-staging.com](http://wine-staging.com).
|
||||
|
||||
Although we are reviewing and testing all patches carefully before adding them,
|
||||
you may encounter additional bugs, which are not present in the development
|
||||
branch. Do not hesitate to report such issues at winehq.org, so they can be
|
||||
fixed before the feature gets integrated.
|
||||
|
||||
|
||||
How to install and use Wine Staging
|
||||
-----------------------------------
|
||||
|
||||
Ready-to-use packages for Wine Staging are available for a variety
|
||||
of different Linux distributions directly for download. Just follow the
|
||||
instructions available on the
|
||||
[Wiki](https://github.com/wine-compholio/wine-staging/wiki/Installation).
|
||||
|
||||
When using Wine Staging there are a few differences compared to regular
|
||||
Wine. The main difference is that it is not sufficient to type `wine` to
|
||||
run it, but instead you will have to type `/opt/wine-staging/bin/wine`.
|
||||
Besides that there are also some other differences, for example additional
|
||||
configuration options to tweak performance, which are not available in regular
|
||||
Wine. All those differences are also documented on the
|
||||
[Wiki](https://github.com/wine-compholio/wine-staging/wiki/Usage).
|
||||
|
||||
|
||||
Included bug fixes and improvements
|
||||
-----------------------------------
|
||||
|
||||
{fixes}
|
||||
|
1689
patch-tools/changelog
Normal file
1689
patch-tools/changelog
Normal file
File diff suppressed because it is too large
Load Diff
506
patch-tools/patchinstall.sh.in
Normal file
506
patch-tools/patchinstall.sh.in
Normal file
File diff suppressed because it is too large
Load Diff
951
patch-tools/patchupdate.py
Executable file
951
patch-tools/patchupdate.py
Executable file
File diff suppressed because it is too large
Load Diff
676
patch-tools/patchutils.py
Normal file
676
patch-tools/patchutils.py
Normal file
File diff suppressed because it is too large
Load Diff
111
patch-tools/progressbar.py
Normal file
111
patch-tools/progressbar.py
Normal file
@@ -0,0 +1,111 @@
|
||||
#!/usr/bin/python2
|
||||
#
|
||||
# Python progressbar functions.
|
||||
#
|
||||
# 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 fcntl
|
||||
import os
|
||||
import signal
|
||||
import struct
|
||||
import sys
|
||||
import termios
|
||||
|
||||
def _sig_winch(signum=None, frame=None):
|
||||
"""Signal handler for SIGWINCH."""
|
||||
global _term_width
|
||||
try:
|
||||
h, w, hp, wp = struct.unpack('HHHH', fcntl.ioctl(sys.stdout.fileno(),
|
||||
termios.TIOCGWINSZ, struct.pack('HHHH', 0, 0, 0, 0)))
|
||||
_term_width = w
|
||||
except IOError:
|
||||
# ignore 'IOError: [Errno 25] Inappropriate ioctl for device',
|
||||
# which can occur when resizing the window while the output is redirected
|
||||
pass
|
||||
|
||||
try:
|
||||
_sig_winch()
|
||||
signal.signal(signal.SIGWINCH, _sig_winch)
|
||||
except IOError:
|
||||
_term_width = int(os.environ.get('COLUMNS', 80)) - 1
|
||||
|
||||
class ProgressBar(object):
|
||||
def __init__(self, desc="", msg=None, current=0, total=100):
|
||||
"""Initialize a new progress bar with given properties."""
|
||||
self.desc = desc
|
||||
self.msg = msg
|
||||
self.current = current
|
||||
self.total = total
|
||||
|
||||
def __enter__(self):
|
||||
self.update()
|
||||
return self
|
||||
|
||||
def __exit__(self, type, value, traceback):
|
||||
if type is not None:
|
||||
sys.stdout.write("\r")
|
||||
msg = "<interrupted>"
|
||||
else:
|
||||
msg = None
|
||||
self.finish(msg)
|
||||
if self.msg is not None:
|
||||
sys.stdout.write("\n")
|
||||
|
||||
def update(self, value = None):
|
||||
"""Redraw the progressbar and optionally update the value."""
|
||||
if value is not None:
|
||||
self.current = value
|
||||
|
||||
if self.current == 0 or (self.current >= self.total and self.msg is None):
|
||||
sys.stdout.write("%s\r" % (' ' * _term_width))
|
||||
sys.stdout.flush()
|
||||
return
|
||||
|
||||
width = _term_width / 2
|
||||
s1 = self.desc.ljust(width - 1, ' ')[:width - 1]
|
||||
|
||||
width = _term_width - width
|
||||
if self.current >= self.total:
|
||||
s2 = self.msg.ljust(width, ' ')[:width]
|
||||
elif width > 2:
|
||||
numbars = min(self.current * (width - 2) / self.total, width - 2)
|
||||
s2 = "[%s%s]" % ('#' * numbars, '-' * (width - 2 - numbars))
|
||||
percent = " %d%% " % min(self.current * 100 / self.total, 100)
|
||||
i = (len(s2)-len(percent))/2
|
||||
s2 = "%s%s%s" % (s2[:i], percent, s2[i+len(percent):])
|
||||
|
||||
sys.stdout.write("%s %s\r" % (s1, s2))
|
||||
sys.stdout.flush()
|
||||
|
||||
def finish(self, msg = None):
|
||||
"""Finalize the progressbar."""
|
||||
if msg is not None:
|
||||
self.msg = msg
|
||||
|
||||
self.current = self.total
|
||||
self.update()
|
||||
sys.stdout.flush()
|
||||
|
||||
if __name__ == '__main__':
|
||||
import time
|
||||
|
||||
print ""
|
||||
with ProgressBar(desc="description") as x:
|
||||
for i in xrange(100):
|
||||
x.update(i)
|
||||
time.sleep(1)
|
Reference in New Issue
Block a user