openSUSE Commits
Threads by month
- ----- 2025 -----
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
August 2015
- 1 participants
- 1349 discussions
Hello community,
here is the log from the commit of package fish for openSUSE:Factory checked in at 2015-08-01 11:37:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fish (Old)
and /work/SRC/openSUSE:Factory/.fish.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fish"
Changes:
--------
--- /work/SRC/openSUSE:Factory/fish/fish.changes 2015-03-23 12:18:44.000000000 +0100
+++ /…
[View More]work/SRC/openSUSE:Factory/.fish.new/fish.changes 2015-08-01 11:37:17.000000000 +0200
@@ -1,0 +2,8 @@
+Mon Jul 27 06:53:55 UTC 2015 - develop7(a)develop7.info
+
+- update to v2.2.0
+ See full changelog on
+ https://github.com/fish-shell/fish-shell/releases/tag/2.2.0
+- Drop check_for_command-not-found_command_on_suse.patch
+
+-------------------------------------------------------------------
Old:
----
check_for_command-not-found_command_on_suse.patch
fish-2.1.1.tar.gz
New:
----
fish-2.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fish.spec ++++++
--- /var/tmp/diff_new_pack.RgFVyS/_old 2015-08-01 11:37:18.000000000 +0200
+++ /var/tmp/diff_new_pack.RgFVyS/_new 2015-08-01 11:37:18.000000000 +0200
@@ -17,17 +17,15 @@
Name: fish
-Version: 2.1.1
+Version: 2.2.0
Release: 0
Summary: A user friendly interactive shell
License: GPL-2.0
Group: System/Shells
Url: http://fishshell.com/
Source: http://fishshell.com/files/%{version}/fish-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM check_for_command-not-found_command_on_suse.patch gh#fish-shell/fish-shell#1208
-Patch0: check_for_command-not-found_command_on_suse.patch
# PATCH-FIX-UPSTREAM no-return-in-nonvoid-function.patch Fix no-return-in-nonvoid-function error
-Patch1: no-return-in-nonvoid-function.patch
+Patch0: no-return-in-nonvoid-function.patch
BuildRequires: autoconf
BuildRequires: doxygen
BuildRequires: gcc-c++
@@ -47,7 +45,6 @@
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
%build
autoconf
@@ -78,8 +75,7 @@
%{_bindir}/*
%{_datadir}/doc/%{name}
%{_datadir}/%{name}
-%{_datadir}/%{name}/completions
-%{_datadir}/%{name}/tools
+%{_datadir}/pkgconfig/fish.pc
%{_mandir}/man1/*
%changelog
++++++ fish-2.1.1.tar.gz -> fish-2.2.0.tar.gz ++++++
++++ 202491 lines of diff (skipped)
[View Less]
1
0
Hello community,
here is the log from the commit of package python-moin for openSUSE:Factory checked in at 2015-08-01 11:37:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-moin (Old)
and /work/SRC/openSUSE:Factory/.python-moin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-moin"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-moin/python-moin.changes …
[View More]2014-11-04 17:29:40.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-moin.new/python-moin.changes 2015-08-01 11:37:16.000000000 +0200
@@ -1,0 +2,5 @@
+Sun Jul 19 18:53:18 UTC 2015 - seroton10(a)gmail.com
+
+- anywikidraw-java8.patch: Fix compilation error on Java 8.
+
+-------------------------------------------------------------------
New:
----
anywikidraw-java8.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-moin.spec ++++++
--- /var/tmp/diff_new_pack.vHlhI5/_old 2015-08-01 11:37:17.000000000 +0200
+++ /var/tmp/diff_new_pack.vHlhI5/_new 2015-08-01 11:37:17.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-moin
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -33,6 +33,7 @@
Source92: mkwiki.moin.8
Source99: python-moin.rpmlintrc
Patch0: anywikidraw.patch
+Patch1: anywikidraw-java8.patch
BuildRequires: ant >= 1.5.4
BuildRequires: apache2
BuildRequires: dos2unix
@@ -65,6 +66,7 @@
cd contrib/AnyWikiDraw
tar -xjf src.tar.bz
%patch0
+%patch1
%build
++++++ anywikidraw-java8.patch ++++++
diff -ur AnyWikiDraw.orig/src/jhotdraw7/java/org/jhotdraw/samples/svg/io/SVGInputFormat.java AnyWikiDraw/src/jhotdraw7/java/org/jhotdraw/samples/svg/io/SVGInputFormat.java
--- AnyWikiDraw.orig/src/jhotdraw7/java/org/jhotdraw/samples/svg/io/SVGInputFormat.java 2009-10-18 20:50:49.000000000 +0200
+++ AnyWikiDraw/src/jhotdraw7/java/org/jhotdraw/samples/svg/io/SVGInputFormat.java 2015-07-19 20:29:49.922625424 +0200
@@ -13,6 +13,7 @@
*/
package org.jhotdraw.samples.svg.io;
+import org.jhotdraw.io.Base64;
import java.awt.*;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
Only in AnyWikiDraw/src/jhotdraw7/java/org/jhotdraw/samples/svg/io: SVGInputFormat.java.orig
diff -ur AnyWikiDraw.orig/src/jhotdraw7/java/org/jhotdraw/samples/svg/io/SVGOutputFormat.java AnyWikiDraw/src/jhotdraw7/java/org/jhotdraw/samples/svg/io/SVGOutputFormat.java
--- AnyWikiDraw.orig/src/jhotdraw7/java/org/jhotdraw/samples/svg/io/SVGOutputFormat.java 2009-10-18 20:50:40.000000000 +0200
+++ AnyWikiDraw/src/jhotdraw7/java/org/jhotdraw/samples/svg/io/SVGOutputFormat.java 2015-07-19 20:47:09.596659937 +0200
@@ -13,6 +13,7 @@
*/
package org.jhotdraw.samples.svg.io;
+import org.jhotdraw.io.Base64;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.geom.*;
[View Less]
1
0
Hello community,
here is the log from the commit of package python-requests for openSUSE:Factory checked in at 2015-08-01 11:37:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-requests (Old)
and /work/SRC/openSUSE:Factory/.python-requests.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-requests"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-requests/…
[View More]python-requests.changes 2015-07-14 17:44:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-requests.new/python-requests.changes 2015-08-01 11:37:15.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Jul 24 14:45:44 UTC 2015 - seife+obs(a)b1-systems.com
+
+- fix version condition to allow RHEL/CentOS 7 builds
+
+-------------------------------------------------------------------
+Fri Jul 24 08:52:50 UTC 2015 - hvogel(a)suse.com
+
+- Update to 2.7.0
+ - resolving several bugs involving chunked transfer
+ encoding and response framing.
+ - Remove VendorAlias import
+ - Simplify the PreparedRequest.prepare API
+ - Handle UnicodeDecodeErrors
+ - Copy a PreparedRequest's CookieJar more reliably
+
+-------------------------------------------------------------------
Old:
----
requests-2.6.0.tar.gz
New:
----
requests-2.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-requests.spec ++++++
--- /var/tmp/diff_new_pack.MP7WK7/_old 2015-08-01 11:37:15.000000000 +0200
+++ /var/tmp/diff_new_pack.MP7WK7/_new 2015-08-01 11:37:15.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-requests
-Version: 2.6.0
+Version: 2.7.0
Release: 0
Url: http://python-requests.org
Summary: Awesome Python HTTP Library That's Actually Usable
@@ -70,7 +70,7 @@
%setup -q -n requests-%{version}
# For rpmlint warning: remove shebang from python library:
sed -i '/^#!/d' ./requests/certs.py
-%if %suse_version > 1110
+%if 0%{?suse_version} > 1110 || 0%{?rhel} > 6
%patch0 -p1
%else
%patch1 -p1
++++++ requests-2.6.0.tar.gz -> requests-2.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/HISTORY.rst new/requests-2.7.0/HISTORY.rst
--- old/requests-2.6.0/HISTORY.rst 2015-03-14 17:43:47.000000000 +0100
+++ new/requests-2.7.0/HISTORY.rst 2015-05-03 17:00:37.000000000 +0200
@@ -3,17 +3,58 @@
Release History
---------------
+2.7.0 (2015-05-03)
+++++++++++++++++++
+
+This is the first release that follows our new release process. For more, see
+[our documentation](http://docs.python-requests.org/en/latest/community/release-….
+
+**Bugfixes**
+
+- Updated urllib3 to 1.10.4, resolving several bugs involving chunked transfer
+ encoding and response framing.
+
+2.6.2 (2015-04-23)
+++++++++++++++++++
+
+**Bugfixes**
+
+- Fix regression where compressed data that was sent as chunked data was not
+ properly decompressed. (#2561)
+
+2.6.1 (2015-04-22)
+++++++++++++++++++
+
+**Bugfixes**
+
+- Remove VendorAlias import machinery introduced in v2.5.2.
+
+- Simplify the PreparedRequest.prepare API: We no longer require the user to
+ pass an empty list to the hooks keyword argument. (c.f. #2552)
+
+- Resolve redirects now receives and forwards all of the original arguments to
+ the adapter. (#2503)
+
+- Handle UnicodeDecodeErrors when trying to deal with a unicode URL that
+ cannot be encoded in ASCII. (#2540)
+
+- Populate the parsed path of the URI field when performing Digest
+ Authentication. (#2426)
+
+- Copy a PreparedRequest's CookieJar more reliably when it is not an instance
+ of RequestsCookieJar. (#2527)
+
2.6.0 (2015-03-14)
++++++++++++++++++
**Bugfixes**
-- Fix handling of cookies on redirect. Previously a cookie without a host
- value set would use the hostname for the redirected URL exposing requests
- users to session fixation attacks and potentially cookie stealing. This was
- disclosed privately by Matthew Daley of `BugFuzz <https://bugfuzz.com>`_.
- An CVE identifier has not yet been assigned for this. This affects all
- versions of requests from v2.1.0 to v2.5.3 (inclusive on both ends).
+- CVE-2015-2296: Fix handling of cookies on redirect. Previously a cookie
+ without a host value set would use the hostname for the redirected URL
+ exposing requests users to session fixation attacks and potentially cookie
+ stealing. This was disclosed privately by Matthew Daley of
+ `BugFuzz <https://bugfuzz.com>`_. This affects all versions of requests from
+ v2.1.0 to v2.5.3 (inclusive on both ends).
- Fix error when requests is an ``install_requires`` dependency and ``python
setup.py test`` is run. (#2462)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/PKG-INFO new/requests-2.7.0/PKG-INFO
--- old/requests-2.6.0/PKG-INFO 2015-03-14 17:44:16.000000000 +0100
+++ new/requests-2.7.0/PKG-INFO 2015-05-03 17:01:16.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: requests
-Version: 2.6.0
+Version: 2.7.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
@@ -16,6 +16,8 @@
:target: https://pypi.python.org/pypi/requests
+
+
Requests is an Apache2 Licensed HTTP library, written in Python, for human
beings.
@@ -98,17 +100,58 @@
Release History
---------------
+ 2.7.0 (2015-05-03)
+ ++++++++++++++++++
+
+ This is the first release that follows our new release process. For more, see
+ [our documentation](http://docs.python-requests.org/en/latest/community/release-….
+
+ **Bugfixes**
+
+ - Updated urllib3 to 1.10.4, resolving several bugs involving chunked transfer
+ encoding and response framing.
+
+ 2.6.2 (2015-04-23)
+ ++++++++++++++++++
+
+ **Bugfixes**
+
+ - Fix regression where compressed data that was sent as chunked data was not
+ properly decompressed. (#2561)
+
+ 2.6.1 (2015-04-22)
+ ++++++++++++++++++
+
+ **Bugfixes**
+
+ - Remove VendorAlias import machinery introduced in v2.5.2.
+
+ - Simplify the PreparedRequest.prepare API: We no longer require the user to
+ pass an empty list to the hooks keyword argument. (c.f. #2552)
+
+ - Resolve redirects now receives and forwards all of the original arguments to
+ the adapter. (#2503)
+
+ - Handle UnicodeDecodeErrors when trying to deal with a unicode URL that
+ cannot be encoded in ASCII. (#2540)
+
+ - Populate the parsed path of the URI field when performing Digest
+ Authentication. (#2426)
+
+ - Copy a PreparedRequest's CookieJar more reliably when it is not an instance
+ of RequestsCookieJar. (#2527)
+
2.6.0 (2015-03-14)
++++++++++++++++++
**Bugfixes**
- - Fix handling of cookies on redirect. Previously a cookie without a host
- value set would use the hostname for the redirected URL exposing requests
- users to session fixation attacks and potentially cookie stealing. This was
- disclosed privately by Matthew Daley of `BugFuzz <https://bugfuzz.com>`_.
- An CVE identifier has not yet been assigned for this. This affects all
- versions of requests from v2.1.0 to v2.5.3 (inclusive on both ends).
+ - CVE-2015-2296: Fix handling of cookies on redirect. Previously a cookie
+ without a host value set would use the hostname for the redirected URL
+ exposing requests users to session fixation attacks and potentially cookie
+ stealing. This was disclosed privately by Matthew Daley of
+ `BugFuzz <https://bugfuzz.com>`_. This affects all versions of requests from
+ v2.1.0 to v2.5.3 (inclusive on both ends).
- Fix error when requests is an ``install_requires`` dependency and ``python
setup.py test`` is run. (#2462)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/README.rst new/requests-2.7.0/README.rst
--- old/requests-2.6.0/README.rst 2015-03-11 01:33:32.000000000 +0100
+++ new/requests-2.7.0/README.rst 2015-04-10 20:37:34.000000000 +0200
@@ -8,6 +8,8 @@
:target: https://pypi.python.org/pypi/requests
+
+
Requests is an Apache2 Licensed HTTP library, written in Python, for human
beings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/__init__.py new/requests-2.7.0/requests/__init__.py
--- old/requests-2.6.0/requests/__init__.py 2015-03-14 17:43:47.000000000 +0100
+++ new/requests-2.7.0/requests/__init__.py 2015-05-03 17:00:37.000000000 +0200
@@ -42,8 +42,8 @@
"""
__title__ = 'requests'
-__version__ = '2.6.0'
-__build__ = 0x020503
+__version__ = '2.7.0'
+__build__ = 0x020700
__author__ = 'Kenneth Reitz'
__license__ = 'Apache 2.0'
__copyright__ = 'Copyright 2015 Kenneth Reitz'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/api.py new/requests-2.7.0/requests/api.py
--- old/requests-2.6.0/requests/api.py 2015-03-14 17:30:10.000000000 +0100
+++ new/requests-2.7.0/requests/api.py 2015-05-03 16:01:44.000000000 +0200
@@ -55,17 +55,18 @@
return response
-def get(url, **kwargs):
+def get(url, params=None, **kwargs):
"""Sends a GET request.
:param url: URL for the new :class:`Request` object.
+ :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""
kwargs.setdefault('allow_redirects', True)
- return request('get', url, **kwargs)
+ return request('get', url, params=params, **kwargs)
def options(url, **kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/auth.py new/requests-2.7.0/requests/auth.py
--- old/requests-2.6.0/requests/auth.py 2015-02-23 23:01:24.000000000 +0100
+++ new/requests-2.7.0/requests/auth.py 2015-04-10 20:37:34.000000000 +0200
@@ -103,7 +103,8 @@
# XXX not implemented yet
entdig = None
p_parsed = urlparse(url)
- path = p_parsed.path
+ #: path is request-uri defined in RFC 2616 which should not be empty
+ path = p_parsed.path or "/"
if p_parsed.query:
path += '?' + p_parsed.query
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/cookies.py new/requests-2.7.0/requests/cookies.py
--- old/requests-2.6.0/requests/cookies.py 2015-01-19 04:08:46.000000000 +0100
+++ new/requests-2.7.0/requests/cookies.py 2015-04-10 20:37:34.000000000 +0200
@@ -6,6 +6,7 @@
requests.utils imports from here, so be careful with imports.
"""
+import copy
import time
import collections
from .compat import cookielib, urlparse, urlunparse, Morsel
@@ -302,7 +303,7 @@
"""Updates this jar with cookies from another CookieJar or dict-like"""
if isinstance(other, cookielib.CookieJar):
for cookie in other:
- self.set_cookie(cookie)
+ self.set_cookie(copy.copy(cookie))
else:
super(RequestsCookieJar, self).update(other)
@@ -359,6 +360,21 @@
return new_cj
+def _copy_cookie_jar(jar):
+ if jar is None:
+ return None
+
+ if hasattr(jar, 'copy'):
+ # We're dealing with an instane of RequestsCookieJar
+ return jar.copy()
+ # We're dealing with a generic CookieJar instance
+ new_jar = copy.copy(jar)
+ new_jar.clear()
+ for cookie in jar:
+ new_jar.set_cookie(copy.copy(cookie))
+ return new_jar
+
+
def create_cookie(name, value, **kwargs):
"""Make a cookie from underspecified parameters.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/models.py new/requests-2.7.0/requests/models.py
--- old/requests-2.6.0/requests/models.py 2015-03-14 17:30:10.000000000 +0100
+++ new/requests-2.7.0/requests/models.py 2015-04-23 08:22:47.000000000 +0200
@@ -15,7 +15,7 @@
from .structures import CaseInsensitiveDict
from .auth import HTTPBasicAuth
-from .cookies import cookiejar_from_dict, get_cookie_header
+from .cookies import cookiejar_from_dict, get_cookie_header, _copy_cookie_jar
from .packages.urllib3.fields import RequestField
from .packages.urllib3.filepost import encode_multipart_formdata
from .packages.urllib3.util import parse_url
@@ -320,7 +320,7 @@
p.method = self.method
p.url = self.url
p.headers = self.headers.copy() if self.headers is not None else None
- p._cookies = self._cookies.copy() if self._cookies is not None else None
+ p._cookies = _copy_cookie_jar(self._cookies)
p.body = self.body
p.hooks = self.hooks
return p
@@ -358,7 +358,8 @@
if not scheme:
raise MissingSchema("Invalid URL {0!r}: No schema supplied. "
- "Perhaps you meant http://{0}?".format(url))
+ "Perhaps you meant http://{0}?".format(
+ to_native_string(url, 'utf8')))
if not host:
raise InvalidURL("Invalid URL %r: No host supplied" % url)
@@ -501,7 +502,15 @@
self.prepare_content_length(self.body)
def prepare_cookies(self, cookies):
- """Prepares the given HTTP cookie data."""
+ """Prepares the given HTTP cookie data.
+
+ This function eventually generates a ``Cookie`` header from the
+ given cookies using cookielib. Due to cookielib's design, the header
+ will not be regenerated if it already exists, meaning this function
+ can only be called once for the life of the
+ :class:`PreparedRequest <PreparedRequest>` object. Any subsequent calls
+ to ``prepare_cookies`` will have no actual effect, unless the "Cookie"
+ header is removed beforehand."""
if isinstance(cookies, cookielib.CookieJar):
self._cookies = cookies
@@ -514,6 +523,10 @@
def prepare_hooks(self, hooks):
"""Prepares the given hooks."""
+ # hooks can be passed as None to the prepare method and to this
+ # method. To prevent iterating over None, simply use an empty list
+ # if hooks is False-y
+ hooks = hooks or []
for event in hooks:
self.register_hook(event, hooks[event])
@@ -573,7 +586,11 @@
self.cookies = cookiejar_from_dict({})
#: The amount of time elapsed between sending the request
- #: and the arrival of the response (as a timedelta)
+ #: and the arrival of the response (as a timedelta).
+ #: This property specifically measures the time taken between sending
+ #: the first byte of the request and finishing parsing the headers. It
+ #: is therefore unaffected by consuming the response content or the
+ #: value of the ``stream`` keyword argument.
self.elapsed = datetime.timedelta(0)
#: The :class:`PreparedRequest <PreparedRequest>` object to which this
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/packages/__init__.py new/requests-2.7.0/requests/packages/__init__.py
--- old/requests-2.6.0/requests/packages/__init__.py 2015-03-14 03:47:10.000000000 +0100
+++ new/requests-2.7.0/requests/packages/__init__.py 2015-04-23 08:22:47.000000000 +0200
@@ -1,107 +1,3 @@
-"""
-Copyright (c) Donald Stufft, pip, and individual contributors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-"""
from __future__ import absolute_import
-import sys
-
-
-class VendorAlias(object):
-
- def __init__(self, package_names):
- self._package_names = package_names
- self._vendor_name = __name__
- self._vendor_pkg = self._vendor_name + "."
- self._vendor_pkgs = [
- self._vendor_pkg + name for name in self._package_names
- ]
-
- def find_module(self, fullname, path=None):
- if fullname.startswith(self._vendor_pkg):
- return self
-
- def load_module(self, name):
- # Ensure that this only works for the vendored name
- if not name.startswith(self._vendor_pkg):
- raise ImportError(
- "Cannot import %s, must be a subpackage of '%s'." % (
- name, self._vendor_name,
- )
- )
-
- if not (name == self._vendor_name or
- any(name.startswith(pkg) for pkg in self._vendor_pkgs)):
- raise ImportError(
- "Cannot import %s, must be one of %s." % (
- name, self._vendor_pkgs
- )
- )
-
- # Check to see if we already have this item in sys.modules, if we do
- # then simply return that.
- if name in sys.modules:
- return sys.modules[name]
-
- # Check to see if we can import the vendor name
- try:
- # We do this dance here because we want to try and import this
- # module without hitting a recursion error because of a bunch of
- # VendorAlias instances on sys.meta_path
- real_meta_path = sys.meta_path[:]
- try:
- sys.meta_path = [
- m for m in sys.meta_path
- if not isinstance(m, VendorAlias)
- ]
- __import__(name)
- module = sys.modules[name]
- finally:
- # Re-add any additions to sys.meta_path that were made while
- # during the import we just did, otherwise things like
- # requests.packages.urllib3.poolmanager will fail.
- for m in sys.meta_path:
- if m not in real_meta_path:
- real_meta_path.append(m)
-
- # Restore sys.meta_path with any new items.
- sys.meta_path = real_meta_path
- except ImportError:
- # We can't import the vendor name, so we'll try to import the
- # "real" name.
- real_name = name[len(self._vendor_pkg):]
- try:
- __import__(real_name)
- module = sys.modules[real_name]
- except ImportError:
- raise ImportError("No module named '%s'" % (name,))
-
- # If we've gotten here we've found the module we're looking for, either
- # as part of our vendored package, or as the real name, so we'll add
- # it to sys.modules as the vendored name so that we don't have to do
- # the lookup again.
- sys.modules[name] = module
-
- # Finally, return the loaded module
- return module
-
-
-sys.meta_path.append(VendorAlias(["urllib3", "chardet"]))
+from . import urllib3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/packages/urllib3/__init__.py new/requests-2.7.0/requests/packages/urllib3/__init__.py
--- old/requests-2.6.0/requests/packages/urllib3/__init__.py 2015-03-12 02:52:01.000000000 +0100
+++ new/requests-2.7.0/requests/packages/urllib3/__init__.py 2015-05-03 17:00:37.000000000 +0200
@@ -4,7 +4,7 @@
__author__ = 'Andrey Petrov (andrey.petrov(a)shazow.net)'
__license__ = 'MIT'
-__version__ = '1.10.2'
+__version__ = '1.10.4'
from .connectionpool import (
@@ -55,9 +55,12 @@
del NullHandler
-# Set security warning to always go off by default.
import warnings
-warnings.simplefilter('always', exceptions.SecurityWarning)
+# SecurityWarning's always go off by default.
+warnings.simplefilter('always', exceptions.SecurityWarning, append=True)
+# InsecurePlatformWarning's don't vary between requests, so we keep it default.
+warnings.simplefilter('default', exceptions.InsecurePlatformWarning,
+ append=True)
def disable_warnings(category=exceptions.HTTPWarning):
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/packages/urllib3/_collections.py new/requests-2.7.0/requests/packages/urllib3/_collections.py
--- old/requests-2.6.0/requests/packages/urllib3/_collections.py 2015-03-12 02:52:01.000000000 +0100
+++ new/requests-2.7.0/requests/packages/urllib3/_collections.py 2015-05-03 16:14:54.000000000 +0200
@@ -227,20 +227,20 @@
# Need to convert the tuple to list for further extension
_dict_setitem(self, key_lower, [vals[0], vals[1], val])
- def extend(*args, **kwargs):
+ def extend(self, *args, **kwargs):
"""Generic import function for any type of header-like object.
Adapted version of MutableMapping.update in order to insert items
with self.add instead of self.__setitem__
"""
- if len(args) > 2:
- raise TypeError("update() takes at most 2 positional "
+ if len(args) > 1:
+ raise TypeError("extend() takes at most 1 positional "
"arguments ({} given)".format(len(args)))
- elif not args:
- raise TypeError("update() takes at least 1 argument (0 given)")
- self = args[0]
- other = args[1] if len(args) >= 2 else ()
+ other = args[0] if len(args) >= 1 else ()
- if isinstance(other, Mapping):
+ if isinstance(other, HTTPHeaderDict):
+ for key, val in other.iteritems():
+ self.add(key, val)
+ elif isinstance(other, Mapping):
for key in other:
self.add(key, other[key])
elif hasattr(other, "keys"):
@@ -304,17 +304,20 @@
return list(self.iteritems())
@classmethod
- def from_httplib(cls, message, duplicates=('set-cookie',)): # Python 2
+ def from_httplib(cls, message): # Python 2
"""Read headers from a Python 2 httplib message object."""
- ret = cls(message.items())
- # ret now contains only the last header line for each duplicate.
- # Importing with all duplicates would be nice, but this would
- # mean to repeat most of the raw parsing already done, when the
- # message object was created. Extracting only the headers of interest
- # separately, the cookies, should be faster and requires less
- # extra code.
- for key in duplicates:
- ret.discard(key)
- for val in message.getheaders(key):
- ret.add(key, val)
- return ret
+ # python2.7 does not expose a proper API for exporting multiheaders
+ # efficiently. This function re-reads raw lines from the message
+ # object and extracts the multiheaders properly.
+ headers = []
+
+ for line in message.headers:
+ if line.startswith((' ', '\t')):
+ key, value = headers[-1]
+ headers[-1] = (key, value + '\r\n' + line.rstrip())
+ continue
+
+ key, value = line.split(':', 1)
+ headers.append((key, value.strip()))
+
+ return cls(headers)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/packages/urllib3/connection.py new/requests-2.7.0/requests/packages/urllib3/connection.py
--- old/requests-2.6.0/requests/packages/urllib3/connection.py 2015-03-12 02:52:01.000000000 +0100
+++ new/requests-2.7.0/requests/packages/urllib3/connection.py 2015-05-03 16:14:54.000000000 +0200
@@ -260,3 +260,5 @@
# Make a copy for testing.
UnverifiedHTTPSConnection = HTTPSConnection
HTTPSConnection = VerifiedHTTPSConnection
+else:
+ HTTPSConnection = DummyConnection
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/packages/urllib3/connectionpool.py new/requests-2.7.0/requests/packages/urllib3/connectionpool.py
--- old/requests-2.6.0/requests/packages/urllib3/connectionpool.py 2015-03-12 02:52:01.000000000 +0100
+++ new/requests-2.7.0/requests/packages/urllib3/connectionpool.py 2015-05-03 16:14:54.000000000 +0200
@@ -735,7 +735,6 @@
% (self.num_connections, self.host))
if not self.ConnectionCls or self.ConnectionCls is DummyConnection:
- # Platform-specific: Python without ssl
raise SSLError("Can't connect to HTTPS URL because the SSL "
"module is not available.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/packages/urllib3/contrib/pyopenssl.py new/requests-2.7.0/requests/packages/urllib3/contrib/pyopenssl.py
--- old/requests-2.6.0/requests/packages/urllib3/contrib/pyopenssl.py 2015-03-12 02:52:01.000000000 +0100
+++ new/requests-2.7.0/requests/packages/urllib3/contrib/pyopenssl.py 2015-05-03 16:14:54.000000000 +0200
@@ -38,8 +38,6 @@
----------------
:var DEFAULT_SSL_CIPHER_LIST: The list of supported SSL/TLS cipher suites.
- Default: ``ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:
- ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS``
.. _sni: https://en.wikipedia.org/wiki/Server_Name_Indication
.. _crime attack: https://en.wikipedia.org/wiki/CRIME_(security_exploit)
@@ -85,22 +83,7 @@
+ OpenSSL.SSL.VERIFY_FAIL_IF_NO_PEER_CERT,
}
-# A secure default.
-# Sources for more information on TLS ciphers:
-#
-# - https://wiki.mozilla.org/Security/Server_Side_TLS
-# - https://www.ssllabs.com/projects/best-practices/index.html
-# - https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
-#
-# The general intent is:
-# - Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE),
-# - prefer ECDHE over DHE for better performance,
-# - prefer any AES-GCM over any AES-CBC for better performance and security,
-# - use 3DES as fallback which is secure but slow,
-# - disable NULL authentication, MD5 MACs and DSS for security reasons.
-DEFAULT_SSL_CIPHER_LIST = "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:" + \
- "ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:" + \
- "!aNULL:!MD5:!DSS"
+DEFAULT_SSL_CIPHER_LIST = util.ssl_.DEFAULT_CIPHERS
orig_util_HAS_SNI = util.HAS_SNI
@@ -299,7 +282,9 @@
try:
cnx.do_handshake()
except OpenSSL.SSL.WantReadError:
- select.select([sock], [], [])
+ rd, _, _ = select.select([sock], [], [], sock.gettimeout())
+ if not rd:
+ raise timeout('select timed out')
continue
except OpenSSL.SSL.Error as e:
raise ssl.SSLError('bad handshake', e)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/packages/urllib3/exceptions.py new/requests-2.7.0/requests/packages/urllib3/exceptions.py
--- old/requests-2.6.0/requests/packages/urllib3/exceptions.py 2015-03-12 02:52:01.000000000 +0100
+++ new/requests-2.7.0/requests/packages/urllib3/exceptions.py 2015-05-03 16:14:54.000000000 +0200
@@ -162,3 +162,8 @@
class InsecurePlatformWarning(SecurityWarning):
"Warned when certain SSL configuration is not available on a platform."
pass
+
+
+class ResponseNotChunked(ProtocolError, ValueError):
+ "Response needs to be chunked in order to read it as chunks."
+ pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/packages/urllib3/response.py new/requests-2.7.0/requests/packages/urllib3/response.py
--- old/requests-2.6.0/requests/packages/urllib3/response.py 2015-03-12 02:52:01.000000000 +0100
+++ new/requests-2.7.0/requests/packages/urllib3/response.py 2015-05-03 17:00:37.000000000 +0200
@@ -1,9 +1,15 @@
+try:
+ import http.client as httplib
+except ImportError:
+ import httplib
import zlib
import io
from socket import timeout as SocketTimeout
from ._collections import HTTPHeaderDict
-from .exceptions import ProtocolError, DecodeError, ReadTimeoutError
+from .exceptions import (
+ ProtocolError, DecodeError, ReadTimeoutError, ResponseNotChunked
+)
from .packages.six import string_types as basestring, binary_type, PY3
from .connection import HTTPException, BaseSSLError
from .util.response import is_fp_closed
@@ -117,7 +123,17 @@
if hasattr(body, 'read'):
self._fp = body
- if preload_content and not self._body:
+ # Are we using the chunked-style of transfer encoding?
+ self.chunked = False
+ self.chunk_left = None
+ tr_enc = self.headers.get('transfer-encoding', '').lower()
+ # Don't incur the penalty of creating a list and then discarding it
+ encodings = (enc.strip() for enc in tr_enc.split(","))
+ if "chunked" in encodings:
+ self.chunked = True
+
+ # We certainly don't want to preload content when the response is chunked.
+ if not self.chunked and preload_content and not self._body:
self._body = self.read(decode_content=decode_content)
def get_redirect_location(self):
@@ -157,6 +173,35 @@
"""
return self._fp_bytes_read
+ def _init_decoder(self):
+ """
+ Set-up the _decoder attribute if necessar.
+ """
+ # Note: content-encoding value should be case-insensitive, per RFC 7230
+ # Section 3.2
+ content_encoding = self.headers.get('content-encoding', '').lower()
+ if self._decoder is None and content_encoding in self.CONTENT_DECODERS:
+ self._decoder = _get_decoder(content_encoding)
+
+ def _decode(self, data, decode_content, flush_decoder):
+ """
+ Decode the data passed in and potentially flush the decoder.
+ """
+ try:
+ if decode_content and self._decoder:
+ data = self._decoder.decompress(data)
+ except (IOError, zlib.error) as e:
+ content_encoding = self.headers.get('content-encoding', '').lower()
+ raise DecodeError(
+ "Received response with content-encoding: %s, but "
+ "failed to decode it." % content_encoding, e)
+
+ if flush_decoder and decode_content and self._decoder:
+ buf = self._decoder.decompress(binary_type())
+ data += buf + self._decoder.flush()
+
+ return data
+
def read(self, amt=None, decode_content=None, cache_content=False):
"""
Similar to :meth:`httplib.HTTPResponse.read`, but with two additional
@@ -178,12 +223,7 @@
after having ``.read()`` the file object. (Overridden if ``amt`` is
set.)
"""
- # Note: content-encoding value should be case-insensitive, per RFC 7230
- # Section 3.2
- content_encoding = self.headers.get('content-encoding', '').lower()
- if self._decoder is None:
- if content_encoding in self.CONTENT_DECODERS:
- self._decoder = _get_decoder(content_encoding)
+ self._init_decoder()
if decode_content is None:
decode_content = self.decode_content
@@ -232,17 +272,7 @@
self._fp_bytes_read += len(data)
- try:
- if decode_content and self._decoder:
- data = self._decoder.decompress(data)
- except (IOError, zlib.error) as e:
- raise DecodeError(
- "Received response with content-encoding: %s, but "
- "failed to decode it." % content_encoding, e)
-
- if flush_decoder and decode_content and self._decoder:
- buf = self._decoder.decompress(binary_type())
- data += buf + self._decoder.flush()
+ data = self._decode(data, decode_content, flush_decoder)
if cache_content:
self._body = data
@@ -269,11 +299,15 @@
If True, will attempt to decode the body based on the
'content-encoding' header.
"""
- while not is_fp_closed(self._fp):
- data = self.read(amt=amt, decode_content=decode_content)
+ if self.chunked:
+ for line in self.read_chunked(amt, decode_content=decode_content):
+ yield line
+ else:
+ while not is_fp_closed(self._fp):
+ data = self.read(amt=amt, decode_content=decode_content)
- if data:
- yield data
+ if data:
+ yield data
@classmethod
def from_httplib(ResponseCls, r, **response_kw):
@@ -351,3 +385,82 @@
else:
b[:len(temp)] = temp
return len(temp)
+
+ def _update_chunk_length(self):
+ # First, we'll figure out length of a chunk and then
+ # we'll try to read it from socket.
+ if self.chunk_left is not None:
+ return
+ line = self._fp.fp.readline()
+ line = line.split(b';', 1)[0]
+ try:
+ self.chunk_left = int(line, 16)
+ except ValueError:
+ # Invalid chunked protocol response, abort.
+ self.close()
+ raise httplib.IncompleteRead(line)
+
+ def _handle_chunk(self, amt):
+ returned_chunk = None
+ if amt is None:
+ chunk = self._fp._safe_read(self.chunk_left)
+ returned_chunk = chunk
+ self._fp._safe_read(2) # Toss the CRLF at the end of the chunk.
+ self.chunk_left = None
+ elif amt < self.chunk_left:
+ value = self._fp._safe_read(amt)
+ self.chunk_left = self.chunk_left - amt
+ returned_chunk = value
+ elif amt == self.chunk_left:
+ value = self._fp._safe_read(amt)
+ self._fp._safe_read(2) # Toss the CRLF at the end of the chunk.
+ self.chunk_left = None
+ returned_chunk = value
+ else: # amt > self.chunk_left
+ returned_chunk = self._fp._safe_read(self.chunk_left)
+ self._fp._safe_read(2) # Toss the CRLF at the end of the chunk.
+ self.chunk_left = None
+ return returned_chunk
+
+ def read_chunked(self, amt=None, decode_content=None):
+ """
+ Similar to :meth:`HTTPResponse.read`, but with an additional
+ parameter: ``decode_content``.
+
+ :param decode_content:
+ If True, will attempt to decode the body based on the
+ 'content-encoding' header.
+ """
+ self._init_decoder()
+ # FIXME: Rewrite this method and make it a class with a better structured logic.
+ if not self.chunked:
+ raise ResponseNotChunked("Response is not chunked. "
+ "Header 'transfer-encoding: chunked' is missing.")
+
+ if self._original_response and self._original_response._method.upper() == 'HEAD':
+ # Don't bother reading the body of a HEAD request.
+ # FIXME: Can we do this somehow without accessing private httplib _method?
+ self._original_response.close()
+ return
+
+ while True:
+ self._update_chunk_length()
+ if self.chunk_left == 0:
+ break
+ chunk = self._handle_chunk(amt)
+ yield self._decode(chunk, decode_content=decode_content,
+ flush_decoder=True)
+
+ # Chunk content ends with \r\n: discard it.
+ while True:
+ line = self._fp.fp.readline()
+ if not line:
+ # Some sites may not end with '\r\n'.
+ break
+ if line == b'\r\n':
+ break
+
+ # We read everything; close the "file".
+ if self._original_response:
+ self._original_response.close()
+ self.release_conn()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/packages/urllib3/util/ssl_.py new/requests-2.7.0/requests/packages/urllib3/util/ssl_.py
--- old/requests-2.6.0/requests/packages/urllib3/util/ssl_.py 2015-03-12 02:52:01.000000000 +0100
+++ new/requests-2.7.0/requests/packages/urllib3/util/ssl_.py 2015-05-03 16:14:54.000000000 +0200
@@ -9,10 +9,10 @@
create_default_context = None
import errno
-import ssl
import warnings
try: # Test for SSL features
+ import ssl
from ssl import wrap_socket, CERT_NONE, PROTOCOL_SSLv23
from ssl import HAS_SNI # Has SNI?
except ImportError:
@@ -25,14 +25,24 @@
OP_NO_SSLv2, OP_NO_SSLv3 = 0x1000000, 0x2000000
OP_NO_COMPRESSION = 0x20000
-try:
- from ssl import _DEFAULT_CIPHERS
-except ImportError:
- _DEFAULT_CIPHERS = (
- 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
- 'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:'
- '!eNULL:!MD5'
- )
+# A secure default.
+# Sources for more information on TLS ciphers:
+#
+# - https://wiki.mozilla.org/Security/Server_Side_TLS
+# - https://www.ssllabs.com/projects/best-practices/index.html
+# - https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
+#
+# The general intent is:
+# - Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE),
+# - prefer ECDHE over DHE for better performance,
+# - prefer any AES-GCM over any AES-CBC for better performance and security,
+# - use 3DES as fallback which is secure but slow,
+# - disable NULL authentication, MD5 MACs and DSS for security reasons.
+DEFAULT_CIPHERS = (
+ 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
+ 'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:'
+ '!eNULL:!MD5'
+)
try:
from ssl import SSLContext # Modern SSL?
@@ -40,7 +50,8 @@
import sys
class SSLContext(object): # Platform-specific: Python 2 & 3.1
- supports_set_ciphers = sys.version_info >= (2, 7)
+ supports_set_ciphers = ((2, 7) <= sys.version_info < (3,) or
+ (3, 2) <= sys.version_info)
def __init__(self, protocol_version):
self.protocol = protocol_version
@@ -167,7 +178,7 @@
return candidate
-def create_urllib3_context(ssl_version=None, cert_reqs=ssl.CERT_REQUIRED,
+def create_urllib3_context(ssl_version=None, cert_reqs=None,
options=None, ciphers=None):
"""All arguments have the same meaning as ``ssl_wrap_socket``.
@@ -204,6 +215,9 @@
"""
context = SSLContext(ssl_version or ssl.PROTOCOL_SSLv23)
+ # Setting the default here, as we may have no ssl module on import
+ cert_reqs = ssl.CERT_REQUIRED if cert_reqs is None else cert_reqs
+
if options is None:
options = 0
# SSLv2 is easily broken and is considered harmful and dangerous
@@ -217,7 +231,7 @@
context.options |= options
if getattr(context, 'supports_set_ciphers', True): # Platform-specific: Python 2.6
- context.set_ciphers(ciphers or _DEFAULT_CIPHERS)
+ context.set_ciphers(ciphers or DEFAULT_CIPHERS)
context.verify_mode = cert_reqs
if getattr(context, 'check_hostname', None) is not None: # Platform-specific: Python 3.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/packages/urllib3/util/url.py new/requests-2.7.0/requests/packages/urllib3/util/url.py
--- old/requests-2.6.0/requests/packages/urllib3/util/url.py 2015-03-12 02:52:01.000000000 +0100
+++ new/requests-2.7.0/requests/packages/urllib3/util/url.py 2015-05-03 17:00:37.000000000 +0200
@@ -15,6 +15,8 @@
def __new__(cls, scheme=None, auth=None, host=None, port=None, path=None,
query=None, fragment=None):
+ if path and not path.startswith('/'):
+ path = '/' + path
return super(Url, cls).__new__(cls, scheme, auth, host, port, path,
query, fragment)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests/sessions.py new/requests-2.7.0/requests/sessions.py
--- old/requests-2.6.0/requests/sessions.py 2015-03-14 17:30:10.000000000 +0100
+++ new/requests-2.7.0/requests/sessions.py 2015-04-23 08:22:47.000000000 +0200
@@ -90,7 +90,7 @@
class SessionRedirectMixin(object):
def resolve_redirects(self, resp, req, stream=False, timeout=None,
- verify=True, cert=None, proxies=None):
+ verify=True, cert=None, proxies=None, **adapter_kwargs):
"""Receives a Response. Returns a generator of Responses."""
i = 0
@@ -193,6 +193,7 @@
cert=cert,
proxies=proxies,
allow_redirects=False,
+ **adapter_kwargs
)
extract_cookies_to_jar(self.cookies, prepared_request, resp.raw)
@@ -560,10 +561,6 @@
# Set up variables needed for resolve_redirects and dispatching of hooks
allow_redirects = kwargs.pop('allow_redirects', True)
stream = kwargs.get('stream')
- timeout = kwargs.get('timeout')
- verify = kwargs.get('verify')
- cert = kwargs.get('cert')
- proxies = kwargs.get('proxies')
hooks = request.hooks
# Get the appropriate adapter to use
@@ -591,12 +588,7 @@
extract_cookies_to_jar(self.cookies, request, r.raw)
# Redirect resolving generator.
- gen = self.resolve_redirects(r, request,
- stream=stream,
- timeout=timeout,
- verify=verify,
- cert=cert,
- proxies=proxies)
+ gen = self.resolve_redirects(r, request, **kwargs)
# Resolve redirects if allowed.
history = [resp for resp in gen] if allow_redirects else []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/requests.egg-info/PKG-INFO new/requests-2.7.0/requests.egg-info/PKG-INFO
--- old/requests-2.6.0/requests.egg-info/PKG-INFO 2015-03-14 17:44:16.000000000 +0100
+++ new/requests-2.7.0/requests.egg-info/PKG-INFO 2015-05-03 17:01:16.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: requests
-Version: 2.6.0
+Version: 2.7.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
@@ -16,6 +16,8 @@
:target: https://pypi.python.org/pypi/requests
+
+
Requests is an Apache2 Licensed HTTP library, written in Python, for human
beings.
@@ -98,17 +100,58 @@
Release History
---------------
+ 2.7.0 (2015-05-03)
+ ++++++++++++++++++
+
+ This is the first release that follows our new release process. For more, see
+ [our documentation](http://docs.python-requests.org/en/latest/community/release-….
+
+ **Bugfixes**
+
+ - Updated urllib3 to 1.10.4, resolving several bugs involving chunked transfer
+ encoding and response framing.
+
+ 2.6.2 (2015-04-23)
+ ++++++++++++++++++
+
+ **Bugfixes**
+
+ - Fix regression where compressed data that was sent as chunked data was not
+ properly decompressed. (#2561)
+
+ 2.6.1 (2015-04-22)
+ ++++++++++++++++++
+
+ **Bugfixes**
+
+ - Remove VendorAlias import machinery introduced in v2.5.2.
+
+ - Simplify the PreparedRequest.prepare API: We no longer require the user to
+ pass an empty list to the hooks keyword argument. (c.f. #2552)
+
+ - Resolve redirects now receives and forwards all of the original arguments to
+ the adapter. (#2503)
+
+ - Handle UnicodeDecodeErrors when trying to deal with a unicode URL that
+ cannot be encoded in ASCII. (#2540)
+
+ - Populate the parsed path of the URI field when performing Digest
+ Authentication. (#2426)
+
+ - Copy a PreparedRequest's CookieJar more reliably when it is not an instance
+ of RequestsCookieJar. (#2527)
+
2.6.0 (2015-03-14)
++++++++++++++++++
**Bugfixes**
- - Fix handling of cookies on redirect. Previously a cookie without a host
- value set would use the hostname for the redirected URL exposing requests
- users to session fixation attacks and potentially cookie stealing. This was
- disclosed privately by Matthew Daley of `BugFuzz <https://bugfuzz.com>`_.
- An CVE identifier has not yet been assigned for this. This affects all
- versions of requests from v2.1.0 to v2.5.3 (inclusive on both ends).
+ - CVE-2015-2296: Fix handling of cookies on redirect. Previously a cookie
+ without a host value set would use the hostname for the redirected URL
+ exposing requests users to session fixation attacks and potentially cookie
+ stealing. This was disclosed privately by Matthew Daley of
+ `BugFuzz <https://bugfuzz.com>`_. This affects all versions of requests from
+ v2.1.0 to v2.5.3 (inclusive on both ends).
- Fix error when requests is an ``install_requires`` dependency and ``python
setup.py test`` is run. (#2462)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/setup.py new/requests-2.7.0/setup.py
--- old/requests-2.6.0/setup.py 2015-03-14 17:30:10.000000000 +0100
+++ new/requests-2.7.0/setup.py 2015-04-10 20:37:34.000000000 +0200
@@ -30,12 +30,8 @@
version = ''
with open('requests/__init__.py', 'r') as fd:
- reg = re.compile(r'__version__\s*=\s*[\'"]([^\'"]*)[\'"]')
- for line in fd:
- m = reg.match(line)
- if m:
- version = m.group(1)
- break
+ version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]',
+ fd.read(), re.MULTILINE).group(1)
if not version:
raise RuntimeError('Cannot find version information')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/requests-2.6.0/test_requests.py new/requests-2.7.0/test_requests.py
--- old/requests-2.6.0/test_requests.py 2015-03-11 16:02:15.000000000 +0100
+++ new/requests-2.7.0/test_requests.py 2015-04-23 08:22:47.000000000 +0200
@@ -1613,7 +1613,6 @@
p.prepare(
method='GET',
url=u('http://www.example.com/üniçø∂é'),
- hooks=[]
)
assert_copy(p, p.copy())
[View Less]
1
0
Hello community,
here is the log from the commit of package xf86-input-libinput for openSUSE:Factory checked in at 2015-08-01 11:37:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-input-libinput (Old)
and /work/SRC/openSUSE:Factory/.xf86-input-libinput.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-input-libinput"
Changes:
--------
--- /work/SRC/openSUSE:Factory/…
[View More]xf86-input-libinput/xf86-input-libinput.changes 2015-06-09 08:50:23.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xf86-input-libinput.new/xf86-input-libinput.changes 2015-08-01 11:37:12.000000000 +0200
@@ -1,0 +2,11 @@
+Sat Jul 25 08:05:49 UTC 2015 - zaitor(a)opensuse.org
+
+- Update to version 0.12.0:
+ + Support buttons > BTN_BACK on mice.
+ + Add a property for tap drag lock.
+- Drop autoconf, automake and libtool BuildRequires, also stop
+ running autoreconf before configure. They were needed in the past
+ but we do not carry any patches anymore.
+- Remove emtpy post/postun sections.
+
+-------------------------------------------------------------------
Old:
----
xf86-input-libinput-0.11.0.tar.bz2
New:
----
xf86-input-libinput-0.12.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-input-libinput.spec ++++++
--- /var/tmp/diff_new_pack.KNsPYL/_old 2015-08-01 11:37:13.000000000 +0200
+++ /var/tmp/diff_new_pack.KNsPYL/_new 2015-08-01 11:37:13.000000000 +0200
@@ -17,7 +17,7 @@
Name: xf86-input-libinput
-Version: 0.11.0
+Version: 0.12.0
Release: 0
Summary: Libinput driver for the Xorg X server
License: MIT
@@ -25,12 +25,9 @@
Url: http://xorg.freedesktop.org/
Source0: http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.t…
Source1: 90-libinput.conf
-BuildRequires: autoconf >= 2.60
-BuildRequires: automake
-BuildRequires: libtool
BuildRequires: pkg-config
BuildRequires: pkgconfig(inputproto)
-BuildRequires: pkgconfig(libinput) >= 0.14.0
+BuildRequires: pkgconfig(libinput) >= 0.19.0
BuildRequires: pkgconfig(xorg-macros) >= 1.13
BuildRequires: pkgconfig(xorg-server) >= 1.7
BuildRequires: pkgconfig(xproto)
@@ -60,7 +57,6 @@
%setup -q
%build
-autoreconf -fi
%configure
make %{?_smp_mflags}
@@ -71,10 +67,6 @@
install -d %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
install -p -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/90-libinput.conf
-%post
-
-%postun
-
%files
%defattr(-,root,root)
%doc COPYING*
++++++ xf86-input-libinput-0.11.0.tar.bz2 -> xf86-input-libinput-0.12.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-input-libinput-0.11.0/ChangeLog new/xf86-input-libinput-0.12.0/ChangeLog
--- old/xf86-input-libinput-0.11.0/ChangeLog 2015-06-05 05:41:08.000000000 +0200
+++ new/xf86-input-libinput-0.12.0/ChangeLog 2015-07-14 08:20:59.000000000 +0200
@@ -1,3 +1,30 @@
+commit 254b1f27a07f2372aa0c70674e8be5a02d068feb
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Tue Jul 14 16:18:38 2015 +1000
+
+ xf86-input-libinput 0.12.0
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+
+commit bfedf7dbac7e92479629713c3f5622e4f19de1f4
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Wed Jul 8 10:31:30 2015 +1000
+
+ Add a property for tap drag lock
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+ Reviewed-by: Hans de Goede <hdegoede(a)redhat.com>
+
+commit 9c5cf971439292661e1f3055ef882526baae6310
+Author: Peter Hutterer <peter.hutterer(a)who-t.net>
+Date: Mon Jun 15 10:17:20 2015 +1000
+
+ Support buttons > BTN_BACK on mice
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1230945
+
+ Signed-off-by: Peter Hutterer <peter.hutterer(a)who-t.net>
+
commit 449b496a3abd2860ada3a27a4d23efc28b87448d
Author: Peter Hutterer <peter.hutterer(a)who-t.net>
Date: Fri Jun 5 13:40:31 2015 +1000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-input-libinput-0.11.0/configure new/xf86-input-libinput-0.12.0/configure
--- old/xf86-input-libinput-0.11.0/configure 2015-06-05 05:40:02.000000000 +0200
+++ new/xf86-input-libinput-0.12.0/configure 2015-07-14 08:18:52.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xf86-input-libinput 0.11.0.
+# Generated by GNU Autoconf 2.69 for xf86-input-libinput 0.12.0.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@@ -591,8 +591,8 @@
# Identity of this package.
PACKAGE_NAME='xf86-input-libinput'
PACKAGE_TARNAME='xf86-input-libinput'
-PACKAGE_VERSION='0.11.0'
-PACKAGE_STRING='xf86-input-libinput 0.11.0'
+PACKAGE_VERSION='0.12.0'
+PACKAGE_STRING='xf86-input-libinput 0.12.0'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
PACKAGE_URL=''
@@ -1351,7 +1351,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xf86-input-libinput 0.11.0 to adapt to many kinds of systems.
+\`configure' configures xf86-input-libinput 0.12.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1422,7 +1422,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xf86-input-libinput 0.11.0:";;
+ short | recursive ) echo "Configuration of xf86-input-libinput 0.12.0:";;
esac
cat <<\_ACEOF
@@ -1548,7 +1548,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xf86-input-libinput configure 0.11.0
+xf86-input-libinput configure 0.12.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1872,7 +1872,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xf86-input-libinput $as_me 0.11.0, which was
+It was created by xf86-input-libinput $as_me 0.12.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2740,7 +2740,7 @@
# Define the identity of the package.
PACKAGE='xf86-input-libinput'
- VERSION='0.11.0'
+ VERSION='0.12.0'
cat >>confdefs.h <<_ACEOF
@@ -17884,12 +17884,12 @@
pkg_cv_LIBINPUT_CFLAGS="$LIBINPUT_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libinput >= 0.14.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libinput >= 0.14.0") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libinput >= 0.19.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libinput >= 0.19.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_LIBINPUT_CFLAGS=`$PKG_CONFIG --cflags "libinput >= 0.14.0" 2>/dev/null`
+ pkg_cv_LIBINPUT_CFLAGS=`$PKG_CONFIG --cflags "libinput >= 0.19.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -17901,12 +17901,12 @@
pkg_cv_LIBINPUT_LIBS="$LIBINPUT_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libinput >= 0.14.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libinput >= 0.14.0") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libinput >= 0.19.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libinput >= 0.19.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_LIBINPUT_LIBS=`$PKG_CONFIG --libs "libinput >= 0.14.0" 2>/dev/null`
+ pkg_cv_LIBINPUT_LIBS=`$PKG_CONFIG --libs "libinput >= 0.19.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -17927,14 +17927,14 @@
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBINPUT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libinput >= 0.14.0" 2>&1`
+ LIBINPUT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libinput >= 0.19.0" 2>&1`
else
- LIBINPUT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libinput >= 0.14.0" 2>&1`
+ LIBINPUT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libinput >= 0.19.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBINPUT_PKG_ERRORS" >&5
- as_fn_error $? "Package requirements (libinput >= 0.14.0) were not met:
+ as_fn_error $? "Package requirements (libinput >= 0.19.0) were not met:
$LIBINPUT_PKG_ERRORS
@@ -18527,7 +18527,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xf86-input-libinput $as_me 0.11.0, which was
+This file was extended by xf86-input-libinput $as_me 0.12.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18593,7 +18593,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-xf86-input-libinput config.status 0.11.0
+xf86-input-libinput config.status 0.12.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-input-libinput-0.11.0/configure.ac new/xf86-input-libinput-0.12.0/configure.ac
--- old/xf86-input-libinput-0.11.0/configure.ac 2015-06-05 05:39:42.000000000 +0200
+++ new/xf86-input-libinput-0.12.0/configure.ac 2015-07-14 08:18:35.000000000 +0200
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-input-libinput],
- [0.11.0],
+ [0.12.0],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]
[xf86-input-libinput])
AC_CONFIG_SRCDIR([Makefile.am])
@@ -45,7 +45,7 @@
# Obtain compiler/linker options from server and required extensions
PKG_CHECK_MODULES(XORG, [xorg-server >= 1.10] xproto [inputproto >= 2.2])
-PKG_CHECK_MODULES(LIBINPUT, [libinput >= 0.14.0])
+PKG_CHECK_MODULES(LIBINPUT, [libinput >= 0.19.0])
# Define a configure option for an alternate input module directory
AC_ARG_WITH(xorg-module-dir,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-input-libinput-0.11.0/include/libinput-properties.h new/xf86-input-libinput-0.12.0/include/libinput-properties.h
--- old/xf86-input-libinput-0.11.0/include/libinput-properties.h 2015-04-23 08:45:34.000000000 +0200
+++ new/xf86-input-libinput-0.12.0/include/libinput-properties.h 2015-07-14 08:18:14.000000000 +0200
@@ -30,6 +30,12 @@
/* Tapping default enabled/disabled: BOOL, 1 value, read-only */
#define LIBINPUT_PROP_TAP_DEFAULT "libinput Tapping Enabled Default"
+/* Tap drag lock enabled/disabled: BOOL, 1 value */
+#define LIBINPUT_PROP_TAP_DRAG_LOCK "libinput Tapping Drag Lock Enabled"
+
+/* Tap drag lock default enabled/disabled: BOOL, 1 value */
+#define LIBINPUT_PROP_TAP_DRAG_LOCK_DEFAULT "libinput Tapping Drag Lock Enabled Default"
+
/* Calibration matrix: FLOAT, 9 values of a 3x3 matrix, in rows */
#define LIBINPUT_PROP_CALIBRATION "libinput Calibration Matrix"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-input-libinput-0.11.0/man/libinput.man new/xf86-input-libinput-0.12.0/man/libinput.man
--- old/xf86-input-libinput-0.11.0/man/libinput.man 2015-04-30 03:34:13.000000000 +0200
+++ new/xf86-input-libinput-0.12.0/man/libinput.man 2015-07-14 08:18:14.000000000 +0200
@@ -109,6 +109,12 @@
.TP 7
.BI "Option \*qTapping\*q \*q" bool \*q
Enables or disables tap-to-click behavior.
+.TP 7
+.BI "Option \*qTappingDragLock\*q \*q" bool \*q
+Enables or disables drag lock during tapping behavior. When enabled, a
+finger up during tap-and-drag will not immediately release the button. If
+the finger is set down again within the timeout, the draging process
+continues.
.PP
For all options, the options are only parsed if the device supports that
configuration option. For all options, the default value is the one used by
@@ -126,6 +132,9 @@
.BI "libinput Tapping Enabled"
1 boolean value (8 bit, 0 or 1). 1 enables tapping
.TP 7
+.BI "libinput Tapping Drag Lock Enabled"
+1 boolean value (8 bit, 0 or 1). 1 enables drag lock during tapping
+.TP 7
.BI "libinput Calibration Matrix"
9 32-bit float values, representing a 3x3 calibration matrix, order is row
1, row 2, row 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-input-libinput-0.11.0/src/libinput.c new/xf86-input-libinput-0.12.0/src/libinput.c
--- old/xf86-input-libinput-0.11.0/src/libinput.c 2015-06-04 13:26:09.000000000 +0200
+++ new/xf86-input-libinput-0.12.0/src/libinput.c 2015-07-14 08:18:14.000000000 +0200
@@ -98,6 +98,7 @@
struct options {
BOOL tapping;
+ BOOL tap_drag_lock;
BOOL natural_scrolling;
BOOL left_handed;
BOOL middle_emulation;
@@ -262,6 +263,13 @@
"Failed to set Tapping to %d\n",
driver_data->options.tapping);
+ if (libinput_device_config_tap_get_finger_count(device) > 0 &&
+ libinput_device_config_tap_set_drag_lock_enabled(device,
+ driver_data->options.tap_drag_lock) != LIBINPUT_CONFIG_STATUS_SUCCESS)
+ xf86IDrvMsg(pInfo, X_ERROR,
+ "Failed to set Tapping DragLock to %d\n",
+ driver_data->options.tap_drag_lock);
+
if (libinput_device_config_calibration_has_matrix(device) &&
libinput_device_config_calibration_set_matrix(device,
driver_data->options.matrix) != LIBINPUT_CONFIG_STATUS_SUCCESS)
@@ -456,7 +464,7 @@
Atom btnlabels[MAX_BUTTONS];
Atom axislabels[TOUCHPAD_NUM_AXES];
- for (i = BTN_BACK; i >= BTN_SIDE; i--) {
+ for (i = BTN_JOYSTICK - 1; i >= BTN_SIDE; i--) {
if (libinput_device_pointer_has_button(driver_data->device, i)) {
nbuttons += i - BTN_SIDE + 1;
break;
@@ -1032,6 +1040,30 @@
return tap;
}
+static inline BOOL
+xf86libinput_parse_tap_drag_lock_option(InputInfoPtr pInfo,
+ struct libinput_device *device)
+{
+ BOOL drag_lock;
+
+ if (libinput_device_config_tap_get_finger_count(device) == 0)
+ return FALSE;
+
+ drag_lock = xf86SetBoolOption(pInfo->options,
+ "TappingDragLock",
+ libinput_device_config_tap_get_drag_lock_enabled(device));
+
+ if (libinput_device_config_tap_set_drag_lock_enabled(device, drag_lock) !=
+ LIBINPUT_CONFIG_STATUS_SUCCESS) {
+ xf86IDrvMsg(pInfo, X_ERROR,
+ "Failed to set Tapping Drag Lock to %d\n",
+ drag_lock);
+ drag_lock = libinput_device_config_tap_get_drag_lock_enabled(device);
+ }
+
+ return drag_lock;
+}
+
static inline double
xf86libinput_parse_accel_option(InputInfoPtr pInfo,
struct libinput_device *device)
@@ -1342,6 +1374,7 @@
/* libinput options */
options->tapping = xf86libinput_parse_tap_option(pInfo, device);
+ options->tap_drag_lock = xf86libinput_parse_tap_drag_lock_option(pInfo, device);
options->speed = xf86libinput_parse_accel_option(pInfo, device);
options->natural_scrolling = xf86libinput_parse_natscroll_option(pInfo, device);
options->sendevents = xf86libinput_parse_sendevents_option(pInfo, device);
@@ -1523,6 +1556,8 @@
/* libinput-specific properties */
static Atom prop_tap;
static Atom prop_tap_default;
+static Atom prop_tap_drag_lock;
+static Atom prop_tap_drag_lock_default;
static Atom prop_calibration;
static Atom prop_calibration_default;
static Atom prop_accel;
@@ -1602,6 +1637,37 @@
}
static inline int
+LibinputSetPropertyTapDragLock(DeviceIntPtr dev,
+ Atom atom,
+ XIPropertyValuePtr val,
+ BOOL checkonly)
+{
+ InputInfoPtr pInfo = dev->public.devicePrivate;
+ struct xf86libinput *driver_data = pInfo->private;
+ struct libinput_device *device = driver_data->device;
+ BOOL* data;
+
+ if (val->format != 8 || val->size != 1 || val->type != XA_INTEGER)
+ return BadMatch;
+
+ data = (BOOL*)val->data;
+ if (checkonly) {
+ if (*data != 0 && *data != 1)
+ return BadValue;
+
+ if (!xf86libinput_check_device(dev, atom))
+ return BadMatch;
+
+ if (libinput_device_config_tap_get_finger_count(device) == 0)
+ return BadMatch;
+ } else {
+ driver_data->options.tap_drag_lock = *data;
+ }
+
+ return Success;
+}
+
+static inline int
LibinputSetPropertyCalibration(DeviceIntPtr dev,
Atom atom,
XIPropertyValuePtr val,
@@ -1930,6 +1996,8 @@
if (atom == prop_tap)
rc = LibinputSetPropertyTap(dev, atom, val, checkonly);
+ else if (atom == prop_tap_drag_lock)
+ rc = LibinputSetPropertyTapDragLock(dev, atom, val, checkonly);
else if (atom == prop_calibration)
rc = LibinputSetPropertyCalibration(dev, atom, val,
checkonly);
@@ -1957,6 +2025,7 @@
rc = LibinputSetPropertyMiddleEmulation(dev, atom, val, checkonly);
else if (atom == prop_device || atom == prop_product_id ||
atom == prop_tap_default ||
+ atom == prop_tap_drag_lock_default ||
atom == prop_calibration_default ||
atom == prop_accel_default ||
atom == prop_natural_scroll_default ||
@@ -2025,6 +2094,30 @@
}
static void
+LibinputInitTapDragLockProperty(DeviceIntPtr dev,
+ struct xf86libinput *driver_data,
+ struct libinput_device *device)
+{
+ BOOL drag_lock = driver_data->options.tap_drag_lock;
+
+ if (libinput_device_config_tap_get_finger_count(device) == 0)
+ return;
+
+ prop_tap_drag_lock = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_TAP_DRAG_LOCK,
+ XA_INTEGER, 8,
+ 1, &drag_lock);
+ if (!prop_tap_drag_lock)
+ return;
+
+ drag_lock = libinput_device_config_tap_get_default_enabled(device);
+ prop_tap_drag_lock_default = LibinputMakeProperty(dev,
+ LIBINPUT_PROP_TAP_DRAG_LOCK_DEFAULT,
+ XA_INTEGER, 8,
+ 1, &drag_lock);
+}
+
+static void
LibinputInitCalibrationProperty(DeviceIntPtr dev,
struct xf86libinput *driver_data,
struct libinput_device *device)
@@ -2383,6 +2476,7 @@
prop_float = XIGetKnownProperty("FLOAT");
LibinputInitTapProperty(dev, driver_data, device);
+ LibinputInitTapDragLockProperty(dev, driver_data, device);
LibinputInitCalibrationProperty(dev, driver_data, device);
LibinputInitAccelProperty(dev, driver_data, device);
LibinputInitNaturalScrollProperty(dev, driver_data, device);
[View Less]
1
0
Hello community,
here is the log from the commit of package nilfs-utils for openSUSE:Factory checked in at 2015-08-01 11:37:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nilfs-utils (Old)
and /work/SRC/openSUSE:Factory/.nilfs-utils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nilfs-utils"
Changes:
--------
--- /work/SRC/openSUSE:Factory/nilfs-utils/nilfs-utils.changes …
[View More]2015-03-28 18:39:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.nilfs-utils.new/nilfs-utils.changes 2015-08-01 11:37:11.000000000 +0200
@@ -1,0 +2,44 @@
+Sat Jul 25 12:04:17 UTC 2015 - mpluskal(a)suse.com
+
+- Update to 2.2.3
+ * lscp: accelerate backward checkpoint listing
+ * lib/nilfs.c: fix potential leak at nilfs_open()
+ * get rid of unnecessary null checks before calling free()
+ * get rid of my_free() wrapper function
+- Changes for 2.2.2
+ * mount.nilfs2: invoke cleanerd even if no-mtab option is specified;
+ this fixes failure of cleanerd invocation under systemd 216+.
+ * lscp: always show snapshots, even if marked minor.
+- Changes for 2.2.1
+ * nilfs-clean: do not override min_reclaimable_blocks if -m option
+ is not used.
+ * nilfs_cleanerd.conf: try to use set_suinfo ioctl by default
+ * nilfs_cleanerd.conf: set min_reclaimable_blocks parameter to 10
+ percent to more reduce relocation of static data.
+ * libnilfs: set errno when device doesn't contain valid NILFS data
+ * mkfs.nilfs2: fix gcc warning "array subscript is above array bounds"
+ * bin/*: improve error message on failure of nilfs_open()
+ * install nilfs-* executables to /usr/sbin to resolve warnings of
+ adequate (Debian package quality testing tool).
+ * nilfs_cleanerd: link libraries statically to make nilfs_cleanerd
+ self-contained in /sbin directory.
+ * fix typos in messages, manpages, source files, and ChangeLog file.
+- Changes for 2.2.0
+ * lscp: show block count by default
+ * lssu: add option to print count of live blocks
+ * lssu: display "p" flag on protected segments
+ * fix build of dist archives
+ * lib/gc.c: refactor reclaim function
+ * lib/gc.c: add optimized version of nilfs_xreclaim_segments
+ * cleanerd: use nilfs_xreclaim_segment()
+ * cleanerd: add a no_timeout flag to enable faster loop
+ * lib/nilfs.c: add support for NILFS_IOCTL_SET_SUINFO ioctl
+ * lib/nilfs.c: add NILFS_OPT_SET_SUINFO
+ * nilfs-clean: add cmdline param min-reclaimable-blocks
+ * move generic macros into util.h
+ * fix coding style issues
+ * bump up version of nilfs-utils written in manpages
+- Build devel package
+- Split shared libraries to separate packages
+
+-------------------------------------------------------------------
Old:
----
nilfs-utils-2.1.6.tar.bz2
New:
----
nilfs-utils-2.2.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nilfs-utils.spec ++++++
--- /var/tmp/diff_new_pack.qAPMEm/_old 2015-08-01 11:37:12.000000000 +0200
+++ /var/tmp/diff_new_pack.qAPMEm/_new 2015-08-01 11:37:12.000000000 +0200
@@ -16,70 +16,107 @@
#
-%define build_devel_pkg 0
+%define libnilfs libnilfs0
+%define libcleaner libnilfscleaner0
+%define libgc libnilfsgc0
Name: nilfs-utils
-Version: 2.1.6
+Version: 2.2.3
Release: 0
Summary: Utilities for NILFS
License: GPL-2.0
Group: System/Filesystems
Url: http://www.nilfs.org
Source: http://nilfs.sourceforge.net/download/%{name}-%{version}.tar.bz2
+BuildRequires: chrpath
BuildRequires: libmount-devel
-BuildRequires: libtool
BuildRequires: libuuid-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
This package contains utility programs for NILFS v2.
-%if %{build_devel_pkg}
+%package -n %{libnilfs}
+Summary: Library for interacting with nilfs
+Group: System/Libraries
+
+%description -n %{libnilfs}
+This package contains shared library needed for some applications to
+interface with nilfs
+
+%package -n %{libcleaner}
+Summary: Cleaner library for interacting with nilfs
+Group: System/Libraries
+
+%description -n %{libcleaner}
+This package contains shared cleaner library needed for some applications
+to interface with nilfs
+
+%package -n %{libgc}
+Summary: Garbage collection library for interacting with nilfs
+Group: System/Libraries
+
+%description -n %{libgc}
+This package contains shared garbage collection library needed for some
+applications to interface with nilfs
+
%package devel
Summary: Development package for the libnilfs library
Group: Development/Libraries/C and C++
-Requires: %{lname} = %{version}
+Requires: %{libnilfs} = %{version}
%description devel
This package contains the development files for NILFS v2.
-%endif
%prep
%setup -q
%build
-# autoreconf -fi
-%configure --disable-static --enable-libmount
+%configure \
+ --disable-static \
+ --enable-libmount
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot} root_sbindir=/sbin root_libdir=/%{_lib}
# remove unneeded files
-# rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
find %{buildroot} -type f -name "*.la" -delete -print
-%if !%{build_devel_pkg}
-# remove devel files (not packaged for the time being)
-rm -rf %{buildroot}%{_includedir}
-rm -f %{buildroot}%{_libdir}/*.so
-%endif
-
-%post -p /sbin/ldconfig
+chrpath -d %{buildroot}/sbin/*
-%postun -p /sbin/ldconfig
+%post -n %{libnilfs} -p /sbin/ldconfig
+%post -n %{libcleaner} -p /sbin/ldconfig
+%post -n %{libgc} -p /sbin/ldconfig
+
+%postun -n %{libnilfs} -p /sbin/ldconfig
+%postun -n %{libcleaner} -p /sbin/ldconfig
+%postun -n %{libgc} -p /sbin/ldconfig
%files
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/nilfs_cleanerd.conf
/sbin/*
+%{_sbindir}/*
%{_bindir}/*
-%{_libdir}/libnilfs*.so.*
%{_mandir}/man?/*
-%if %{build_devel_pkg}
+%files -n %{libnilfs}
+%defattr(-,root,root)
+%{_libdir}/libnilfs.so.*
+
+%files -n %{libcleaner}
+%defattr(-,root,root)
+%{_libdir}/libnilfscleaner.so.*
+
+%files -n %{libgc}
+%defattr(-,root,root)
+%{_libdir}/libnilfsgc.so.*
+
%files devel
%defattr(-,root,root)
%{_includedir}/nilfs.h
-%{_includedir}/nilfs_fs.h
+%{_includedir}/nilfs2_fs.h
+%{_includedir}/nilfs_cleaner.h
%{_libdir}/libnilfs.so
-%endif
+%{_libdir}/libnilfscleaner.so
+%{_libdir}/libnilfsgc.so
%changelog
++++++ nilfs-utils-2.1.6.tar.bz2 -> nilfs-utils-2.2.3.tar.bz2 ++++++
++++ 11145 lines of diff (skipped)
[View Less]
1
0
Hello community,
here is the log from the commit of package ppc64-diag for openSUSE:Factory checked in at 2015-08-01 11:37:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ppc64-diag (Old)
and /work/SRC/openSUSE:Factory/.ppc64-diag.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ppc64-diag"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ppc64-diag/ppc64-diag.changes 2015-06-…
[View More]09 12:24:46.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ppc64-diag.new/ppc64-diag.changes 2015-08-01 11:37:10.000000000 +0200
@@ -1,0 +2,17 @@
+Thu Jul 23 11:45:16 UTC 2015 - jloeser(a)suse.com
+
+- version update to 2.6.9 (FATE#318007)
+ - see Changelog under ppc64-diag-2.6.9/ppc64-diag.spec
+
+- modified patches:
+ * ppc64-diag.varunused.patch
+ * ppc64-diag.rtas_errd.patch
+ * ppc64-diag.opal_errd.patch
+ * ppc64-diag.tmpraces.patch
+
+- removed patches:
+ * ppc64-diag.add_ncurses_include_path.patch
+ * ppc64-diag.rtas_errd-LE-fixes-for-extract_platdump.patch
+ * ppc64-diag-tmpraces.patch
+
+-------------------------------------------------------------------
Old:
----
ppc64-diag-2.6.8.tar.gz
ppc64-diag-tmpraces.patch
ppc64-diag.add_ncurses_include_path.patch
ppc64-diag.rtas_errd-LE-fixes-for-extract_platdump.patch
New:
----
ppc64-diag-2.6.9.tar.gz
ppc64-diag.tmpraces.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ppc64-diag.spec ++++++
--- /var/tmp/diff_new_pack.DAYWHE/_old 2015-08-01 11:37:11.000000000 +0200
+++ /var/tmp/diff_new_pack.DAYWHE/_new 2015-08-01 11:37:11.000000000 +0200
@@ -18,7 +18,7 @@
Url: http://sourceforge.net/projects/linux-diag/files/ppc64-diag
Name: ppc64-diag
-Version: 2.6.8
+Version: 2.6.9
Release: 0
Summary: Linux for Power Platform Diagnostics
License: EPL-1.0
@@ -54,9 +54,7 @@
Patch2: %{name}.varunused.patch
#PATCH-FIX-OPENSUSE - ppc64-diag.opal_errd.patch - fix opal_errd initscript to comply with openSUSE standards
Patch3: %{name}.opal_errd.patch
-Patch4: ppc64-diag.add_ncurses_include_path.patch
-Patch5: ppc64-diag-tmpraces.patch
-Patch6: %{name}.rtas_errd-LE-fixes-for-extract_platdump.patch
+Patch4: ppc64-diag.tmpraces.patch
%description
This package contains various diagnostic tools for PowerLinux.
@@ -78,8 +76,6 @@
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch5 -p1
-%patch6 -p1
%build
%if 0%{?has_systemd}
++++++ ppc64-diag-2.6.8.tar.gz -> ppc64-diag-2.6.9.tar.gz ++++++
++++ 5396 lines of diff (skipped)
++++++ ppc64-diag.opal_errd.patch ++++++
--- /var/tmp/diff_new_pack.DAYWHE/_old 2015-08-01 11:37:11.000000000 +0200
+++ /var/tmp/diff_new_pack.DAYWHE/_new 2015-08-01 11:37:11.000000000 +0200
@@ -1,7 +1,7 @@
-Index: ppc64-diag-2.6.7/scripts/opal_errd
+Index: ppc64-diag-2.6.9/scripts/opal_errd
===================================================================
---- ppc64-diag-2.6.7.orig/scripts/opal_errd
-+++ ppc64-diag-2.6.7/scripts/opal_errd
+--- ppc64-diag-2.6.9.orig/scripts/opal_errd
++++ ppc64-diag-2.6.9/scripts/opal_errd
@@ -22,6 +22,10 @@
# Provides: opal_errd
# Required-Start: $local_fs $syslog $time
++++++ ppc64-diag.rtas_errd.patch ++++++
--- /var/tmp/diff_new_pack.DAYWHE/_old 2015-08-01 11:37:11.000000000 +0200
+++ /var/tmp/diff_new_pack.DAYWHE/_new 2015-08-01 11:37:11.000000000 +0200
@@ -2,10 +2,10 @@
scripts/rtas_errd | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
-Index: ppc64-diag-2.6.7/scripts/rtas_errd
+Index: ppc64-diag-2.6.9/scripts/rtas_errd
===================================================================
---- ppc64-diag-2.6.7.orig/scripts/rtas_errd
-+++ ppc64-diag-2.6.7/scripts/rtas_errd
+--- ppc64-diag-2.6.9.orig/scripts/rtas_errd
++++ ppc64-diag-2.6.9/scripts/rtas_errd
@@ -21,6 +21,10 @@
# Provides: rtas_errd
# Required-Start: $local_fs $syslog $time
++++++ ppc64-diag-tmpraces.patch -> ppc64-diag.tmpraces.patch ++++++
--- /work/SRC/openSUSE:Factory/ppc64-diag/ppc64-diag-tmpraces.patch 2015-06-09 12:24:46.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ppc64-diag.new/ppc64-diag.tmpraces.patch 2015-08-01 11:37:10.000000000 +0200
@@ -1,7 +1,7 @@
-Index: ppc64-diag-2.6.8/lpd/test/lpd_ela_test.sh
+Index: ppc64-diag-2.6.9/lpd/test/lpd_ela_test.sh
===================================================================
---- ppc64-diag-2.6.8.orig/lpd/test/lpd_ela_test.sh
-+++ ppc64-diag-2.6.8/lpd/test/lpd_ela_test.sh
+--- ppc64-diag-2.6.9.orig/lpd/test/lpd_ela_test.sh
++++ ppc64-diag-2.6.9/lpd/test/lpd_ela_test.sh
@@ -22,7 +22,7 @@ EXECUTION_LOG="$LOG_DIR/$SCRIPT_NAME.log
ERROR_LOG="$LOG_DIR/$SCRIPT_NAME.err"
@@ -11,10 +11,10 @@
MESSAGE_FILE="$TMP_DIR/messages"
TMP_FILE="$TMP_DIR/$SCRIPT_NAME.tmp"
-Index: ppc64-diag-2.6.8/scripts/ppc64_diag_mkrsrc
+Index: ppc64-diag-2.6.9/scripts/ppc64_diag_mkrsrc
===================================================================
---- ppc64-diag-2.6.8.orig/scripts/ppc64_diag_mkrsrc
-+++ ppc64-diag-2.6.8/scripts/ppc64_diag_mkrsrc
+--- ppc64-diag-2.6.9.orig/scripts/ppc64_diag_mkrsrc
++++ ppc64-diag-2.6.9/scripts/ppc64_diag_mkrsrc
@@ -136,7 +136,7 @@ if (-e "/proc/device-tree/ibm,converged-
}
++++++ ppc64-diag.varunused.patch ++++++
--- /var/tmp/diff_new_pack.DAYWHE/_old 2015-08-01 11:37:11.000000000 +0200
+++ /var/tmp/diff_new_pack.DAYWHE/_new 2015-08-01 11:37:11.000000000 +0200
@@ -1,10 +1,10 @@
-Index: ppc64-diag-2.6.8/diags/7031_D24_T24.c
+Index: ppc64-diag-2.6.9/diags/7031_D24_T24.c
===================================================================
---- ppc64-diag-2.6.8.orig/diags/7031_D24_T24.c
-+++ ppc64-diag-2.6.8/diags/7031_D24_T24.c
-@@ -69,7 +69,8 @@ get_enclosure_scsi_id(struct pearl_diag_
+--- ppc64-diag-2.6.9.orig/diags/7031_D24_T24.c
++++ ppc64-diag-2.6.9/diags/7031_D24_T24.c
+@@ -73,7 +73,8 @@ get_enclosure_scsi_id(struct pearl_diag_
static int
- print_drive_status(uint32_t status)
+ pearl_print_drive_status(uint32_t status)
{
- int fail = 0, printed = 0, rc = OK;
+ __attribute__((unused)) int fail = 0;
@@ -12,7 +12,7 @@
if ((status & 0x0F000000) == 0x05000000) {
printf("(empty) ");
-@@ -167,7 +168,8 @@ print_ps_fan_status(uint32_t status)
+@@ -171,7 +172,8 @@ print_ps_fan_status(uint32_t status)
static int
print_repeater_status(uint32_t status)
{
@@ -22,7 +22,7 @@
if ((status & 0x0F000000) == 0x01000000)
printf("ok ");
-@@ -351,7 +353,8 @@ int
+@@ -355,7 +357,8 @@ int
diag_7031_D24_T24(int fd, struct dev_vpd *vpd)
{
struct pearl_diag_page2 dp;
@@ -32,11 +32,11 @@
int buf_len = sizeof(dp);
int ps1, ps2, fan1, fan2, fan3, rpt, vpd_card;
-Index: ppc64-diag-2.6.8/rtas_errd/ela.c
+Index: ppc64-diag-2.6.9/rtas_errd/ela.c
===================================================================
---- ppc64-diag-2.6.8.orig/rtas_errd/ela.c
-+++ ppc64-diag-2.6.8/rtas_errd/ela.c
-@@ -1814,7 +1814,7 @@ process_v1_epow(struct event *event, int
+--- ppc64-diag-2.6.9.orig/rtas_errd/ela.c
++++ ppc64-diag-2.6.9/rtas_errd/ela.c
+@@ -1813,7 +1813,7 @@ process_v1_epow(struct event *event, int
int class;
int ext_epow;
int ext_epow_nofan;
@@ -45,10 +45,10 @@
/*
* The following EPOW error logs found in CHRP, Ver. 1
-Index: ppc64-diag-2.6.8/rtas_errd/epow.c
+Index: ppc64-diag-2.6.9/rtas_errd/epow.c
===================================================================
---- ppc64-diag-2.6.8.orig/rtas_errd/epow.c
-+++ ppc64-diag-2.6.8/rtas_errd/epow.c
+--- ppc64-diag-2.6.9.orig/rtas_errd/epow.c
++++ ppc64-diag-2.6.9/rtas_errd/epow.c
@@ -48,7 +48,7 @@ static int time_remaining = 0;
void
epow_timer_handler(int sig, siginfo_t siginfo, void *context)
@@ -76,10 +76,10 @@
/*
* Dissect the EPOW extended error information;
-Index: ppc64-diag-2.6.8/rtas_errd/files.c
+Index: ppc64-diag-2.6.9/rtas_errd/files.c
===================================================================
---- ppc64-diag-2.6.8.orig/rtas_errd/files.c
-+++ ppc64-diag-2.6.8/rtas_errd/files.c
+--- ppc64-diag-2.6.9.orig/rtas_errd/files.c
++++ ppc64-diag-2.6.9/rtas_errd/files.c
@@ -162,7 +162,7 @@ setup_rtas_event_scenario(void)
{
struct stat sbuf;
@@ -89,10 +89,10 @@
int i;
if (scenario_file == NULL)
-Index: ppc64-diag-2.6.8/rtas_errd/guard.c
+Index: ppc64-diag-2.6.9/rtas_errd/guard.c
===================================================================
---- ppc64-diag-2.6.8.orig/rtas_errd/guard.c
-+++ ppc64-diag-2.6.8/rtas_errd/guard.c
+--- ppc64-diag-2.6.9.orig/rtas_errd/guard.c
++++ ppc64-diag-2.6.9/rtas_errd/guard.c
@@ -41,7 +41,7 @@ run_drmgr(enum resource_dealloc_type res
unsigned int value, int wait)
{
[View Less]
1
0
Hello community,
here is the log from the commit of package dtb-source for openSUSE:Factory checked in at 2015-08-01 11:37:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dtb-source (Old)
and /work/SRC/openSUSE:Factory/.dtb-source.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dtb-source"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dtb-source/dtb-aarch64.changes 2015-07-…
[View More]14 17:44:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dtb-source.new/dtb-aarch64.changes 2015-08-01 11:37:08.000000000 +0200
@@ -1,0 +2,14 @@
+Sun Jul 26 13:52:37 UTC 2015 - afaerber(a)suse.de
+
+- Add armv7l dtbs:
+ * dtb-sun8i
+ * dtb-sun9i
+
+-------------------------------------------------------------------
+Fri Jul 17 11:46:59 UTC 2015 - afaerber(a)suse.de
+
+- Add armv7l dtbs:
+ * dtb-qcom (qcom-apq8064-ifc6410 new in 3.16)
+ * dtb-zynq (zynq-parallella new in 3.17)
+
+-------------------------------------------------------------------
dtb-armv6l.changes: same change
dtb-armv7l.changes: same change
dtb-source.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
dtb-armv6l.spec: same change
++++++ dtb-armv7l.spec ++++++
--- /var/tmp/diff_new_pack.S8E3eM/_old 2015-08-01 11:37:09.000000000 +0200
+++ /var/tmp/diff_new_pack.S8E3eM/_new 2015-08-01 11:37:09.000000000 +0200
@@ -164,6 +164,20 @@
%description -n dtb-sun7i
Device Tree Files for Allwinner sun7i based systems.
+%package -n dtb-sun8i
+Summary: Allwinner sun8i based systems
+Group: System/Boot
+
+%description -n dtb-sun8i
+Device Tree Files for Allwinner sun8i based systems.
+
+%package -n dtb-sun9i
+Summary: Allwinner sun9i based systems
+Group: System/Boot
+
+%description -n dtb-sun9i
+Device Tree Files for Allwinner sun9i based systems.
+
%package -n dtb-xenvm
Summary: Xen virtual machines
Group: System/Boot
@@ -213,6 +227,20 @@
%description -n dtb-rk3
Device Tree Files for Rockchip RK3xxx based systems.
+%package -n dtb-qcom
+Summary: Qualcomm Snapdragon based systems
+Group: System/Boot
+
+%description -n dtb-qcom
+Device Tree Files for Qualcomm Snapdragon based systems.
+
+%package -n dtb-zynq
+Summary: Xilinx Zynq based systems
+Group: System/Boot
+
+%description -n dtb-zynq
+Device Tree Files for Xilinx Zynq based systems.
+
%prep
@@ -228,7 +256,7 @@
mkdir -p %{buildroot}/boot/dtb
cd linux/arch/arm/boot/dts
-for dts in *omap3*.dts *omap4*.dts *omap5*.dts *am335x*.dts k2hk-evm.dts *exynos4*.dts *exynos5*.dts *imx5*.dts *imx6*.dts *vf6*.dts *tegra2*.dts *tegra3*.dts tegra114-*.dts tegra124-*.dts *sun4i*.dts *sun5i*.dts *sun6i*.dts *sun7i*.dts *xenvm*.dts vexpress*.dts ste*.dts dove*.dts armada-370*.dts armada-xp*.dts rk3*.dts ; do
+for dts in *omap3*.dts *omap4*.dts *omap5*.dts *am335x*.dts k2hk-evm.dts *exynos4*.dts *exynos5*.dts *imx5*.dts *imx6*.dts *vf6*.dts *tegra2*.dts *tegra3*.dts tegra114-*.dts tegra124-*.dts *sun4i*.dts *sun5i*.dts *sun6i*.dts *sun7i*.dts *sun8i*.dts *sun9i*.dts *xenvm*.dts vexpress*.dts ste*.dts dove*.dts armada-370*.dts armada-xp*.dts rk3*.dts qcom-*.dts zynq-*.dts ; do
target=${dts%*.dts}
cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I./include/ -P $target.dts -o $target.dts.tmp
install -m 700 -d %{buildroot}/boot/dtb/$(dirname $target)
@@ -344,6 +372,18 @@
%dir /boot/dtb/
/boot/dtb/*sun7i*.dtb
+%files -n dtb-sun8i
+%defattr(-,root,root)
+%doc COPYING
+%dir /boot/dtb/
+/boot/dtb/*sun8i*.dtb
+
+%files -n dtb-sun9i
+%defattr(-,root,root)
+%doc COPYING
+%dir /boot/dtb/
+/boot/dtb/*sun9i*.dtb
+
%files -n dtb-xenvm
%defattr(-,root,root)
%doc COPYING
@@ -386,6 +426,18 @@
%dir /boot/dtb/
/boot/dtb/rk3*.dtb
+%files -n dtb-qcom
+%defattr(-,root,root)
+%doc COPYING
+%dir /boot/dtb/
+/boot/dtb/qcom-*.dtb
+
+%files -n dtb-zynq
+%defattr(-,root,root)
+%doc COPYING
+%dir /boot/dtb/
+/boot/dtb/zynq-*.dtb
+
%endif
%changelog
++++++ pre_checkin.pl ++++++
--- /var/tmp/diff_new_pack.S8E3eM/_old 2015-08-01 11:37:09.000000000 +0200
+++ /var/tmp/diff_new_pack.S8E3eM/_new 2015-08-01 11:37:09.000000000 +0200
@@ -25,6 +25,8 @@
['dtb-sun5i', '*sun5i*.dts', "Allwinner sun5i based systems"],
['dtb-sun6i', '*sun6i*.dts', "Allwinner sun6i based systems"],
['dtb-sun7i', '*sun7i*.dts', "Allwinner sun7i based systems"],
+ ['dtb-sun8i', '*sun8i*.dts', "Allwinner sun8i based systems"],
+ ['dtb-sun9i', '*sun9i*.dts', "Allwinner sun9i based systems"],
['dtb-xenvm', '*xenvm*.dts', "Xen virtual machines"],
['dtb-vexpress', 'vexpress*.dts', "ARM versatile express machines"],
['dtb-ste', 'ste*.dts', "ST Ericsson based systems"],
@@ -32,6 +34,8 @@
['dtb-armada-370', 'armada-370*.dts', "Armada 370 based systems"],
['dtb-armada-xp', 'armada-xp*.dts', "Armada XP based systems"],
['dtb-rk3', 'rk3*.dts', "Rockchip RK3xxx based systems"],
+ ['dtb-qcom', 'qcom-*.dts', "Qualcomm Snapdragon based systems"],
+ ['dtb-zynq', 'zynq-*.dts', "Xilinx Zynq based systems"],
);
# DTB packages names
[View Less]
1
0
Hello community,
here is the log from the commit of package python-websockify for openSUSE:Factory checked in at 2015-08-01 11:37:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-websockify (Old)
and /work/SRC/openSUSE:Factory/.python-websockify.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-websockify"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-…
[View More]websockify/python-websockify.changes 2015-05-19 23:47:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-websockify.new/python-websockify.changes 2015-08-01 11:37:06.000000000 +0200
@@ -1,0 +2,5 @@
+Sat Jul 25 10:48:31 UTC 2015 - seife+obs(a)b1-systems.com
+
+- fix non-SUSE build by conditionalizing "Recommends:" tag
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-websockify.spec ++++++
--- /var/tmp/diff_new_pack.LeuhWr/_old 2015-08-01 11:37:06.000000000 +0200
+++ /var/tmp/diff_new_pack.LeuhWr/_new 2015-08-01 11:37:06.000000000 +0200
@@ -27,7 +27,9 @@
BuildRequires: python-devel
BuildRequires: python-setuptools
BuildRequires: unzip
+%if 0%{?suse_version}
Recommends: python-numpy
+%endif
Requires: python-pyOpenSSL
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
[View Less]
1
0
Hello community,
here is the log from the commit of package batctl for openSUSE:Factory checked in at 2015-08-01 11:37:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/batctl (Old)
and /work/SRC/openSUSE:Factory/.batctl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "batctl"
Changes:
--------
--- /work/SRC/openSUSE:Factory/batctl/batctl.changes 2015-04-02 16:03:18.000000000 +…
[View More]0200
+++ /work/SRC/openSUSE:Factory/.batctl.new/batctl.changes 2015-08-01 11:37:05.000000000 +0200
@@ -1,0 +2,6 @@
+Sun Jul 26 13:42:50 UTC 2015 - p.drouand(a)gmail.com
+
+- Update to version 2015.0
+ * No changelog available
+
+-------------------------------------------------------------------
Old:
----
batctl-2014.4.0.tar.gz
New:
----
batctl-2015.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ batctl.spec ++++++
--- /var/tmp/diff_new_pack.iE2ENl/_old 2015-08-01 11:37:05.000000000 +0200
+++ /var/tmp/diff_new_pack.iE2ENl/_new 2015-08-01 11:37:05.000000000 +0200
@@ -22,7 +22,7 @@
Name: batctl
Summary: B.A.T.M.A.N. advanced control and management tool
-Version: 2014.4.0
+Version: 2015.0
Release: 2
License: GPL-2.0
Group: Productivity/Networking/Other
++++++ batctl-2014.4.0.tar.gz -> batctl-2015.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/Makefile new/batctl-2015.0/Makefile
--- old/batctl-2014.4.0/Makefile 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/Makefile 2015-04-26 13:32:22.000000000 +0200
@@ -1,7 +1,7 @@
#!/usr/bin/make -f
# -*- makefile -*-
#
-# Copyright (C) 2006-2014 B.A.T.M.A.N. contributors
+# Copyright (C) 2006-2015 B.A.T.M.A.N. contributors
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/allocate.h new/batctl-2015.0/allocate.h
--- old/batctl-2014.4.0/allocate.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/allocate.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/bat-hosts.c new/batctl-2015.0/bat-hosts.c
--- old/batctl-2014.4.0/bat-hosts.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/bat-hosts.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Andreas Langer <an.langer(a)gmx.de>, Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/bat-hosts.h new/batctl-2015.0/bat-hosts.h
--- old/batctl-2014.4.0/bat-hosts.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/bat-hosts.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/bisect_iv.c new/batctl-2015.0/bisect_iv.c
--- old/batctl-2014.4.0/bisect_iv.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/bisect_iv.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
@@ -644,7 +644,6 @@
snprintf(curr_loop_magic, sizeof(curr_loop_magic), "%s%s%lli%lli", src_node->name,
dst_node->name, seqno, seqno_rand);
- curr_loop_magic[sizeof(curr_loop_magic) - 1] = '\0';
printf("Path towards %s (seqno %lli ",
get_name_by_macstr(dst_node->name, read_opt), seqno);
@@ -725,7 +724,6 @@
snprintf(curr_loop_magic, sizeof(curr_loop_magic), "%s%s%lli%lli",
src_node->name, dst_node->name,
seqno_min_tmp, seqno_rand);
- curr_loop_magic[sizeof(curr_loop_magic) - 1] = '\0';
orig_event = orig_event_get_by_ptr(curr_node, dst_node);
if (!orig_event)
@@ -982,7 +980,6 @@
(strlen(head) > 1 ? head : num_sisters == 0 ? " " : head),
(strlen(head) == 1 ? " " :
num_sisters == 0 ? " " : "| "));
- new_head[sizeof(new_head) - 1] = '\0';
seqno_trace_print_neigh(seqno_trace_neigh->seqno_trace_neigh[i], seqno_trace_neigh->seqno_event,
seqno_trace_neigh->num_neighbors - i - 1, new_head, read_opt);
@@ -1028,7 +1025,6 @@
snprintf(head, sizeof(head), "%c",
(seqno_trace->seqno_trace_neigh.num_neighbors == i + 1 ? '\\' : '|'));
- head[sizeof(head) - 1] = '\0';
seqno_trace_print_neigh(seqno_trace->seqno_trace_neigh.seqno_trace_neigh[i],
NULL,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/bisect_iv.h new/batctl-2015.0/bisect_iv.h
--- old/batctl-2014.4.0/bisect_iv.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/bisect_iv.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/debug.c new/batctl-2015.0/debug.c
--- old/batctl-2014.4.0/debug.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/debug.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/debug.h new/batctl-2015.0/debug.h
--- old/batctl-2014.4.0/debug.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/debug.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/debugfs.c new/batctl-2015.0/debugfs.c
--- old/batctl-2014.4.0/debugfs.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/debugfs.c 2015-04-26 13:32:22.000000000 +0200
@@ -54,7 +54,6 @@
return len+1;
snprintf(buffer, size-1, fmt, debugfs_mountpoint, mesh_iface);
- buffer[size - 1] = '\0';
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/functions.c new/batctl-2015.0/functions.c
--- old/batctl-2014.4.0/functions.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/functions.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Andreas Langer <an.langer(a)gmx.de>, Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/functions.h new/batctl-2015.0/functions.h
--- old/batctl-2014.4.0/functions.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/functions.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Andreas Langer <an.langer(a)gmx.de>, Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/hash.c new/batctl-2015.0/hash.c
--- old/batctl-2014.4.0/hash.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/hash.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2006-2015 B.A.T.M.A.N. contributors:
*
* Simon Wunderlich, Marek Lindner
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/hash.h new/batctl-2015.0/hash.h
--- old/batctl-2014.4.0/hash.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/hash.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2006-2015 B.A.T.M.A.N. contributors:
*
* Simon Wunderlich, Marek Lindner
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/ioctl.c new/batctl-2015.0/ioctl.c
--- old/batctl-2014.4.0/ioctl.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/ioctl.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2012-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/ioctl.h new/batctl-2015.0/ioctl.h
--- old/batctl-2014.4.0/ioctl.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/ioctl.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2012-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/list-batman.c new/batctl-2015.0/list-batman.c
--- old/batctl-2014.4.0/list-batman.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/list-batman.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2006-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/list-batman.h new/batctl-2015.0/list-batman.h
--- old/batctl-2014.4.0/list-batman.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/list-batman.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2006-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/main.c new/batctl-2015.0/main.c
--- old/batctl-2014.4.0/main.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/main.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Andreas Langer <an.langer(a)gmx.de>, Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/main.h new/batctl-2015.0/main.h
--- old/batctl-2014.4.0/main.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/main.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Andreas Langer <an.langer(a)gmx.de>, Marek Lindner <mareklindner(a)neomailbox.ch>
*
@@ -23,7 +23,7 @@
#define _BATCTL_MAIN_H
#ifndef SOURCE_VERSION
-#define SOURCE_VERSION "2014.4.0"
+#define SOURCE_VERSION "2015.0"
#endif
#define SOCKET_PATH_FMT "%s/batman_adv/%s/socket"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/packet.h new/batctl-2015.0/packet.h
--- old/batctl-2014.4.0/packet.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/packet.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+/* Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner, Simon Wunderlich
*
@@ -198,6 +198,7 @@
uint8_t type; /* bla_claimframe */
__be16 group; /* group id */
};
+
#pragma pack()
/**
@@ -376,7 +377,7 @@
uint8_t reserved:4;
uint8_t no:4;
#else
-#error "unknown bitfield endianess"
+#error "unknown bitfield endianness"
#endif
uint8_t dest[ETH_ALEN];
uint8_t orig[ETH_ALEN];
@@ -452,7 +453,7 @@
* @src: address of the source
* @dst: address of the destination
* @tvlv_len: length of tvlv data following the unicast tvlv header
- * @align: 2 bytes to align the header to a 4 byte boundry
+ * @align: 2 bytes to align the header to a 4 byte boundary
*/
struct batadv_unicast_tvlv_packet {
uint8_t packet_type;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/ping.c new/batctl-2015.0/ping.c
--- old/batctl-2014.4.0/ping.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/ping.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Andreas Langer <an.langer(a)gmx.de>, Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/ping.h new/batctl-2015.0/ping.h
--- old/batctl-2014.4.0/ping.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/ping.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/sys.c new/batctl-2015.0/sys.c
--- old/batctl-2014.4.0/sys.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/sys.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
@@ -146,7 +146,6 @@
while ((iface_dir = readdir(iface_base_dir)) != NULL) {
snprintf(path_buff, PATH_BUFF_LEN, SYS_MESH_IFACE_FMT, iface_dir->d_name);
- path_buff[PATH_BUFF_LEN - 1] = '\0';
res = read_file("", path_buff, USE_READ_BUFF | SILENCE_ERRORS, 0, 0, 0);
if (res != EXIT_SUCCESS)
continue;
@@ -164,7 +163,6 @@
line_ptr = NULL;
snprintf(path_buff, PATH_BUFF_LEN, SYS_IFACE_STATUS_FMT, iface_dir->d_name);
- path_buff[PATH_BUFF_LEN - 1] = '\0';
res = read_file("", path_buff, USE_READ_BUFF | SILENCE_ERRORS, 0, 0, 0);
if (res != EXIT_SUCCESS) {
fprintf(stderr, "<error reading status>\n");
@@ -228,11 +226,9 @@
for (i = 2; i < argc; i++) {
snprintf(path_buff, PATH_BUFF_LEN, SYS_MESH_IFACE_FMT, argv[i]);
- path_buff[PATH_BUFF_LEN - 1] = '\0';
if (!file_exists(path_buff)) {
snprintf(path_buff, PATH_BUFF_LEN, SYS_IFACE_DIR, argv[i]);
- path_buff[PATH_BUFF_LEN - 1] = '\0';
if (!file_exists(path_buff)) {
fprintf(stderr, "Error - interface does not exist: %s\n", argv[i]);
@@ -303,7 +299,6 @@
path_buff = malloc(PATH_BUFF_LEN);
snprintf(path_buff, PATH_BUFF_LEN, SYS_BATIF_PATH_FMT, mesh_iface);
- path_buff[PATH_BUFF_LEN - 1] = '\0';
if (argc != 1) {
for (i = 1; i < argc; i++) {
@@ -332,7 +327,6 @@
}
snprintf(str, sizeof(str), "%i", log_level);
- str[sizeof(str) - 1] = '\0';
res = write_file(path_buff, SYS_LOG_LEVEL, str, NULL);
goto out;
}
@@ -401,16 +395,13 @@
/* prepare the classic path */
path_buff = malloc(PATH_BUFF_LEN);
snprintf(path_buff, PATH_BUFF_LEN, SYS_BATIF_PATH_FMT, mesh_iface);
- path_buff[PATH_BUFF_LEN - 1] = '\0';
/* if the specified interface is a VLAN then change the path to point
* to the proper "vlan%{vid}" subfolder in the sysfs tree.
*/
vid = vlan_get_link(mesh_iface, &base_dev);
- if (vid >= 0) {
+ if (vid >= 0)
snprintf(path_buff, PATH_BUFF_LEN, SYS_VLAN_PATH, base_dev, vid);
- path_buff[PATH_BUFF_LEN - 1] = '\0';
- }
if (argc == 1) {
res = read_file(path_buff, (char *)batctl_settings[setting].sysfs_name,
@@ -476,7 +467,6 @@
path_buff = malloc(PATH_BUFF_LEN);
snprintf(path_buff, PATH_BUFF_LEN, SYS_BATIF_PATH_FMT, mesh_iface);
- path_buff[PATH_BUFF_LEN - 1] = '\0';
if (argc == 1) {
res = read_file(path_buff, SYS_GW_MODE, USE_READ_BUFF, 0, 0, 0);
@@ -586,7 +576,6 @@
snprintf(path_buff, PATH_BUFF_LEN, SYS_VLAN_PATH, base_dev, vid);
else
snprintf(path_buff, PATH_BUFF_LEN, SYS_BATIF_PATH_FMT, mesh_iface);
- path_buff[PATH_BUFF_LEN - 1] = '\0';
/* try to open the mesh sys directory */
dir = opendir(path_buff);
@@ -610,7 +599,6 @@
/* check if this device actually belongs to the mesh interface */
snprintf(path_buff, sizeof(path_buff), SYS_MESH_IFACE_FMT, hard_iface);
- path_buff[sizeof(path_buff) - 1] = '\0';
res = read_file("", path_buff, USE_READ_BUFF | SILENCE_ERRORS, 0, 0, 0);
if (res != EXIT_SUCCESS) {
fprintf(stderr, "Error - the directory '%s' could not be read: %s\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/sys.h new/batctl-2015.0/sys.h
--- old/batctl-2014.4.0/sys.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/sys.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/tcpdump.c new/batctl-2015.0/tcpdump.c
--- old/batctl-2014.4.0/tcpdump.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/tcpdump.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Andreas Langer <an.langer(a)gmx.de>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/tcpdump.h new/batctl-2015.0/tcpdump.h
--- old/batctl-2014.4.0/tcpdump.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/tcpdump.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Andreas Langer <an.langer(a)gmx.de>, Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/traceroute.c new/batctl-2015.0/traceroute.c
--- old/batctl-2014.4.0/traceroute.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/traceroute.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Andreas Langer <an.langer(a)gmx.de>, Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/traceroute.h new/batctl-2015.0/traceroute.h
--- old/batctl-2014.4.0/traceroute.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/traceroute.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/translate.c new/batctl-2015.0/translate.c
--- old/batctl-2014.4.0/translate.c 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/translate.c 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
*
* Andreas Langer <an.langer(a)gmx.de>, Marek Lindner <mareklindner(a)neomailbox.ch>
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/batctl-2014.4.0/translate.h new/batctl-2015.0/translate.h
--- old/batctl-2014.4.0/translate.h 2014-11-16 06:41:28.000000000 +0100
+++ new/batctl-2015.0/translate.h 2015-04-26 13:32:22.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2014 B.A.T.M.A.N. contributors:
+ * Copyright (C) 2009-2015 B.A.T.M.A.N. contributors:
*
* Marek Lindner <mareklindner(a)neomailbox.ch>
*
[View Less]
1
0
Hello community,
here is the log from the commit of package python-cliff for openSUSE:Factory checked in at 2015-08-01 11:37:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cliff (Old)
and /work/SRC/openSUSE:Factory/.python-cliff.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cliff"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cliff/python-cliff.…
[View More]changes 2015-03-11 09:58:41.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-cliff.new/python-cliff.changes 2015-08-01 11:37:03.000000000 +0200
@@ -1,0 +2,19 @@
+Fri Jul 24 20:51:29 UTC 2015 - seife+obs(a)b1-systems.com
+
+- Fix build for RHEL7 by nulling test requirements
+
+-------------------------------------------------------------------
+Tue Jun 23 08:16:36 UTC 2015 - dmueller(a)suse.com
+
+- update to 1.13.0:
+ * Fix object has no attribute debug error
+ * Add some docs for list value formatter
+ * Add value format for list command
+ * Updated from global requirements
+ * Remove run_cross_tests.sh
+ * fix author contact details
+ * Print help on help command
+ * Do not check requirements when loading plugins
+- add relax-sphinx-requirement.patch
+
+-------------------------------------------------------------------
Old:
----
cliff-1.10.1.tar.gz
New:
----
cliff-1.13.0.tar.gz
relax-sphinx-requirement.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-cliff.spec ++++++
--- /var/tmp/diff_new_pack.SLHfDH/_old 2015-08-01 11:37:03.000000000 +0200
+++ /var/tmp/diff_new_pack.SLHfDH/_new 2015-08-01 11:37:03.000000000 +0200
@@ -17,13 +17,14 @@
Name: python-cliff
-Version: 1.10.1
+Version: 1.13.0
Release: 0
Url: https://github.com/dreamhost/cliff
Summary: Command Line Interface Formulation Framework
License: Apache-2.0
Group: Development/Languages/Python
Source: http://pypi.python.org/packages/source/c/cliff/cliff-%{version}.tar.gz
+Patch0: relax-sphinx-requirement.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-argparse
BuildRequires: python-devel
@@ -75,6 +76,7 @@
%prep
%setup -q -n cliff-%{version}
+%patch0
%build
python setup.py build
@@ -84,6 +86,8 @@
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
%check
+echo > test-requirements.txt
+echo > requirements.txt
python setup.py test
%files
++++++ cliff-1.10.1.tar.gz -> cliff-1.13.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/AUTHORS new/cliff-1.13.0/AUTHORS
--- old/cliff-1.10.1/AUTHORS 2015-03-09 14:58:50.000000000 +0100
+++ new/cliff-1.13.0/AUTHORS 2015-06-09 18:23:57.000000000 +0200
@@ -1,4 +1,5 @@
Andrea Frittoli <andrea.frittoli(a)hp.com>
+Andrew Spiers <andrew(a)andrewspiers.net>
Cedric Brandily <zzelle(a)gmail.com>
ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
Christian Berendt <berendt(a)b1-systems.de>
@@ -26,6 +27,7 @@
Sascha Peilicke <saschpe(a)gmx.de>
Terry Howe <terrylhowe(a)gmail.com>
TerryHowe <terrylhowe(a)gmail.com>
+Thomas Bechtold <tbechtold(a)suse.com>
Tomaz Muraus <tomaz(a)tomaz.me>
Yalei Wang <yalei.wang(a)intel.com>
heavenshell <heavenshell.jp(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/ChangeLog new/cliff-1.13.0/ChangeLog
--- old/cliff-1.10.1/ChangeLog 2015-03-09 14:58:50.000000000 +0100
+++ new/cliff-1.13.0/ChangeLog 2015-06-09 18:23:57.000000000 +0200
@@ -1,9 +1,37 @@
CHANGES
=======
+1.13.0
+------
+
+* Fix object has no attribute debug error
+* Add some docs for list value formatter
+* Add value format for list command
+* Updated from global requirements
+* Remove run_cross_tests.sh
+* fix author contact details
+* Print help on help command
+
+1.12.0
+------
+
+* Do not check requirements when loading plugins
+
+1.11.0
+------
+
+* Catch and ignore error when locale can not be set
+* Uncap library requirements for liberty
+* Add documentation for the value formatter
+* Sort the fuzzy matches
+* Defer interactive import
+* Updated from global requirements
+* Update links to setuptools doc
+
1.10.1
------
+* Pass user command text to the Command object
* Document print_help_if_requested method
1.10.0
@@ -12,6 +40,7 @@
* Allow to call initialize_app when running --help
* Hide prompt in batch/pipe mode
* Correct completion in interactive mode
+* Change the argument passed to __init__ for help
* Fix pep8 tests for lambda
* Updated from global requirements
* Fix git repo urls in tox.ini
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/PKG-INFO new/cliff-1.13.0/PKG-INFO
--- old/cliff-1.10.1/PKG-INFO 2015-03-09 14:58:50.000000000 +0100
+++ new/cliff-1.13.0/PKG-INFO 2015-06-09 18:23:57.000000000 +0200
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: cliff
-Version: 1.10.1
+Version: 1.13.0
Summary: Command Line Interface Formulation Framework
Home-page: https://launchpad.net/python-cliff
-Author: Doug Hellmann
-Author-email: doug.hellmann(a)dreamhost.com
+Author: OpenStack
+Author-email: openstack-dev(a)lists.openstack.org
License: UNKNOWN
Description: =======================================================
cliff -- Command Line Interface Formulation Framework
@@ -14,7 +14,7 @@
`setuptools entry points`_ to provide subcommands, output formatters, and
other extensions.
- .. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api
+ .. _setuptools entry points: http://pythonhosted.org/setuptools/pkg_resources.html#convenience-api
* Free software: Apache license
* Documentation: http://docs.openstack.org/developer/cliff
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/README.rst new/cliff-1.13.0/README.rst
--- old/cliff-1.10.1/README.rst 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/README.rst 2015-06-09 18:23:37.000000000 +0200
@@ -6,7 +6,7 @@
`setuptools entry points`_ to provide subcommands, output formatters, and
other extensions.
-.. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api
+.. _setuptools entry points: http://pythonhosted.org/setuptools/pkg_resources.html#convenience-api
* Free software: Apache license
* Documentation: http://docs.openstack.org/developer/cliff
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff/app.py new/cliff-1.13.0/cliff/app.py
--- old/cliff-1.10.1/cliff/app.py 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/cliff/app.py 2015-06-09 18:23:37.000000000 +0200
@@ -3,6 +3,7 @@
import argparse
import codecs
+import inspect
import locale
import logging
import logging.handlers
@@ -11,7 +12,6 @@
from .complete import CompleteCommand
from .help import HelpAction, HelpCommand
-from .interactive import InteractiveApp
# Make sure the cliff library has a logging handler
# in case the app developer doesn't set up logging.
@@ -64,7 +64,7 @@
def __init__(self, description, version, command_manager,
stdin=None, stdout=None, stderr=None,
- interactive_app_factory=InteractiveApp,
+ interactive_app_factory=None,
deferred_help=False):
"""Initialize the application.
"""
@@ -79,7 +79,10 @@
self.interpreter = None
def _set_streams(self, stdin, stdout, stderr):
- locale.setlocale(locale.LC_ALL, '')
+ try:
+ locale.setlocale(locale.LC_ALL, '')
+ except locale.Error:
+ pass
if sys.version_info[:2] == (2, 6):
# Configure the input and output streams. If a stream is
# provided, it must be configured correctly by the
@@ -206,7 +209,7 @@
"""
if self.deferred_help and self.options.deferred_help:
action = HelpAction(None, None, default=self)
- action(self.parser, self.parser, None, None)
+ action(self.parser, self.options, None, None)
def run(self, argv):
"""Equivalent to the main program for the application.
@@ -271,6 +274,11 @@
return
def interact(self):
+ # Defer importing .interactive as cmd2 is a slow import
+ from .interactive import InteractiveApp
+
+ if self.interactive_app_factory is None:
+ self.interactive_app_factory = InteractiveApp
self.interpreter = self.interactive_app_factory(self,
self.command_manager,
self.stdin,
@@ -289,7 +297,10 @@
self.LOG.error(err)
return 2
cmd_factory, cmd_name, sub_argv = subcommand
- cmd = cmd_factory(self, self.options)
+ kwargs = {}
+ if 'cmd_name' in inspect.getargspec(cmd_factory.__init__).args:
+ kwargs['cmd_name'] = cmd_name
+ cmd = cmd_factory(self, self.options, **kwargs)
err = None
result = 1
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff/command.py new/cliff-1.13.0/cliff/command.py
--- old/cliff-1.10.1/cliff/command.py 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/cliff/command.py 2015-06-09 18:23:37.000000000 +0200
@@ -16,9 +16,10 @@
deprecated = False
- def __init__(self, app, app_args):
+ def __init__(self, app, app_args, cmd_name=None):
self.app = app
self.app_args = app_args
+ self.cmd_name = cmd_name
return
def get_description(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff/commandmanager.py new/cliff-1.13.0/cliff/commandmanager.py
--- old/cliff-1.10.1/cliff/commandmanager.py 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/cliff/commandmanager.py 2015-06-09 18:23:37.000000000 +0200
@@ -1,6 +1,7 @@
"""Discover and lookup command plugins.
"""
+import inspect
import logging
import pkg_resources
@@ -17,7 +18,7 @@
self.name = name
self.command_class = command_class
- def load(self):
+ def load(self, require=False):
return self.command_class
@@ -70,7 +71,16 @@
name = '%s %s' % (name, next_val) if name else next_val
if name in self.commands:
cmd_ep = self.commands[name]
- cmd_factory = cmd_ep.load()
+ if hasattr(cmd_ep, 'resolve'):
+ cmd_factory = cmd_ep.resolve()
+ else:
+ # NOTE(dhellmann): Some fake classes don't take
+ # require as an argument. Yay?
+ arg_spec = inspect.getargspec(cmd_ep.load)
+ if 'require' in arg_spec[0]:
+ cmd_factory = cmd_ep.load(require=False)
+ else:
+ cmd_factory = cmd_ep.load()
return (cmd_factory, name, search_args)
else:
raise ValueError('Unknown command %r' %
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff/display.py new/cliff-1.13.0/cliff/display.py
--- old/cliff-1.10.1/cliff/display.py 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/cliff/display.py 2015-06-09 18:23:37.000000000 +0200
@@ -27,8 +27,9 @@
"""Command base class for displaying data about a single object.
"""
- def __init__(self, app, app_args):
- super(DisplayCommandBase, self).__init__(app, app_args)
+ def __init__(self, app, app_args, cmd_name=None):
+ super(DisplayCommandBase, self).__init__(app, app_args,
+ cmd_name=cmd_name)
self._formatter_plugins = self._load_formatter_plugins()
@abc.abstractproperty
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff/formatters/value.py new/cliff-1.13.0/cliff/formatters/value.py
--- old/cliff-1.10.1/cliff/formatters/value.py 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/cliff/formatters/value.py 2015-06-09 18:23:37.000000000 +0200
@@ -1,14 +1,22 @@
"""Output formatters values only
"""
+import six
+
+from .base import ListFormatter
from .base import SingleFormatter
-class ValueFormatter(SingleFormatter):
+class ValueFormatter(ListFormatter, SingleFormatter):
def add_argument_group(self, parser):
pass
+ def emit_list(self, column_names, data, stdout, parsed_args):
+ for row in data:
+ stdout.write(' '.join(map(six.text_type, row)) + u'\n')
+ return
+
def emit_one(self, column_names, data, stdout, parsed_args):
for value in data:
stdout.write('%s\n' % str(value))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff/help.py new/cliff-1.13.0/cliff/help.py
--- old/cliff-1.10.1/cliff/help.py 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/cliff/help.py 2015-06-09 18:23:37.000000000 +0200
@@ -67,16 +67,18 @@
if not fuzzy_matches:
raise
self.app.stdout.write('Command "%s" matches:\n' % cmd)
- for fm in fuzzy_matches:
+ for fm in sorted(fuzzy_matches):
self.app.stdout.write(' %s\n' % fm)
return
- cmd = cmd_factory(self.app, search_args)
+ self.app_args.cmd = search_args
+ cmd = cmd_factory(self.app, self.app_args)
full_name = (cmd_name
if self.app.interactive_mode
else ' '.join([self.app.NAME, cmd_name])
)
cmd_parser = cmd.get_parser(full_name)
else:
- cmd_parser = self.get_parser(' '.join([self.app.NAME, 'help']))
+ action = HelpAction(None, None, default=self.app)
+ action(self.app.parser, self.app.parser, None, None)
cmd_parser.print_help(self.app.stdout)
return 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff/tests/test_command.py new/cliff-1.13.0/cliff/tests/test_command.py
--- old/cliff-1.10.1/cliff/tests/test_command.py 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/cliff/tests/test_command.py 2015-06-09 18:23:37.000000000 +0200
@@ -20,3 +20,8 @@
cmd = TestCommand(None, None)
parser = cmd.get_parser('NAME')
assert parser.prog == 'NAME'
+
+
+def test_get_name():
+ cmd = TestCommand(None, None, cmd_name='object action')
+ assert cmd.cmd_name == 'object action'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff/tests/test_formatters_value.py new/cliff-1.13.0/cliff/tests/test_formatters_value.py
--- old/cliff-1.10.1/cliff/tests/test_formatters_value.py 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/cliff/tests/test_formatters_value.py 2015-06-09 18:23:37.000000000 +0200
@@ -13,3 +13,16 @@
sf.emit_one(c, d, output, None)
actual = output.getvalue()
assert expected == actual
+
+
+def test_value_list_formatter():
+ sf = value.ValueFormatter()
+ c = ('a', 'b', 'c')
+ d1 = ('A', 'B', 'C')
+ d2 = ('D', 'E', 'F')
+ data = [d1, d2]
+ expected = 'A B C\nD E F\n'
+ output = StringIO()
+ sf.emit_list(c, data, output, None)
+ actual = output.getvalue()
+ assert expected == actual
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff/tests/test_help.py new/cliff-1.13.0/cliff/tests/test_help.py
--- old/cliff-1.10.1/cliff/tests/test_help.py 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/cliff/tests/test_help.py 2015-06-09 18:23:37.000000000 +0200
@@ -47,8 +47,7 @@
pass
help_output = stdout.getvalue()
assert 'Command "t" matches:' in help_output
- assert 'two' in help_output
- assert 'three' in help_output
+ assert 'three word command\n two words\n' in help_output
def test_list_matching_commands_no_match():
@@ -90,7 +89,9 @@
except SystemExit:
pass
help_text = stdout.getvalue()
- assert 'usage: test help [-h]' in help_text
+ assert 'usage: nosetests [--version]' in help_text
+ assert 'optional arguments:\n --version' in help_text
+ assert 'one \n three word command \n' in help_text
def test_list_deprecated_commands():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff.egg-info/PKG-INFO new/cliff-1.13.0/cliff.egg-info/PKG-INFO
--- old/cliff-1.10.1/cliff.egg-info/PKG-INFO 2015-03-09 14:58:50.000000000 +0100
+++ new/cliff-1.13.0/cliff.egg-info/PKG-INFO 2015-06-09 18:23:57.000000000 +0200
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: cliff
-Version: 1.10.1
+Version: 1.13.0
Summary: Command Line Interface Formulation Framework
Home-page: https://launchpad.net/python-cliff
-Author: Doug Hellmann
-Author-email: doug.hellmann(a)dreamhost.com
+Author: OpenStack
+Author-email: openstack-dev(a)lists.openstack.org
License: UNKNOWN
Description: =======================================================
cliff -- Command Line Interface Formulation Framework
@@ -14,7 +14,7 @@
`setuptools entry points`_ to provide subcommands, output formatters, and
other extensions.
- .. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api
+ .. _setuptools entry points: http://pythonhosted.org/setuptools/pkg_resources.html#convenience-api
* Free software: Apache license
* Documentation: http://docs.openstack.org/developer/cliff
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff.egg-info/SOURCES.txt new/cliff-1.13.0/cliff.egg-info/SOURCES.txt
--- old/cliff-1.10.1/cliff.egg-info/SOURCES.txt 2015-03-09 14:58:50.000000000 +0100
+++ new/cliff-1.13.0/cliff.egg-info/SOURCES.txt 2015-06-09 18:23:57.000000000 +0200
@@ -73,5 +73,4 @@
integration-tests/neutronclient-stable.sh
integration-tests/neutronclient-tip.sh
integration-tests/openstackclient-stable.sh
-integration-tests/openstackclient-tip.sh
-tools/run_cross_tests.sh
\ No newline at end of file
+integration-tests/openstackclient-tip.sh
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff.egg-info/entry_points.txt new/cliff-1.13.0/cliff.egg-info/entry_points.txt
--- old/cliff-1.10.1/cliff.egg-info/entry_points.txt 2015-03-09 14:58:50.000000000 +0100
+++ new/cliff-1.13.0/cliff.egg-info/entry_points.txt 2015-06-09 18:23:57.000000000 +0200
@@ -5,6 +5,7 @@
[cliff.formatter.list]
csv = cliff.formatters.commaseparated:CSVLister
table = cliff.formatters.table:TableFormatter
+value = cliff.formatters.value:ValueFormatter
[cliff.formatter.show]
shell = cliff.formatters.shell:ShellFormatter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff.egg-info/pbr.json new/cliff-1.13.0/cliff.egg-info/pbr.json
--- old/cliff-1.10.1/cliff.egg-info/pbr.json 2015-03-09 14:58:50.000000000 +0100
+++ new/cliff-1.13.0/cliff.egg-info/pbr.json 2015-06-09 18:23:57.000000000 +0200
@@ -1 +1 @@
-{"git_version": "b703ad3", "is_release": true}
\ No newline at end of file
+{"git_version": "bff7d6b", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/cliff.egg-info/requires.txt new/cliff-1.13.0/cliff.egg-info/requires.txt
--- old/cliff-1.10.1/cliff.egg-info/requires.txt 2015-03-09 14:58:50.000000000 +0100
+++ new/cliff-1.13.0/cliff.egg-info/requires.txt 2015-06-09 18:23:57.000000000 +0200
@@ -1,7 +1,7 @@
-pbr>=0.6,!=0.7,<1.0
+pbr>=0.11,<2.0
argparse
cmd2>=0.6.7
PrettyTable>=0.7,<0.8
pyparsing>=2.0.1
six>=1.9.0
-stevedore>=1.1.0 # Apache-2.0
+stevedore>=1.3.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/doc/source/introduction.rst new/cliff-1.13.0/doc/source/introduction.rst
--- old/cliff-1.10.1/doc/source/introduction.rst 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/doc/source/introduction.rst 2015-06-09 18:23:37.000000000 +0200
@@ -59,6 +59,6 @@
applications will be able to use the default implementation of
:class:`InteractiveApp` without subclassing it.
-.. _setuptools entry points: http://packages.python.org/distribute/setuptools.html
+.. _setuptools entry points: https://pythonhosted.org/setuptools/pkg_resources.html#entry-points
.. _argparse: http://docs.python.org/library/argparse.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/doc/source/list_commands.rst new/cliff-1.13.0/doc/source/list_commands.rst
--- old/cliff-1.10.1/doc/source/list_commands.rst 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/doc/source/list_commands.rst 2015-06-09 18:23:37.000000000 +0200
@@ -63,6 +63,33 @@
| source | 408 |
+---------------+------+
+value
+-----
+
+The ``value`` formatter produces a space separated output with no headers.
+
+::
+
+ (.venv)$ cliffdemo files -f value
+ build 136
+ cliffdemo.log 2690
+ Makefile 5569
+ source 408
+
+This format can be very convenient when you want to pipe the output to
+a script.
+
+::
+
+ (.venv)$ cliffdemo files -f value | while read NAME SIZE
+ do
+ echo $NAME is $SIZE bytes
+ done
+ build is 136 bytes
+ cliffdemo.log is 2690 bytes
+ Makefile is 5569 bytes
+ source is 408 bytes
+
Other Formatters
----------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/doc/source/show_commands.rst new/cliff-1.13.0/doc/source/show_commands.rst
--- old/cliff-1.10.1/doc/source/show_commands.rst 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/doc/source/show_commands.rst 2015-06-09 18:23:37.000000000 +0200
@@ -28,6 +28,27 @@
specify the formatter they want, so you don't have to do any extra
work in your application.
+table
+-----
+
+The ``table`` formatter uses PrettyTable_ to produce output
+formatted for human consumption. This is the default formatter.
+
+.. _PrettyTable: http://code.google.com/p/prettytable/
+
+::
+
+ (.venv)$ cliffdemo file setup.py
+ +---------------+--------------+
+ | Field | Value |
+ +---------------+--------------+
+ | Name | setup.py |
+ | Size | 5825 |
+ | UID | 502 |
+ | GID | 20 |
+ | Modified Time | 1335569964.0 |
+ +---------------+--------------+
+
shell
-----
@@ -48,26 +69,19 @@
(.venv)$ echo $example_size
5916
-table
+value
-----
-The ``table`` formatter uses PrettyTable_ to produce output
-formatted for human consumption.
-
-.. _PrettyTable: http://code.google.com/p/prettytable/
+The ``value`` formatter produces output that only contains the
+value of the field or fields.
::
- (.venv)$ cliffdemo file setup.py
- +---------------+--------------+
- | Field | Value |
- +---------------+--------------+
- | Name | setup.py |
- | Size | 5825 |
- | UID | 502 |
- | GID | 20 |
- | Modified Time | 1335569964.0 |
- +---------------+--------------+
+ (.venv)$ cliffdemo file -f value -c Size setup.py
+ 5916
+ (.venv)$ SIZE="$(cliffdemo file -f value -c Size setup.py)"
+ (.venv)$ echo $SIZE
+ 5916
Other Formatters
----------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/requirements.txt new/cliff-1.13.0/requirements.txt
--- old/cliff-1.10.1/requirements.txt 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/requirements.txt 2015-06-09 18:23:37.000000000 +0200
@@ -1,10 +1,10 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-pbr>=0.6,!=0.7,<1.0
+pbr>=0.11,<2.0
argparse
cmd2>=0.6.7
PrettyTable>=0.7,<0.8
pyparsing>=2.0.1
six>=1.9.0
-stevedore>=1.1.0 # Apache-2.0
+stevedore>=1.3.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/setup.cfg new/cliff-1.13.0/setup.cfg
--- old/cliff-1.10.1/setup.cfg 2015-03-09 14:58:50.000000000 +0100
+++ new/cliff-1.13.0/setup.cfg 2015-06-09 18:23:57.000000000 +0200
@@ -1,8 +1,8 @@
[metadata]
name = cliff
description-file = README.rst
-author = Doug Hellmann
-author-email = doug.hellmann(a)dreamhost.com
+author = OpenStack
+author-email = openstack-dev(a)lists.openstack.org
summary = Command Line Interface Formulation Framework
home-page = https://launchpad.net/python-cliff
classifier =
@@ -29,6 +29,7 @@
cliff.formatter.list =
table = cliff.formatters.table:TableFormatter
csv = cliff.formatters.commaseparated:CSVLister
+ value = cliff.formatters.value:ValueFormatter
cliff.formatter.show =
table = cliff.formatters.table:TableFormatter
shell = cliff.formatters.shell:ShellFormatter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/test-requirements.txt new/cliff-1.13.0/test-requirements.txt
--- old/cliff-1.10.1/test-requirements.txt 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/test-requirements.txt 2015-06-09 18:23:37.000000000 +0200
@@ -6,5 +6,5 @@
coverage>=3.6
# this is required for the docs build jobs
sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3
-oslosphinx>=2.2.0 # Apache-2.0
+oslosphinx>=2.5.0 # Apache-2.0
httplib2>=0.7.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.10.1/tools/run_cross_tests.sh new/cliff-1.13.0/tools/run_cross_tests.sh
--- old/cliff-1.10.1/tools/run_cross_tests.sh 2015-03-09 14:58:33.000000000 +0100
+++ new/cliff-1.13.0/tools/run_cross_tests.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,70 +0,0 @@
-#!/bin/bash
-#
-# Run cross-project tests
-
-# Fail the build if any command fails
-set -e
-
-project_dir="$1"
-venv="$2"
-
-# Set up the virtualenv without running the tests
-(cd $project_dir && tox --notest -e $venv)
-
-tox_envbin=$project_dir/.tox/$venv/bin
-
-our_name=$(python setup.py --name)
-
-# Replace the pip-installed package with the version in our source
-# tree. Look to see if we are already installed before trying to
-# uninstall ourselves, to avoid failures from packages that do not use us
-# yet.
-if $tox_envbin/pip freeze | grep -q $our_name
-then
- $tox_envbin/pip uninstall -y $our_name
-fi
-$tox_envbin/pip install -U .
-
-# Run the tests
-(cd $project_dir && tox -e $venv)
-result=$?
-
-
-# The below checks are modified from
-# openstack-infra/config/modules/jenkins/files/slave_scripts/run-unittests.sh.
-
-# They expect to be run in the project being tested.
-cd $project_dir
-
-echo "Begin pip freeze output from test virtualenv:"
-echo "======================================================================"
-.tox/$venv/bin/pip freeze
-echo "======================================================================"
-
-# We only want to run the next check if the tool is installed, so look
-# for it before continuing.
-if [ -f /usr/local/jenkins/slave_scripts/subunit2html.py -a -d ".testrepository" ] ; then
- if [ -f ".testrepository/0.2" ] ; then
- cp .testrepository/0.2 ./subunit_log.txt
- elif [ -f ".testrepository/0" ] ; then
- .tox/$venv/bin/subunit-1to2 < .testrepository/0 > ./subunit_log.txt
- fi
- .tox/$venv/bin/python /usr/local/jenkins/slave_scripts/subunit2html.py ./subunit_log.txt testr_results.html
- gzip -9 ./subunit_log.txt
- gzip -9 ./testr_results.html
-
- export PYTHON=.tox/$venv/bin/python
- set -e
- rancount=$(.tox/$venv/bin/testr last | sed -ne 's/Ran \([0-9]\+\).*tests in.*/\1/p')
- if [ "$rancount" -eq "0" ] ; then
- echo
- echo "Zero tests were run. At least one test should have been run."
- echo "Failing this test as a result"
- echo
- exit 1
- fi
-fi
-
-# If we make it this far, report status based on the tests that were
-# run.
-exit $result
++++++ relax-sphinx-requirement.patch ++++++
--- test-requirements.txt
+++ test-requirements.txt
@@ -5,6 +5,6 @@
mock>=1.0
coverage>=3.6
# this is required for the docs build jobs
-sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3
+sphinx
oslosphinx>=2.5.0 # Apache-2.0
httplib2>=0.7.5
[View Less]
1
0