openSUSE Commits
Threads by month
- ----- 2025 -----
- 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
April 2014
- 1 participants
- 1084 discussions
Hello community,
here is the log from the commit of package wireshark for openSUSE:Factory checked in at 2014-04-25 11:35:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wireshark (Old)
and /work/SRC/openSUSE:Factory/.wireshark.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wireshark"
Changes:
--------
--- /work/SRC/openSUSE:Factory/wireshark/wireshark.changes 2014-03-09 20:28:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.wireshark.new/wireshark.changes 2014-04-25 11:35:30.000000000 +0200
@@ -1,0 +2,10 @@
+Wed Apr 23 17:57:54 UTC 2014 - andreas.stieger(a)gmx.de
+
+- update to 1.10.7 [bnc#874760]
+ + vulnerabilities fixed:
+ * The RTP dissector could crash
+ wnpa-sec-2014-06 CVE-2014-2907
+ + Further bug fixes and updated protocol support as listed in:
+ https://www.wireshark.org/docs/relnotes/wireshark-1.10.7.html
+
+-------------------------------------------------------------------
Old:
----
SIGNATURES-1.10.6.txt
wireshark-1.10.6.tar.bz2
New:
----
SIGNATURES-1.10.7.txt
wireshark-1.10.7.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wireshark.spec ++++++
--- /var/tmp/diff_new_pack.Wp2631/_old 2014-04-25 11:35:31.000000000 +0200
+++ /var/tmp/diff_new_pack.Wp2631/_new 2014-04-25 11:35:31.000000000 +0200
@@ -23,7 +23,7 @@
%define use_gtk3 0
Name: wireshark
-Version: 1.10.6
+Version: 1.10.7
Release: 0
Summary: A Network Traffic Analyser
License: GPL-2.0+ and GPL-3.0+
++++++ SIGNATURES-1.10.6.txt -> SIGNATURES-1.10.7.txt ++++++
--- /work/SRC/openSUSE:Factory/wireshark/SIGNATURES-1.10.6.txt 2014-03-09 20:28:34.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.wireshark.new/SIGNATURES-1.10.7.txt 2014-04-25 11:35:29.000000000 +0200
@@ -1,49 +1,49 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-wireshark-1.10.6.tar.bz2: 26719003 bytes
-MD5(wireshark-1.10.6.tar.bz2)=c67435039d67ef1757bfff0ab88824ab
-SHA1(wireshark-1.10.6.tar.bz2)=081a2daf85e3257d7a2699e84a330712e3e5b9bb
-RIPEMD160(wireshark-1.10.6.tar.bz2)=3018f4d60d1ac86dfffd875a53373c85f5be44e8
-
-Wireshark-win64-1.10.6.exe: 27997568 bytes
-MD5(Wireshark-win64-1.10.6.exe)=e8f43d082c9e231d2e26ab425c813024
-SHA1(Wireshark-win64-1.10.6.exe)=b80d3ac8f5d5a8a117791e04f5dab535082a3b26
-RIPEMD160(Wireshark-win64-1.10.6.exe)=965df3d1d1d53651c92119215e8d3313b824567b
-
-Wireshark-win32-1.10.6.exe: 22144296 bytes
-MD5(Wireshark-win32-1.10.6.exe)=dbd18f81ddfc2b9ce7d9dafbb867c839
-SHA1(Wireshark-win32-1.10.6.exe)=677089c75cb133481d28e99c4a18d5fcc9cdde2d
-RIPEMD160(Wireshark-win32-1.10.6.exe)=0a66f96cb9a38e5d95394939afdbf87e52ad550b
-
-Wireshark-1.10.6.u3p: 30626145 bytes
-MD5(Wireshark-1.10.6.u3p)=b2e091e1ed46892c786499aa99a4370d
-SHA1(Wireshark-1.10.6.u3p)=b729564b9f2ba91b0506b8745c7ae6d251b163b0
-RIPEMD160(Wireshark-1.10.6.u3p)=48a6d9f6cd95992cf8a0b5258a3b70f7115e8507
-
-WiresharkPortable-1.10.6.paf.exe: 23510304 bytes
-MD5(WiresharkPortable-1.10.6.paf.exe)=5521237175d8e6c49d657739d18ff7c6
-SHA1(WiresharkPortable-1.10.6.paf.exe)=bcd9d4456e201ccbc1ff4099920d86a6c4fc6394
-RIPEMD160(WiresharkPortable-1.10.6.paf.exe)=6ae8d157fb52f55122d357e9cf2d96c98a7f7656
-
-Wireshark 1.10.6 Intel 32.dmg: 20440930 bytes
-MD5(Wireshark 1.10.6 Intel 32.dmg)=676dba2204867b2eea02e4538369f805
-SHA1(Wireshark 1.10.6 Intel 32.dmg)=883aa4f8a295d2d81a86ea1489e5ee5afea20345
-RIPEMD160(Wireshark 1.10.6 Intel 32.dmg)=2a4656286f9c9069e25b05bcee53f1ab7143859d
-
-Wireshark 1.10.6 Intel 64.dmg: 24759668 bytes
-MD5(Wireshark 1.10.6 Intel 64.dmg)=2b7869244d5be26b1c041789fa734702
-SHA1(Wireshark 1.10.6 Intel 64.dmg)=2e03a4ee893ccf1f6bd27a665ace99bdd9b78c98
-RIPEMD160(Wireshark 1.10.6 Intel 64.dmg)=c70679036eb3cdc8edc3774e6ed0ef22ac4f65aa
-
-patch-wireshark-1.10.5-to-1.10.6.bz2: 522044 bytes
-MD5(patch-wireshark-1.10.5-to-1.10.6.bz2)=4ed579c3ddb27818f020c2a213d7cd08
-SHA1(patch-wireshark-1.10.5-to-1.10.6.bz2)=b32555c43935c537b1602277f978b9c421acb83d
-RIPEMD160(patch-wireshark-1.10.5-to-1.10.6.bz2)=f85b7f2eab0945ef808edbb483cb1f24ded5db24
+wireshark-1.10.7.tar.bz2: 26711577 bytes
+MD5(wireshark-1.10.7.tar.bz2)=0e8a111d24c11255eae139c8f27fd25b
+SHA1(wireshark-1.10.7.tar.bz2)=5e5ce4fdc9aa53e545fc0fbd22eea6adcf7dfc0b
+RIPEMD160(wireshark-1.10.7.tar.bz2)=67fcd4cce612a5af705e1db5a57549444d4c4e57
+
+Wireshark-win32-1.10.7.exe: 22150416 bytes
+MD5(Wireshark-win32-1.10.7.exe)=9de8117b2c92331b704f144eaded26b4
+SHA1(Wireshark-win32-1.10.7.exe)=6eaf0e877f5e40ccffff64d2f97bc7b09c13bcce
+RIPEMD160(Wireshark-win32-1.10.7.exe)=8fb78374e77a3d7f9e1f70b2f76f9530621cfdf2
+
+Wireshark-win64-1.10.7.exe: 28001672 bytes
+MD5(Wireshark-win64-1.10.7.exe)=b7ae72bd50159e33b7aacb7dedc09977
+SHA1(Wireshark-win64-1.10.7.exe)=23b543c4de03d5deb6b103d52bbc4b07df0741c2
+RIPEMD160(Wireshark-win64-1.10.7.exe)=aa2f1d59b0417fafcbfddf42aad20c7ee749e43e
+
+Wireshark-1.10.7.u3p: 30631544 bytes
+MD5(Wireshark-1.10.7.u3p)=32ec656b07f23d066e055b476f6d64b4
+SHA1(Wireshark-1.10.7.u3p)=5bbf40eb7fdab0ac2f9bb5d14f35609eb40aaed9
+RIPEMD160(Wireshark-1.10.7.u3p)=f7ff2695e55ca06ade7600baa86eaccba7277c7f
+
+WiresharkPortable-1.10.7.paf.exe: 23516496 bytes
+MD5(WiresharkPortable-1.10.7.paf.exe)=8ce5fe8f1762607208ebead8bc704173
+SHA1(WiresharkPortable-1.10.7.paf.exe)=cb10074c8d02d2a0c2217fa28228c35173c1b916
+RIPEMD160(WiresharkPortable-1.10.7.paf.exe)=85318a28381fb79af56af71eb70e9bc4986bf7e4
+
+Wireshark 1.10.7 Intel 64.dmg: 24763285 bytes
+MD5(Wireshark 1.10.7 Intel 64.dmg)=e04a2f3d5b323710f1f2b9e5e4d55145
+SHA1(Wireshark 1.10.7 Intel 64.dmg)=2fe915dabf00381173b85d2deac55656db7fcd96
+RIPEMD160(Wireshark 1.10.7 Intel 64.dmg)=b70bb5a03eb046817cd0d79652de7f7e12f06c1f
+
+Wireshark 1.10.7 Intel 32.dmg: 20446527 bytes
+MD5(Wireshark 1.10.7 Intel 32.dmg)=67a159cae5e32d0721d6c7732cf1be18
+SHA1(Wireshark 1.10.7 Intel 32.dmg)=5bc451ec229ff09776e25261cbb8ff1f90f0ad7f
+RIPEMD160(Wireshark 1.10.7 Intel 32.dmg)=81dff628e6478a43f04f76127a390fbc81dc5cdc
+
+patch-wireshark-1.10.6-to-1.10.7.bz2: 88811 bytes
+MD5(patch-wireshark-1.10.6-to-1.10.7.bz2)=9ba40974191c7ad12e93f8f8f81d5f95
+SHA1(patch-wireshark-1.10.6-to-1.10.7.bz2)=443b78939974dea79a1c95b4f652fba4edbead35
+RIPEMD160(patch-wireshark-1.10.6-to-1.10.7.bz2)=31f19c2a382e19de0036c796fbae3ce8e53d27b7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (Darwin)
-iEYEARECAAYFAlMaFXIACgkQpw8IXSHylJo1dwCfTX9M3QgN/g27+hkszkla7Qxj
-38cAni1ru8UxqBApp+orAnDpFphDEYZr
-=CJte
+iEYEARECAAYFAlNWqtIACgkQpw8IXSHylJqBJwCdGO1hBXDTvZ1QvqZzpz19p8+A
+x5kAoMtUE7fRt4pCTeZu8HK9C8TSaNKX
+=Pz9Z
-----END PGP SIGNATURE-----
++++++ wireshark-1.10.6.tar.bz2 -> wireshark-1.10.7.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/wireshark/wireshark-1.10.6.tar.bz2 /work/SRC/openSUSE:Factory/.wireshark.new/wireshark-1.10.7.tar.bz2 differ: char 11, line 1
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-pep8 for openSUSE:Factory checked in at 2014-04-25 11:35:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pep8 (Old)
and /work/SRC/openSUSE:Factory/.python-pep8.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pep8"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pep8/python-pep8.changes 2013-10-25 11:26:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-pep8.new/python-pep8.changes 2014-04-25 11:35:24.000000000 +0200
@@ -1,0 +2,48 @@
+Mon Apr 14 15:40:34 UTC 2014 - dmueller(a)suse.com
+
+- update to 1.5.4:
+ * Fix negative offset with E303 before a multi-line docstring.
+ * Fix wrong offset computation when error is on the last char
+ of a physical line. (Issue #268)
+ * Distribute a universal wheel file.
+ * Report correct line number for E303 with comments. (Issue #60)
+ * Do not allow newline after parameter equal. (Issue #252)
+ * Fix line number reported for multi-line strings. (Issue #220)
+ * Fix false positive E121/E126 with multi-line strings. (Issue #265)
+ * Fix E501 not detected in comments with Python 2.5.
+ * Fix caret position with ``--show-source`` when line contains tabs.
+ * Fix a crash with E125 on multi-line strings. (Issue #263)
+ * Report E129 instead of E125 for visually indented line with same
+ indent as next logical line. (Issue #126)
+ * Report E265 for space before block comment. (Issue #190)
+ * Allow long lines in multiline strings and comments if they cannot
+ be wrapped. (Issue #224).
+ * Optionally disable physical line checks inside multiline strings,
+ using ``# noqa``. (Issue #242)
+ * Change text for E121 to report "continuation line under-indented
+ for hanging indent" instead of indentation not being a
+ multiple of 4.
+ * Report E131 instead of E121 / E126 if the hanging indent is not
+ consistent within the same continuation block. It helps when
+ error E121 or E126 is in the ``ignore`` list.
+ * Report E126 instead of E121 when the continuation line is hanging
+ with extra indentation, even if indentation is not a multiple of 4.
+ * Allow the checkers to report errors on empty files. (Issue #240)
+ * Fix ignoring too many checks when ``--select`` is used with codes
+ declared in a flake8 extension. (Issue #216)
+ * Fix regression with multiple brackets. (Issue #214)
+ * Fix ``StyleGuide`` to parse the local configuration if the
+ keyword argument ``paths`` is specified. (Issue #246)
+ * Fix a false positive E124 for hanging indent. (Issue #254)
+ * Fix a false positive E126 with embedded colon. (Issue #144)
+ * Fix a false positive E126 when indenting with tabs. (Issue #204)
+ * Fix behaviour when ``exclude`` is in the configuration file and
+ the current directory is not the project directory. (Issue #247)
+ * The logical checks can return ``None`` instead of an empty iterator.
+ (Issue #250)
+ * Do not report multiple E101 if only the first indentation starts
+ with a tab. (Issue #237)
+ * Fix a rare false positive W602. (Issue #34)
+- remove no-tox-test.diff
+
+-------------------------------------------------------------------
@@ -4,0 +53,6 @@
+
+-------------------------------------------------------------------
+Fri Oct 18 16:54:53 UTC 2013 - dmueller(a)suse.com
+
+- add 0001-reverted-fix-for-issue-204-added-check-for-214.patch:
+ * Add fix for regression in 1.4.6
Old:
----
no-tox-test.diff
pep8-1.4.6.tar.gz
New:
----
pep8-1.5.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pep8.spec ++++++
--- /var/tmp/diff_new_pack.wDMP0C/_old 2014-04-25 11:35:24.000000000 +0200
+++ /var/tmp/diff_new_pack.wDMP0C/_new 2014-04-25 11:35:24.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pep8
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,16 +17,13 @@
Name: python-pep8
-Version: 1.4.6
+Version: 1.5.4
Release: 0
Url: http://github.com/jcrocholl/pep8
Summary: Python style guide checker
License: MIT
Group: Development/Languages/Python
Source: http://pypi.python.org/packages/source/p/pep8/pep8-%{version}.tar.gz
-# PATCH-FIX-OPENSUSE: speilicke(a)suse.com -- Upstream forgot tox.init in sdist
-# release, seems to be present in never codebase
-Patch0: no-tox-test.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
BuildRequires: python-devel
@@ -44,7 +41,6 @@
%prep
%setup -q -n pep8-%{version}
-%patch0
%build
python setup.py build
++++++ pep8-1.4.6.tar.gz -> pep8-1.5.4.tar.gz ++++++
++++ 2938 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python3-flake8 for openSUSE:Factory checked in at 2014-04-25 11:35:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-flake8 (Old)
and /work/SRC/openSUSE:Factory/.python3-flake8.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-flake8"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-flake8/python3-flake8.changes 2013-06-25 18:00:13.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-flake8.new/python3-flake8.changes 2014-04-25 11:35:19.000000000 +0200
@@ -1,0 +2,14 @@
+Thu Apr 17 11:21:33 UTC 2014 - toddrme2178(a)gmail.com
+
+- update to 2.1.0:
+ - Add FLAKE8_LAZY and FLAKE8_IGNORE environment variable support to git and
+ mercurial hooks
+ - Force git and mercurial hooks to repsect configuration in setup.cfg
+ - Only check staged files if that is specified
+ - Fix hook file permissions
+ - Fix the git hook on python 3
+ - Ignore non-python files when running the git hook
+ - Ignore .tox directories by default
+ - Flake8 now reports the column number for PyFlakes messages
+
+-------------------------------------------------------------------
Old:
----
flake8-2.0.tar.gz
New:
----
flake8-2.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-flake8.spec ++++++
--- /var/tmp/diff_new_pack.W91vJH/_old 2014-04-25 11:35:20.000000000 +0200
+++ /var/tmp/diff_new_pack.W91vJH/_new 2014-04-25 11:35:20.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-flake8
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,7 @@
Name: python3-flake8
-Version: 2.0
+Version: 2.1.0
Release: 0
License: MIT
Summary: Modular source code checker: pep8, pyflakes and co
@@ -27,6 +27,7 @@
BuildRequires: python3-distribute
# Test requirements:
BuildRequires: python3-mccabe >= 0.2
+BuildRequires: python3-mock
BuildRequires: python3-nose
BuildRequires: python3-pep8 >= 1.4.3
BuildRequires: python3-pyflakes >= 0.6.1
++++++ flake8-2.0.tar.gz -> flake8-2.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/CHANGES.rst new/flake8-2.1.0/CHANGES.rst
--- old/flake8-2.0/CHANGES.rst 2013-02-23 23:32:05.000000000 +0100
+++ new/flake8-2.1.0/CHANGES.rst 2013-10-26 22:23:15.000000000 +0200
@@ -1,7 +1,20 @@
CHANGES
=======
-2.0.0 - 2013-02-xx
+2.1.0 - 2013-10-26
+------------------
+
+- Add FLAKE8_LAZY and FLAKE8_IGNORE environment variable support to git and
+ mercurial hooks
+- Force git and mercurial hooks to repsect configuration in setup.cfg
+- Only check staged files if that is specified
+- Fix hook file permissions
+- Fix the git hook on python 3
+- Ignore non-python files when running the git hook
+- Ignore .tox directories by default
+- Flake8 now reports the column number for PyFlakes messages
+
+2.0.0 - 2013-02-23
------------------
- Pyflakes errors are prefixed by an ``F`` instead of an ``E``
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/CONTRIBUTORS.txt new/flake8-2.1.0/CONTRIBUTORS.txt
--- old/flake8-2.0/CONTRIBUTORS.txt 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/CONTRIBUTORS.txt 2013-06-23 05:46:34.000000000 +0200
@@ -19,3 +19,4 @@
- Marc Labbé
- Bruno Miguel Custódio
- Florent Xicluna
+- Austin Morton
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/LICENSE new/flake8-2.1.0/LICENSE
--- old/flake8-2.0/LICENSE 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/LICENSE 2013-07-05 16:23:02.000000000 +0200
@@ -1,6 +1,7 @@
== Flake8 License (MIT) ==
-Copyright (C) 2011 Tarek Ziade <tarek(a)ziade.org>
+Copyright (C) 2011-2013 Tarek Ziade <tarek(a)ziade.org>
+Copyright (C) 2012-2013 Ian Cordasco <graffatcolmingov(a)gmail.com>
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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/MANIFEST.in new/flake8-2.1.0/MANIFEST.in
--- old/flake8-2.0/MANIFEST.in 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/MANIFEST.in 2013-06-23 05:46:34.000000000 +0200
@@ -1,4 +1,4 @@
include *.rst
include CONTRIBUTORS.txt
include LICENSE
-recursive-include scripts flake8.*
+recursive-include flake8 *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/PKG-INFO new/flake8-2.1.0/PKG-INFO
--- old/flake8-2.0/PKG-INFO 2013-02-23 23:36:37.000000000 +0100
+++ new/flake8-2.1.0/PKG-INFO 2013-10-26 22:24:46.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: flake8
-Version: 2.0
+Version: 2.1.0
Summary: the modular source code checker: pep8, pyflakes and co
Home-page: http://bitbucket.org/tarek/flake8
Author: Ian Cordasco
@@ -65,6 +65,13 @@
anything that goes beyond 10 is too complex.
See https://en.wikipedia.org/wiki/Cyclomatic_complexity.
+ Questions or Feedback
+ =====================
+
+ If you have questions you'd like to ask the developers, or feedback you'd like
+ to provide, feel free to use the mailing list: code-quality(a)python.org We
+ would love to hear from you. Additionally, if you have a feature you'd like to
+ suggest, the mailing list would be the best place for it.
.. _links:
@@ -79,7 +86,20 @@
CHANGES
=======
- 2.0.0 - 2013-02-xx
+ 2.1.0 - 2013-10-26
+ ------------------
+
+ - Add FLAKE8_LAZY and FLAKE8_IGNORE environment variable support to git and
+ mercurial hooks
+ - Force git and mercurial hooks to repsect configuration in setup.cfg
+ - Only check staged files if that is specified
+ - Fix hook file permissions
+ - Fix the git hook on python 3
+ - Ignore non-python files when running the git hook
+ - Ignore .tox directories by default
+ - Flake8 now reports the column number for PyFlakes messages
+
+ 2.0.0 - 2013-02-23
------------------
- Pyflakes errors are prefixed by an ``F`` instead of an ``E``
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/README.rst new/flake8-2.1.0/README.rst
--- old/flake8-2.0/README.rst 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/README.rst 2013-07-05 16:23:02.000000000 +0200
@@ -57,6 +57,13 @@
anything that goes beyond 10 is too complex.
See https://en.wikipedia.org/wiki/Cyclomatic_complexity.
+Questions or Feedback
+=====================
+
+If you have questions you'd like to ask the developers, or feedback you'd like
+to provide, feel free to use the mailing list: code-quality(a)python.org We
+would love to hear from you. Additionally, if you have a feature you'd like to
+suggest, the mailing list would be the best place for it.
.. _links:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8/__init__.py new/flake8-2.1.0/flake8/__init__.py
--- old/flake8-2.0/flake8/__init__.py 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/flake8/__init__.py 2013-10-26 22:24:19.000000000 +0200
@@ -1,2 +1 @@
-
-__version__ = '2.0'
+__version__ = '2.1.0'
Files old/flake8-2.0/flake8/__init__.pyc and new/flake8-2.1.0/flake8/__init__.pyc differ
Files old/flake8-2.0/flake8/__pycache__/__init__.cpython-32.pyc and new/flake8-2.1.0/flake8/__pycache__/__init__.cpython-32.pyc differ
Files old/flake8-2.0/flake8/__pycache__/_pyflakes.cpython-32.pyc and new/flake8-2.1.0/flake8/__pycache__/_pyflakes.cpython-32.pyc differ
Files old/flake8-2.0/flake8/__pycache__/engine.cpython-32.pyc and new/flake8-2.1.0/flake8/__pycache__/engine.cpython-32.pyc differ
Files old/flake8-2.0/flake8/__pycache__/main.cpython-32.pyc and new/flake8-2.1.0/flake8/__pycache__/main.cpython-32.pyc differ
Files old/flake8-2.0/flake8/__pycache__/util.cpython-32.pyc and new/flake8-2.1.0/flake8/__pycache__/util.cpython-32.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8/_pyflakes.py new/flake8-2.1.0/flake8/_pyflakes.py
--- old/flake8-2.0/flake8/_pyflakes.py 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/flake8/_pyflakes.py 2013-07-05 16:23:02.000000000 +0200
@@ -44,4 +44,5 @@
def run(self):
for m in self.messages:
- yield m.lineno, 0, (m.flake8_msg % m.message_args), m.__class__
+ col = getattr(m, 'col', 0)
+ yield m.lineno, col, (m.flake8_msg % m.message_args), m.__class__
Files old/flake8-2.0/flake8/_pyflakes.pyc and new/flake8-2.1.0/flake8/_pyflakes.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8/engine.py new/flake8-2.1.0/flake8/engine.py
--- old/flake8-2.0/flake8/engine.py 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/flake8/engine.py 2013-06-23 05:46:34.000000000 +0200
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
import re
+import platform
import pep8
@@ -37,7 +38,10 @@
"""
(extensions, parser_hooks, options_hooks) = _register_extensions()
details = ', '.join(['%s: %s' % ext for ext in extensions])
- parser = pep8.get_parser('flake8', '%s (%s)' % (__version__, details))
+ python_version = get_python_version()
+ parser = pep8.get_parser('flake8', '%s (%s) %s' % (
+ __version__, details, python_version
+ ))
for opt in ('--repeat', '--testsuite', '--doctest'):
try:
parser.remove_option(opt)
@@ -78,3 +82,12 @@
for options_hook in options_hooks:
options_hook(options)
return styleguide
+
+
+def get_python_version():
+ # The implementation isn't all that important.
+ try:
+ impl = platform.python_implementation() + " "
+ except AttributeError: # Python 2.5
+ impl = ''
+ return '%s%s on %s' % (impl, platform.python_version(), platform.system())
Files old/flake8-2.0/flake8/engine.pyc and new/flake8-2.1.0/flake8/engine.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8/hooks.py new/flake8-2.1.0/flake8/hooks.py
--- old/flake8-2.0/flake8/hooks.py 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/flake8/hooks.py 2013-10-26 21:05:42.000000000 +0200
@@ -2,7 +2,16 @@
from __future__ import with_statement
import os
import sys
+import stat
from subprocess import Popen, PIPE
+import shutil
+from tempfile import mkdtemp
+try:
+ # The 'demandimport' breaks pyflakes and flake8._pyflakes
+ from mercurial import demandimport
+ demandimport.disable()
+except ImportError:
+ pass
try:
from configparser import ConfigParser
except ImportError: # Python 2
@@ -14,7 +23,7 @@
def git_hook(complexity=-1, strict=False, ignore=None, lazy=False):
"""This is the function used by the git hook.
-
+
:param int complexity: (optional), any value > 0 enables complexity
checking with mccabe
:param bool strict: (optional), if True, this returns the total number of
@@ -25,15 +34,59 @@
the files to the index before running a commit, e.g., git commit -a
:returns: total number of errors if strict is True, otherwise 0
"""
- gitcmd = "git diff-index --cached --name-only HEAD"
+ gitcmd = "git diff-index --cached --name-only --diff-filter=ACMRTUXB HEAD"
if lazy:
+ # Catch all files, including those not added to the index
gitcmd = gitcmd.replace('--cached ', '')
+ if hasattr(ignore, 'split'):
+ ignore = ignore.split(',')
+
+ # Returns the exit code, list of files modified, list of error messages
_, files_modified, _ = run(gitcmd)
+ # We only want to pass ignore and max_complexity if they differ from the
+ # defaults so that we don't override a local configuration file
+ options = {}
+ if ignore:
+ options['ignore'] = ignore
+ if complexity > -1:
+ options['max_complexity'] = complexity
+
+ files_modified = [f for f in files_modified if f.endswith('.py')]
+
flake8_style = get_style_guide(
- config_file=DEFAULT_CONFIG, ignore=ignore, max_complexity=complexity)
- report = flake8_style.check_files(files_modified)
+ parse_argv=True,
+ config_file=DEFAULT_CONFIG,
+ **options
+ )
+
+ # Copy staged versions to temporary directory
+ tmpdir = mkdtemp()
+ files_to_check = []
+ try:
+ for file_ in files_modified:
+ # get the staged version of the file
+ gitcmd_getstaged = "git show :%s" % file_
+ _, out, _ = run(gitcmd_getstaged, raw_output=True, decode=False)
+ # write the staged version to temp dir with its full path to
+ # avoid overwriting files with the same name
+ dirname, filename = os.path.split(os.path.abspath(file_))
+ prefix = os.path.commonprefix([dirname, tmpdir])
+ dirname = os.path.relpath(dirname, start=prefix)
+ dirname = os.path.join(tmpdir, dirname)
+ if not os.path.isdir(dirname):
+ os.makedirs(dirname)
+ filename = os.path.join(dirname, filename)
+ # write staged version of file to temporary directory
+ with open(filename, "wb") as fh:
+ fh.write(out)
+ files_to_check.append(filename)
+ # Run the checks
+ report = flake8_style.check_files(files_to_check)
+ # remove temporary directory
+ finally:
+ shutil.rmtree(tmpdir, ignore_errors=True)
if strict:
return report.total_errors
@@ -49,14 +102,23 @@
"""
complexity = ui.config('flake8', 'complexity', default=-1)
strict = ui.configbool('flake8', 'strict', default=True)
+ ignore = ui.config('flake8', 'ignore', default=None)
config = ui.config('flake8', 'config', default=True)
if config is True:
config = DEFAULT_CONFIG
paths = _get_files(repo, **kwargs)
- flake8_style = get_style_guide(
- config_file=config, max_complexity=complexity)
+ # We only want to pass ignore and max_complexity if they differ from the
+ # defaults so that we don't override a local configuration file
+ options = {}
+ if ignore:
+ options['ignore'] = ignore
+ if complexity > -1:
+ options['max_complexity'] = complexity
+
+ flake8_style = get_style_guide(parse_argv=True, config_file=config,
+ **options)
report = flake8_style.check_files(paths)
if strict:
@@ -65,11 +127,23 @@
return 0
-def run(command):
+def run(command, raw_output=False, decode=True):
p = Popen(command.split(), stdout=PIPE, stderr=PIPE)
(stdout, stderr) = p.communicate()
- return (p.returncode, [line.strip() for line in stdout.splitlines()],
- [line.strip() for line in stderr.splitlines()])
+ # On python 3, subprocess.Popen returns bytes objects which expect
+ # endswith to be given a bytes object or a tuple of bytes but not native
+ # string objects. This is simply less mysterious than using b'.py' in the
+ # endswith method. That should work but might still fail horribly.
+ if hasattr(stdout, 'decode'):
+ if decode:
+ stdout = stdout.decode()
+ if hasattr(stderr, 'decode'):
+ if decode:
+ stderr = stderr.decode()
+ if not raw_output:
+ stdout = [line.strip() for line in stdout.splitlines()]
+ stderr = [line.strip() for line in stderr.splitlines()]
+ return (p.returncode, stdout, stderr)
def _get_files(repo, **kwargs):
@@ -85,12 +159,14 @@
def find_vcs():
- if os.path.isdir('.git'):
- if not os.path.isdir('.git/hooks'):
- os.mkdir('.git/hooks')
- return '.git/hooks/pre-commit'
- elif os.path.isdir('.hg'):
- return '.hg/hgrc'
+ _, git_dir, _ = run('git rev-parse --git-dir')
+ if git_dir and os.path.isdir(git_dir[0]):
+ if not os.path.isdir(os.path.join(git_dir[0], 'hooks')):
+ os.mkdir(os.path.join(git_dir[0], 'hooks'))
+ return os.path.join(git_dir[0], 'hooks', 'pre-commit')
+ _, hg_dir, _ = run('hg root')
+ if hg_dir and os.path.isdir(hg_dir[0]):
+ return os.path.join(hg_dir[0], '.hg', 'hgrc')
return ''
@@ -101,14 +177,25 @@
COMPLEXITY = os.getenv('FLAKE8_COMPLEXITY', 10)
STRICT = os.getenv('FLAKE8_STRICT', False)
+IGNORE = os.getenv('FLAKE8_IGNORE')
+LAZY = os.getenv('FLAKE8_LAZY', False)
if __name__ == '__main__':
- sys.exit(git_hook(complexity=COMPLEXITY, strict=STRICT))
+ sys.exit(git_hook(
+ complexity=COMPLEXITY,
+ strict=STRICT,
+ ignore=IGNORE,
+ lazy=LAZY,
+ ))
"""
def _install_hg_hook(path):
+ if not os.path.isfile(path):
+ # Make the file so we can avoid IOError's
+ open(path, 'w+').close()
+
c = ConfigParser()
c.readfp(open(path, 'r'))
if not c.has_section('hooks'):
@@ -129,6 +216,12 @@
if not c.has_option('flake8', 'strict'):
c.set('flake8', 'strict', os.getenv('FLAKE8_STRICT', False))
+ if not c.has_option('flake8', 'ignore'):
+ c.set('flake8', 'ignore', os.getenv('FLAKE8_IGNORE'))
+
+ if not c.has_option('flake8', 'lazy'):
+ c.set('flake8', 'lazy', os.getenv('FLAKE8_LAZY', False))
+
c.write(open(path, 'w+'))
@@ -136,7 +229,7 @@
vcs = find_vcs()
if not vcs:
- p = get_parser()
+ p = get_parser()[0]
sys.stderr.write('Error: could not find either a git or mercurial '
'directory. Please re-run this in a proper '
'repository.')
@@ -147,7 +240,8 @@
if 'git' in vcs:
with open(vcs, 'w+') as fd:
fd.write(git_hook_file)
- os.chmod(vcs, 744)
+ # rwxr--r--
+ os.chmod(vcs, stat.S_IRWXU | stat.S_IRGRP | stat.S_IROTH)
elif 'hg' in vcs:
_install_hg_hook(vcs)
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8/hooks.py.orig new/flake8-2.1.0/flake8/hooks.py.orig
--- old/flake8-2.0/flake8/hooks.py.orig 1970-01-01 01:00:00.000000000 +0100
+++ new/flake8-2.1.0/flake8/hooks.py.orig 2013-06-23 05:46:34.000000000 +0200
@@ -0,0 +1,176 @@
+# -*- coding: utf-8 -*-
+from __future__ import with_statement
+import os
+import sys
+from subprocess import Popen, PIPE
+try:
+ from mercurial import demandimport
+ demandimport.disable()
+except ImportError:
+ pass
+
+try:
+ from configparser import ConfigParser
+except ImportError: # Python 2
+ from ConfigParser import ConfigParser
+
+from flake8.engine import get_parser, get_style_guide
+from flake8.main import DEFAULT_CONFIG
+
+
+def git_hook(complexity=-1, strict=False, ignore=None, lazy=False):
+ """This is the function used by the git hook.
+
+ :param int complexity: (optional), any value > 0 enables complexity
+ checking with mccabe
+ :param bool strict: (optional), if True, this returns the total number of
+ errors which will cause the hook to fail
+ :param str ignore: (optional), a comma-separated list of errors and
+ warnings to ignore
+ :param bool lazy: (optional), allows for the instances where you don't add
+ the files to the index before running a commit, e.g., git commit -a
+ :returns: total number of errors if strict is True, otherwise 0
+ """
+ gitcmd = "git diff-index --cached --name-only HEAD"
+ if lazy:
+ # Catch all files, including those not added to the index
+ gitcmd = gitcmd.replace('--cached ', '')
+
+ if hasattr(ignore, 'split'):
+ ignore = ignore.split(',')
+
+ # Returns the exit code, list of files modified, list of error messages
+ _, files_modified, _ = run(gitcmd)
+
+ # Run the checks
+ flake8_style = get_style_guide(
+ config_file=DEFAULT_CONFIG, ignore=ignore, max_complexity=complexity)
+ report = flake8_style.check_files([f for f in files_modified if
+ f.endswith('.py')])
+
+ if strict:
+ return report.total_errors
+
+ return 0
+
+
+def hg_hook(ui, repo, **kwargs):
+ """This is the function executed directly by Mercurial as part of the
+ hook. This is never called directly by the user, so the parameters are
+ undocumented. If you would like to learn more about them, please feel free
+ to read the official Mercurial documentation.
+ """
+ complexity = ui.config('flake8', 'complexity', default=-1)
+ strict = ui.configbool('flake8', 'strict', default=True)
+ config = ui.config('flake8', 'config', default=True)
+ if config is True:
+ config = DEFAULT_CONFIG
+
+ paths = _get_files(repo, **kwargs)
+
+ flake8_style = get_style_guide(
+ config_file=config, max_complexity=complexity)
+ report = flake8_style.check_files(paths)
+
+ if strict:
+ return report.total_errors
+
+ return 0
+
+
+def run(command):
+ p = Popen(command.split(), stdout=PIPE, stderr=PIPE)
+ (stdout, stderr) = p.communicate()
+ return (p.returncode, [line.strip() for line in stdout.splitlines()],
+ [line.strip() for line in stderr.splitlines()])
+
+
+def _get_files(repo, **kwargs):
+ seen = set()
+ for rev in range(repo[kwargs['node']], len(repo)):
+ for file_ in repo[rev].files():
+ file_ = os.path.join(repo.root, file_)
+ if file_ in seen or not os.path.exists(file_):
+ continue
+ seen.add(file_)
+ if file_.endswith('.py'):
+ yield file_
+
+
+def find_vcs():
+ if os.path.isdir('.git'):
+ if not os.path.isdir('.git/hooks'):
+ os.mkdir('.git/hooks')
+ return '.git/hooks/pre-commit'
+ elif os.path.isdir('.hg'):
+ return '.hg/hgrc'
+ return ''
+
+
+git_hook_file = """#!/usr/bin/env python
+import sys
+import os
+from flake8.hooks import git_hook
+
+COMPLEXITY = os.getenv('FLAKE8_COMPLEXITY', 10)
+STRICT = os.getenv('FLAKE8_STRICT', False)
+
+
+if __name__ == '__main__':
+ sys.exit(git_hook(complexity=COMPLEXITY, strict=STRICT))
+"""
+
+
+def _install_hg_hook(path):
+ if not os.path.isfile(path):
+ # Make the file so we can avoid IOError's
+ open(path, 'w+').close()
+
+ c = ConfigParser()
+ c.readfp(open(path, 'r'))
+ if not c.has_section('hooks'):
+ c.add_section('hooks')
+
+ if not c.has_option('hooks', 'commit'):
+ c.set('hooks', 'commit', 'python:flake8.hooks.hg_hook')
+
+ if not c.has_option('hooks', 'qrefresh'):
+ c.set('hooks', 'qrefresh', 'python:flake8.hooks.hg_hook')
+
+ if not c.has_section('flake8'):
+ c.add_section('flake8')
+
+ if not c.has_option('flake8', 'complexity'):
+ c.set('flake8', 'complexity', str(os.getenv('FLAKE8_COMPLEXITY', 10)))
+
+ if not c.has_option('flake8', 'strict'):
+ c.set('flake8', 'strict', os.getenv('FLAKE8_STRICT', False))
+
+ c.write(open(path, 'w+'))
+
+
+def install_hook():
+ vcs = find_vcs()
+
+ if not vcs:
+ p = get_parser()
+ sys.stderr.write('Error: could not find either a git or mercurial '
+ 'directory. Please re-run this in a proper '
+ 'repository.')
+ p.print_help()
+ sys.exit(1)
+
+ status = 0
+ if 'git' in vcs:
+ with open(vcs, 'w+') as fd:
+ fd.write(git_hook_file)
+ # 0b111100100 == rwxr--r--
+ # Python 2.5 doesn't support 0b syntax so note that the above binary
+ # value is equivalent to 484 in decimal
+ os.chmod(vcs, 484)
+ elif 'hg' in vcs:
+ _install_hg_hook(vcs)
+ else:
+ status = 1
+
+ sys.exit(status)
Files old/flake8-2.0/flake8/hooks.pyc and new/flake8-2.1.0/flake8/hooks.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8/main.py new/flake8-2.1.0/flake8/main.py
--- old/flake8-2.0/flake8/main.py 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/flake8/main.py 2013-10-05 15:25:41.000000000 +0200
@@ -4,7 +4,8 @@
import setuptools
-from flake8.engine import get_style_guide
+from flake8.engine import get_parser, get_style_guide
+from flake8.util import is_flag, flag_on
if sys.platform.startswith('win'):
DEFAULT_CONFIG = os.path.expanduser(r'~\.flake8')
@@ -14,6 +15,8 @@
'flake8'
)
+EXTRA_IGNORE = ['.tox']
+
def main():
"""Parse options and run checks on Python source."""
@@ -28,6 +31,11 @@
# Run the checkers
report = flake8_style.check_files()
+ exit_code = print_report(report, flake8_style)
+ raise SystemExit(exit_code > 0)
+
+
+def print_report(report, flake8_style):
# Print the final report
options = flake8_style.options
if options.statistics:
@@ -38,17 +46,19 @@
if options.count:
sys.stderr.write(str(report.total_errors) + '\n')
if not options.exit_zero:
- raise SystemExit(1)
+ return 1
+ return 0
def check_file(path, ignore=(), complexity=-1):
- """Checks a file using pep8 and pyflakes by default and mccabe
+ """Checks a file using pep8 and pyflakes by default and mccabe
optionally.
:param str path: path to the file to be checked
:param tuple ignore: (optional), error and warning codes to be ignored
:param int complexity: (optional), enables the mccabe check for values > 0
"""
+ ignore = set(ignore).union(EXTRA_IGNORE)
flake8_style = get_style_guide(
config_file=DEFAULT_CONFIG, ignore=ignore, max_complexity=complexity)
return flake8_style.input_file(path)
@@ -61,9 +71,10 @@
:param tuple ignore: (optional), error and warning codes to be ignored
:param int complexity: (optional), enables the mccabe check for values > 0
"""
+ ignore = set(ignore).union(EXTRA_IGNORE)
flake8_style = get_style_guide(
config_file=DEFAULT_CONFIG, ignore=ignore, max_complexity=complexity)
- return flake8_style.input_file('-', lines=code.splitlines())
+ return flake8_style.input_file(None, lines=code.splitlines(True))
class Flake8Command(setuptools.Command):
@@ -75,22 +86,45 @@
user_options = []
def initialize_options(self):
- pass
+ self.option_to_cmds = {}
+ parser = get_parser()[0]
+ for opt in parser.option_list:
+ cmd_name = opt._long_opts[0][2:]
+ option_name = cmd_name.replace('-', '_')
+ self.option_to_cmds[option_name] = cmd_name
+ setattr(self, option_name, None)
def finalize_options(self):
- pass
+ self.options_dict = {}
+ for (option_name, cmd_name) in self.option_to_cmds.items():
+ if option_name in ['help', 'verbose']:
+ continue
+ value = getattr(self, option_name)
+ if value is None:
+ continue
+ if is_flag(value):
+ value = flag_on(value)
+ self.options_dict[option_name] = value
def distribution_files(self):
if self.distribution.packages:
+ package_dirs = self.distribution.package_dir or {}
for package in self.distribution.packages:
- yield package.replace(".", os.path.sep)
+ pkg_dir = package
+ if package in package_dirs:
+ pkg_dir = package_dirs[package]
+ elif '' in package_dirs:
+ pkg_dir = package_dirs[''] + os.path.sep + pkg_dir
+ yield pkg_dir.replace('.', os.path.sep)
if self.distribution.py_modules:
for filename in self.distribution.py_modules:
yield "%s.py" % filename
def run(self):
- flake8_style = get_style_guide(config_file=DEFAULT_CONFIG)
+ flake8_style = get_style_guide(config_file=DEFAULT_CONFIG,
+ **self.options_dict)
paths = self.distribution_files()
report = flake8_style.check_files(paths)
- raise SystemExit(report.total_errors > 0)
+ exit_code = print_report(report, flake8_style)
+ raise SystemExit(exit_code > 0)
Files old/flake8-2.0/flake8/main.pyc and new/flake8-2.1.0/flake8/main.pyc differ
Files old/flake8-2.0/flake8/tests/__init__.pyc and new/flake8-2.1.0/flake8/tests/__init__.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8/tests/test_engine.py new/flake8-2.1.0/flake8/tests/test_engine.py
--- old/flake8-2.0/flake8/tests/test_engine.py 1970-01-01 01:00:00.000000000 +0100
+++ new/flake8-2.1.0/flake8/tests/test_engine.py 2013-07-06 17:56:20.000000000 +0200
@@ -0,0 +1,81 @@
+from flake8 import engine, util, __version__
+import pep8
+import unittest
+import mock
+
+
+class TestEngine(unittest.TestCase):
+ def setUp(self):
+ self.patches = {}
+
+ def tearDown(self):
+ assert len(self.patches.items()) == 0
+
+ def start_patch(self, patch):
+ self.patches[patch] = mock.patch(patch)
+ return self.patches[patch].start()
+
+ def stop_patches(self):
+ patches = self.patches.copy()
+ for k, v in patches.items():
+ v.stop()
+ del(self.patches[k])
+
+ def test_get_style_guide(self):
+ with mock.patch('flake8.engine._register_extensions') as reg_ext:
+ reg_ext.return_value = ([], [], [])
+ g = engine.get_style_guide()
+ self.assertTrue(isinstance(g, engine.StyleGuide))
+ reg_ext.assert_called_once_with()
+
+ def test_get_style_guide_kwargs(self):
+ m = mock.Mock()
+ with mock.patch('flake8.engine.StyleGuide') as StyleGuide:
+ with mock.patch('flake8.engine.get_parser') as get_parser:
+ get_parser.return_value = (m, [])
+ engine.get_style_guide(foo='bar')
+ get_parser.assert_called_once_with()
+ StyleGuide.assert_called_once_with(**{'parser': m, 'foo': 'bar'})
+
+ def test_register_extensions(self):
+ with mock.patch('pep8.register_check') as register_check:
+ registered_extensions = engine._register_extensions()
+ self.assertTrue(isinstance(registered_extensions[0], util.OrderedSet))
+ self.assertTrue(len(registered_extensions[0]) > 0)
+ for i in registered_extensions[1:]:
+ self.assertTrue(isinstance(i, list))
+ register_check.assert_called()
+
+ def test_get_parser(self):
+ # setup
+ re = self.start_patch('flake8.engine._register_extensions')
+ gpv = self.start_patch('flake8.engine.get_python_version')
+ pgp = self.start_patch('pep8.get_parser')
+ m = mock.Mock()
+ re.return_value = ([('pyflakes', '0.7'), ('mccabe', '0.2')], [], [])
+ gpv.return_value = 'Python Version'
+ pgp.return_value = m
+ # actual call we're testing
+ parser, hooks = engine.get_parser()
+ # assertions
+ re.assert_called()
+ gpv.assert_called()
+ pgp.assert_called_once_with(
+ 'flake8',
+ '%s (pyflakes: 0.7, mccabe: 0.2) Python Version' % __version__
+ )
+ m.remove_option.assert_called()
+ m.add_option.assert_called()
+ self.assertEqual(parser, m)
+ self.assertEqual(hooks, [])
+ # clean-up
+ self.stop_patches()
+
+ def test_get_python_version(self):
+ self.assertTrue('on' in engine.get_python_version())
+ # Silly test but it will provide 100% test coverage
+ # Also we can never be sure (without reconstructing the string
+ # ourselves) what system we may be testing on.
+
+if __name__ == '__main__':
+ unittest.main()
Files old/flake8-2.0/flake8/tests/test_engine.pyc and new/flake8-2.1.0/flake8/tests/test_engine.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8/tests/test_flakes.py new/flake8-2.1.0/flake8/tests/test_flakes.py
--- old/flake8-2.0/flake8/tests/test_flakes.py 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/flake8/tests/test_flakes.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,94 +0,0 @@
-# -*- coding: utf-8 -*-
-import sys
-
-from unittest import TestCase
-from pyflakes.api import check
-
-
-class FlakesTestReporter(object):
- def __init__(self):
- self.messages = []
- self.flakes = self.messages.append
-
- def unexpectedError(self, filename, msg):
- self.flakes('[unexpectedError] %s: %s' % (filename, msg))
-
- def syntaxError(self, filename, msg, lineno, offset, text):
- self.flakes('[syntaxError] %s:%d: %s' % (filename, lineno, msg))
-
-
-code0 = """
-try:
- pass
-except ValueError, err:
- print(err)
-"""
-
-code1 = """
-try:
- pass
-except ValueError as err:
- print(err)
-"""
-
-code2 = """
-try:
- pass
-except ValueError:
- print("err")
-
-try:
- pass
-except ValueError:
- print("err")
-"""
-
-code3 = """
-try:
- pass
-except (ImportError, ValueError):
- print("err")
-"""
-
-code_from_import_exception = """
-from foo import SomeException
-try:
- pass
-except SomeException:
- print("err")
-"""
-
-code_import_exception = """
-import foo.SomeException
-try:
- pass
-except foo.SomeException:
- print("err")
-"""
-
-
-class TestFlake(TestCase):
-
- def test_exception(self):
- codes = [code1, code2, code3]
- if sys.version_info < (2, 6):
- codes[0] = code0
- elif sys.version_info < (3,):
- codes.insert(0, code0)
- for code in codes:
- reporter = FlakesTestReporter()
- warnings = check(code, '(stdin)', reporter)
- self.assertFalse(reporter.messages)
- self.assertEqual(warnings, 0)
-
- def test_from_import_exception_in_scope(self):
- reporter = FlakesTestReporter()
- warnings = check(code_from_import_exception, '(stdin)', reporter)
- self.assertFalse(reporter.messages)
- self.assertEqual(warnings, 0)
-
- def test_import_exception_in_scope(self):
- reporter = FlakesTestReporter()
- warnings = check(code_import_exception, '(stdin)', reporter)
- self.assertFalse(reporter.messages)
- self.assertEqual(warnings, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8/util.py new/flake8-2.1.0/flake8/util.py
--- old/flake8-2.0/flake8/util.py 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/flake8/util.py 2013-06-23 05:46:34.000000000 +0200
@@ -35,3 +35,14 @@
def add(self, value):
if value not in self:
self.append(value)
+
+
+def is_flag(val):
+ """Guess if the value could be an on/off toggle"""
+ val = str(val)
+ return val.upper() in ('1', '0', 'F', 'T', 'TRUE', 'FALSE', 'ON', 'OFF')
+
+
+def flag_on(val):
+ """Return true if flag is on"""
+ return str(val).upper() in ('1', 'T', 'TRUE', 'ON')
Files old/flake8-2.0/flake8/util.pyc and new/flake8-2.1.0/flake8/util.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8.egg-info/PKG-INFO new/flake8-2.1.0/flake8.egg-info/PKG-INFO
--- old/flake8-2.0/flake8.egg-info/PKG-INFO 2013-02-23 23:36:37.000000000 +0100
+++ new/flake8-2.1.0/flake8.egg-info/PKG-INFO 2013-10-26 22:24:46.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: flake8
-Version: 2.0
+Version: 2.1.0
Summary: the modular source code checker: pep8, pyflakes and co
Home-page: http://bitbucket.org/tarek/flake8
Author: Ian Cordasco
@@ -65,6 +65,13 @@
anything that goes beyond 10 is too complex.
See https://en.wikipedia.org/wiki/Cyclomatic_complexity.
+ Questions or Feedback
+ =====================
+
+ If you have questions you'd like to ask the developers, or feedback you'd like
+ to provide, feel free to use the mailing list: code-quality(a)python.org We
+ would love to hear from you. Additionally, if you have a feature you'd like to
+ suggest, the mailing list would be the best place for it.
.. _links:
@@ -79,7 +86,20 @@
CHANGES
=======
- 2.0.0 - 2013-02-xx
+ 2.1.0 - 2013-10-26
+ ------------------
+
+ - Add FLAKE8_LAZY and FLAKE8_IGNORE environment variable support to git and
+ mercurial hooks
+ - Force git and mercurial hooks to repsect configuration in setup.cfg
+ - Only check staged files if that is specified
+ - Fix hook file permissions
+ - Fix the git hook on python 3
+ - Ignore non-python files when running the git hook
+ - Ignore .tox directories by default
+ - Flake8 now reports the column number for PyFlakes messages
+
+ 2.0.0 - 2013-02-23
------------------
- Pyflakes errors are prefixed by an ``F`` instead of an ``E``
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8.egg-info/SOURCES.txt new/flake8-2.1.0/flake8.egg-info/SOURCES.txt
--- old/flake8-2.0/flake8.egg-info/SOURCES.txt 2013-02-23 23:36:37.000000000 +0100
+++ new/flake8-2.1.0/flake8.egg-info/SOURCES.txt 2013-10-26 22:24:46.000000000 +0200
@@ -5,18 +5,31 @@
README.rst
setup.py
flake8/__init__.py
+flake8/__init__.pyc
flake8/_pyflakes.py
+flake8/_pyflakes.pyc
flake8/engine.py
+flake8/engine.pyc
flake8/hooks.py
+flake8/hooks.py.orig
+flake8/hooks.pyc
flake8/main.py
+flake8/main.pyc
flake8/run.py
flake8/util.py
+flake8/util.pyc
flake8.egg-info/PKG-INFO
flake8.egg-info/SOURCES.txt
flake8.egg-info/dependency_links.txt
flake8.egg-info/entry_points.txt
flake8.egg-info/requires.txt
flake8.egg-info/top_level.txt
+flake8/__pycache__/__init__.cpython-32.pyc
+flake8/__pycache__/_pyflakes.cpython-32.pyc
+flake8/__pycache__/engine.cpython-32.pyc
+flake8/__pycache__/main.cpython-32.pyc
+flake8/__pycache__/util.cpython-32.pyc
flake8/tests/__init__.py
-flake8/tests/test_flakes.py
-scripts/flake8.cmd
\ No newline at end of file
+flake8/tests/__init__.pyc
+flake8/tests/test_engine.py
+flake8/tests/test_engine.pyc
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/flake8.egg-info/requires.txt new/flake8-2.1.0/flake8.egg-info/requires.txt
--- old/flake8-2.0/flake8.egg-info/requires.txt 2013-02-23 23:36:37.000000000 +0100
+++ new/flake8-2.1.0/flake8.egg-info/requires.txt 2013-10-26 22:24:46.000000000 +0200
@@ -1,4 +1,3 @@
-setuptools
-pyflakes >= 0.6.1
-pep8 >= 1.4.3
-mccabe >= 0.2
\ No newline at end of file
+pyflakes >= 0.7.3
+pep8 >= 1.4.6
+mccabe >= 0.2.1
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/scripts/flake8.cmd new/flake8-2.1.0/scripts/flake8.cmd
--- old/flake8-2.0/scripts/flake8.cmd 2013-02-22 00:54:24.000000000 +0100
+++ new/flake8-2.1.0/scripts/flake8.cmd 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-@setlocal enableextensions & python -x %~f0 %* & goto :EOF
-# -*- mode: python -*-
-from flake8.run import main
-
-if __name__ == '__main__':
- main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/flake8-2.0/setup.py new/flake8-2.1.0/setup.py
--- old/flake8-2.0/setup.py 2013-02-23 15:32:11.000000000 +0100
+++ new/flake8-2.1.0/setup.py 2013-10-13 04:28:56.000000000 +0200
@@ -31,10 +31,9 @@
url="http://bitbucket.org/tarek/flake8",
packages=["flake8", "flake8.tests"],
install_requires=[
- "setuptools",
- "pyflakes >= 0.6.1",
- "pep8 >= 1.4.3",
- "mccabe >= 0.2",
+ "pyflakes >= 0.7.3",
+ "pep8 >= 1.4.6",
+ "mccabe >= 0.2.1",
],
entry_points={
'distutils.commands': ['flake8 = flake8.main:Flake8Command'],
@@ -53,6 +52,6 @@
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: Quality Assurance",
],
- tests_require=['nose'],
+ tests_require=['nose', 'mock'],
test_suite='nose.collector',
)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package plasma-nm for openSUSE:Factory checked in at 2014-04-25 11:35:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma-nm (Old)
and /work/SRC/openSUSE:Factory/.plasma-nm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma-nm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plasma-nm/plasma-nm.changes 2014-03-18 17:16:48.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plasma-nm.new/plasma-nm.changes 2014-04-25 11:35:06.000000000 +0200
@@ -1,0 +2,5 @@
+Fri Apr 25 01:35:26 UTC 2014 - hrvoje.senjan(a)gmail.com
+
+- Manually create lang package, so it can obsolete NetworkManager-kde4-libs-lang
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma-nm.spec ++++++
--- /var/tmp/diff_new_pack.ZWIzQ1/_old 2014-04-25 11:35:06.000000000 +0200
+++ /var/tmp/diff_new_pack.ZWIzQ1/_new 2014-04-25 11:35:06.000000000 +0200
@@ -143,7 +143,18 @@
%description pptp
pptp plugin for plasma-nm components.
-%lang_package
+%package lang
+Summary: Languages for package %{name}
+Group: System/Localization
+Requires: %{name} = %{version}
+Provides: %{name}-lang-all = %{version}
+Obsoletes: NetworkManager-kde4-libs-lang
+Supplements: packageand(bundle-lang-other:%{name})
+BuildArch: noarch
+
+%description lang
+Provides translations to the package %{name}
+
%prep
%setup -qn %{name}-%{version} -a 1
%if 0%{?suse_version} > 1310
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package enblend-enfuse for openSUSE:Factory checked in at 2014-04-25 11:34:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/enblend-enfuse (Old)
and /work/SRC/openSUSE:Factory/.enblend-enfuse.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "enblend-enfuse"
Changes:
--------
--- /work/SRC/openSUSE:Factory/enblend-enfuse/enblend-enfuse.changes 2014-01-07 13:52:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.enblend-enfuse.new/enblend-enfuse.changes 2014-04-25 11:34:16.000000000 +0200
@@ -1,0 +2,10 @@
+Wed Apr 23 17:12:11 UTC 2014 - fcrozat(a)suse.com
+
+- Update to patchlevel 3 of version 4.1:
+ + Bug Fixes:
+ [Enblend only] Fix problem of multiple, almost-identical
+ seamlines that produce inexplicable black areas in the output
+ panorama.
+ + LCMS 2.5 is now required to build.
+
+-------------------------------------------------------------------
Old:
----
enblend-enfuse-4.1.2.tar.gz
New:
----
enblend-enfuse-4.1.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ enblend-enfuse.spec ++++++
--- /var/tmp/diff_new_pack.LsDRWF/_old 2014-04-25 11:34:16.000000000 +0200
+++ /var/tmp/diff_new_pack.LsDRWF/_new 2014-04-25 11:34:16.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package enblend-enfuse
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
Summary: Tool for Composing Images
License: GPL-2.0+
Group: Productivity/Graphics/Other
-Version: 4.1.2
+Version: 4.1.3
Release: 0
Source: http://sourceforge.net/projects/enblend/files/%{name}/%{name}-4.1/%{name}-%…
Patch1: use-default-gcc-inlining.diff
@@ -35,7 +35,7 @@
BuildRequires: gnuplot
BuildRequires: gsl-devel
BuildRequires: libjpeg-devel
-BuildRequires: liblcms2-devel
+BuildRequires: liblcms2-devel >= 2.5
BuildRequires: libpng-devel
BuildRequires: libtiff-devel
BuildRequires: libxml2-tools
++++++ enblend-enfuse-4.1.2.tar.gz -> enblend-enfuse-4.1.3.tar.gz ++++++
++++ 2371 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2014-04-25 11:34:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/duperemove (Old)
and /work/SRC/openSUSE:Factory/.duperemove.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "duperemove"
Changes:
--------
--- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes 2014-04-13 13:14:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2014-04-25 11:34:04.000000000 +0200
@@ -1,0 +2,8 @@
+Sun Apr 20 22:13:45 UTC 2014 - mfasheh(a)suse.com
+
+- update to duperemove v0.08
+ - fixes many bugs
+ - a few more usability improvements
+ - adds fiemap support to better estimate space savings
+
+-------------------------------------------------------------------
Old:
----
duperemove-v0.07.tar.gz
New:
----
duperemove-v0.08.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ duperemove.spec ++++++
--- /var/tmp/diff_new_pack.FYfHI4/_old 2014-04-25 11:34:05.000000000 +0200
+++ /var/tmp/diff_new_pack.FYfHI4/_new 2014-04-25 11:34:05.000000000 +0200
@@ -21,7 +21,7 @@
Name: duperemove
BuildRequires: gcc-c++
BuildRequires: libgcrypt-devel
-Version: 0.07
+Version: 0.08
Release: 0
Summary: Software to find duplicate extents in files and remove them
License: GPL-2.0
++++++ duperemove-v0.07.tar.gz -> duperemove-v0.08.tar.gz ++++++
++++ 1684 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package dispcalGUI for openSUSE:Factory checked in at 2014-04-25 11:33:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dispcalGUI (Old)
and /work/SRC/openSUSE:Factory/.dispcalGUI.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dispcalGUI"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dispcalGUI/dispcalGUI.changes 2014-02-19 06:54:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.dispcalGUI.new/dispcalGUI.changes 2014-04-25 11:34:00.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Apr 23 02:16:43 UTC 2014 - dispcalGUI(a)hoech.net
+
+- update to 2.0.0.0: see README.html#changelog-2.0.0.0
+
+-------------------------------------------------------------------
Old:
----
dispcalGUI-1.7.5.7.tar.gz
New:
----
dispcalGUI-2.0.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dispcalGUI.spec ++++++
--- /var/tmp/diff_new_pack.fK49rx/_old 2014-04-25 11:34:01.000000000 +0200
+++ /var/tmp/diff_new_pack.fK49rx/_new 2014-04-25 11:34:01.000000000 +0200
@@ -26,7 +26,7 @@
License: GPL-3.0+
Group: Applications/Multimedia
Name: dispcalGUI
-Version: 1.7.5.7
+Version: 2.0.0.0
Release: 0
Source0: http://%{name}.hoech.net/download/%{name}-%version.tar.gz
Source1: copyright
@@ -48,6 +48,7 @@
%if 0%{?suse_version} > 0
BuildRequires: gcc
BuildRequires: python-devel
+BuildRequires: python-xml
BuildRequires: udev
BuildRequires: update-desktop-files
BuildRequires: xorg-x11-devel
++++++ copyright ++++++
--- /var/tmp/diff_new_pack.fK49rx/_old 2014-04-25 11:34:01.000000000 +0200
+++ /var/tmp/diff_new_pack.fK49rx/_new 2014-04-25 11:34:01.000000000 +0200
@@ -1,7 +1,7 @@
Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135
Name: dispcalGUI
Maintainer: Florian Höch <dispcalGUI(a)hoech.net>
-Source: http://dispcalGUI.hoech.net/
+Source: http://dispcalgui.hoech.net/
Copyright: 2008-2014, Florian Höch <dispcalGUI(a)hoech.net>
License: GPL-3+
++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.fK49rx/_old 2014-04-25 11:34:01.000000000 +0200
+++ /var/tmp/diff_new_pack.fK49rx/_new 2014-04-25 11:34:01.000000000 +0200
@@ -1,5 +1,5 @@
-dispcalgui (1.7.5.7) stable; urgency=low
+dispcalgui (2.0.0.0) stable; urgency=low
- * Version 1.7.5.7
+ * Version 2.0.0.0
- -- Florian Höch <dispcalGUI(a)hoech.net> Sun, 09 Feb 2014 22:34:19 +0100
+ -- Florian Höch <dispcalGUI(a)hoech.net> Wed, 23 Apr 2014 02:16:43 +0100
++++++ debian.control ++++++
--- /var/tmp/diff_new_pack.fK49rx/_old 2014-04-25 11:34:01.000000000 +0200
+++ /var/tmp/diff_new_pack.fK49rx/_new 2014-04-25 11:34:01.000000000 +0200
@@ -8,7 +8,7 @@
Package: dispcalgui
Architecture: any
Depends: ${shlibs:Depends}, ${python:Depends}, python-wxgtk2.8 (>= 2.8.6), python-numpy (>= 1.0)
-Recommends: argyll, gir1.2-colord-1.0
+Recommends: argyll
Description: A graphical front-end for display calibration and profiling using Argyll CMS
Calibrates and characterizes display devices using a hardware sensor,
driven by the open source color management system Argyll CMS.
++++++ debian.rules ++++++
--- /var/tmp/diff_new_pack.fK49rx/_old 2014-04-25 11:34:01.000000000 +0200
+++ /var/tmp/diff_new_pack.fK49rx/_new 2014-04-25 11:34:01.000000000 +0200
@@ -19,7 +19,7 @@
# The DESTDIR Has To Be Exactly /usr/src/packages/BUILD/debian/<nameOfPackage>
export name=dispcalGUI
-export version=1.7.5.7
+export version=2.0.0.0
export DEB_BUILD_ROOT=/usr/src/packages/BUILD/debian/dispcalgui
export install_prefix=/usr
export install_exec_prefix=/usr
++++++ dispcalGUI-1.7.5.7.tar.gz -> dispcalGUI-2.0.0.0.tar.gz ++++++
++++ 17738 lines of diff (skipped)
++++++ dispcalGUI.dsc ++++++
--- /var/tmp/diff_new_pack.fK49rx/_old 2014-04-25 11:34:01.000000000 +0200
+++ /var/tmp/diff_new_pack.fK49rx/_new 2014-04-25 11:34:01.000000000 +0200
@@ -1,11 +1,11 @@
-Debtransform-Tar: dispcalGUI-1.7.5.7.tar.gz
+Debtransform-Tar: dispcalGUI-2.0.0.0.tar.gz
Format: 1.0
Source: dispcalgui
-Version: 1.7.5.7
+Version: 2.0.0.0
Binary: dispcalgui
Maintainer: Florian Höch <dispcalGUI(a)hoech.net>
Architecture: any
Build-Depends: debhelper (>= 5.0.38), doc-base, gcc, python-dev, libxinerama-dev, libxrandr-dev, libxxf86vm-dev
Files:
- ffffffffffffffffffffffffffffffff 1 dispcalgui_1.7.5.7.orig.tar.gz
- ffffffffffffffffffffffffffffffff 1 dispcalgui_1.7.5.7-1.diff.tar.gz
+ ffffffffffffffffffffffffffffffff 1 dispcalgui_2.0.0.0.orig.tar.gz
+ ffffffffffffffffffffffffffffffff 1 dispcalgui_2.0.0.0-1.diff.tar.gz
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package cmocka for openSUSE:Factory checked in at 2014-04-25 11:33:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cmocka (Old)
and /work/SRC/openSUSE:Factory/.cmocka.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cmocka"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cmocka/cmocka.changes 2013-11-19 10:44:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cmocka.new/cmocka.changes 2014-04-25 11:33:52.000000000 +0200
@@ -1,0 +2,11 @@
+Fri Apr 11 14:16:07 UTC 2014 - asn(a)cryptomilk.org
+
+- Update to version 0.4.0
+ * Added support for group testing.
+ * Added assert_return_code().
+ * Added better messages for errors.
+ * Added cmake config mode support.
+ * Fixed bug with unit_test_setup and unit_test_teardown.
+ * Fixed a lot of small bugs.
+
+-------------------------------------------------------------------
Old:
----
cmocka-0.3.2.tar.xz
New:
----
cmocka-0.4.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cmocka.spec ++++++
--- /var/tmp/diff_new_pack.CZmLRS/_old 2014-04-25 11:33:53.000000000 +0200
+++ /var/tmp/diff_new_pack.CZmLRS/_new 2014-04-25 11:33:53.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package cmocka
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
BuildRequires: glibc-devel
Name: cmocka
-Version: 0.3.2
+Version: 0.4.0
Release: 0
#
Summary: Lightweight library to simplify and generalize unit tests for C
@@ -99,10 +99,10 @@
%setup -q
%build
-if test ! -e "build"; then
- mkdir build
+if test ! -e "obj"; then
+ mkdir obj
fi
-pushd build
+pushd obj
cmake \
-DCMAKE_C_FLAGS:STRING="%{optflags}" \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
@@ -115,10 +115,10 @@
%{_builddir}/%{name}-%{version}
make %{?_smp_mflags} VERBOSE=1
-popd build
+popd obj
%install
-pushd build
+pushd obj
%makeinstall
popd
@@ -141,6 +141,8 @@
%{_includedir}/cmocka.h
%{_libdir}/libcmocka.so
%{_libdir}/pkgconfig/cmocka.pc
+%{_libdir}/cmake/cmocka-config-version.cmake
+%{_libdir}/cmake/cmocka-config.cmake
%files -n libcmocka-devel-static
%defattr(-,root,root)
++++++ cmocka-0.3.2.tar.xz -> cmocka-0.4.0.tar.xz ++++++
++++ 5779 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package cluster-glue for openSUSE:Factory checked in at 2014-04-25 11:33:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cluster-glue (Old)
and /work/SRC/openSUSE:Factory/.cluster-glue.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cluster-glue"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cluster-glue/cluster-glue.changes 2014-04-03 16:38:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cluster-glue.new/cluster-glue.changes 2014-04-25 11:33:44.000000000 +0200
@@ -1,0 +2,8 @@
+Fri Apr 11 14:38:34 UTC 2014 - kgronlund(a)suse.com
+
+- hb_report: pcmk lib changed permissions (bnc#872958)
+
+- added patches:
+ * Low-hb_report-pcmk-lib-changed-permissions.patch
+
+-------------------------------------------------------------------
New:
----
Low-hb_report-pcmk-lib-changed-permissions.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cluster-glue.spec ++++++
--- /var/tmp/diff_new_pack.FkFhDW/_old 2014-04-25 11:33:45.000000000 +0200
+++ /var/tmp/diff_new_pack.FkFhDW/_new 2014-04-25 11:33:45.000000000 +0200
@@ -55,6 +55,8 @@
Patch9: 0001-hb_report-Don-t-use-deprecated-corosync-fplay-bnc-87.patch
# PATCH-FIX-UPSTREAM: hb_report: Update FSF address in license
Patch10: 0002-hb_report-Update-FSF-address-in-license.patch
+# PATCH-FIX-UPSTREAM: hb_report: pcmk lib changed permissions (bnc#872958)
+Patch11: Low-hb_report-pcmk-lib-changed-permissions.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: OpenIPMI-devel
@@ -164,6 +166,7 @@
%patch8 -p1
%patch9 -p1
%patch10 -p1
+%patch11 -p1
###########################################################
%build
++++++ Low-hb_report-pcmk-lib-changed-permissions.patch ++++++
changeset: 2782:2d376c7eb9d7
parent: 2778:b5f160509785
user: Dejan Muhamedagic <dejan(a)hello-penguin.com>
date: Thu Apr 10 15:02:10 2014 +0200
summary: Low: hb_report: pcmk lib changed permissions
diff --git a/hb_report/ha_cf_support.sh b/hb_report/ha_cf_support.sh
--- a/hb_report/ha_cf_support.sh
+++ b/hb_report/ha_cf_support.sh
@@ -76,7 +76,7 @@ essential_files() {
cat<<EOF
d $HA_VARLIB 0755 root root
d $HA_VARLIB/ccm 0750 hacluster haclient
-d $PCMK_LIB 0755 root root
+d $PCMK_LIB 0750 hacluster haclient
d $PE_STATE_DIR 0750 hacluster haclient
d $CIB_DIR 0750 hacluster haclient
EOF
diff --git a/hb_report/openais_conf_support.sh b/hb_report/openais_conf_support.sh
--- a/hb_report/openais_conf_support.sh
+++ b/hb_report/openais_conf_support.sh
@@ -90,7 +90,7 @@ cluster_info() {
}
essential_files() {
cat<<EOF
-d $PCMK_LIB 0755 root root
+d $PCMK_LIB 0750 hacluster haclient
d $PE_STATE_DIR 0750 hacluster haclient
d $CIB_DIR 0750 hacluster haclient
EOF
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package iproute2 for openSUSE:Factory checked in at 2014-04-25 11:33:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iproute2 (Old)
and /work/SRC/openSUSE:Factory/.iproute2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iproute2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/iproute2/iproute2.changes 2013-12-19 12:40:27.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.iproute2.new/iproute2.changes 2014-04-25 11:33:42.000000000 +0200
@@ -1,0 +2,19 @@
+Wed Apr 16 19:46:36 UTC 2014 - jengelh(a)inai.de
+
+- Update to new upstream release 3.14
+* ip link: support for High Availability Seamless Redundancy
+ (HSR) network devices.
+* ip link: support for creating/deleting bonding devices
+* ip link: support for specifying interface indexes during
+ creation of devices
+* tc/pkt_sched: add support for the "FQ" Fair Queue packet scheduler
+* tc: support for the BPF-based traffic classifier
+* tc, netem: support 64-bit quantity rate speeds
+* tc: support for the new "PIE" Proportional Integral controller
+ Enhanced scheduler
+* ss: display PF_LOCAL-SOCK_SEQPACKET sockets as such rather than
+ SOCK_DGRAM
+* ss: display zone names when so needed
+* ss: add support for retrieving SELinux contexts
+
+-------------------------------------------------------------------
Old:
----
iproute2-3.12.0.tar.sign
iproute2-3.12.0.tar.xz
New:
----
iproute2-3.14.0.tar.sign
iproute2-3.14.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iproute2.spec ++++++
--- /var/tmp/diff_new_pack.3J7mxh/_old 2014-04-25 11:33:43.000000000 +0200
+++ /var/tmp/diff_new_pack.3J7mxh/_new 2014-04-25 11:33:43.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package iproute2
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
Name: iproute2
-Version: 3.12
+Version: 3.14
Release: 0
-%define rversion 3.12.0
+%define rversion 3.14.0
Summary: Linux network configuration utilities
License: GPL-2.0
Group: Productivity/Networking/Routing
@@ -68,8 +68,10 @@
%define with_xt 1
%if 0%{?with_xt}
%if 0%{?suse_version} >= 1140
+BuildRequires: pkgconfig(libselinux)
BuildRequires: pkgconfig(xtables) >= 1.4.11
%else
+BuildRequires: libselinux-devel
BuildRequires: libxtables-devel >= 1.4.11
%endif
%endif
++++++ iproute2-3.12.0.tar.xz -> iproute2-3.14.0.tar.xz ++++++
++++ 5155 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libsolv for openSUSE:Factory checked in at 2014-04-25 11:33:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsolv (Old)
and /work/SRC/openSUSE:Factory/.libsolv.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsolv"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libsolv/libsolv.changes 2014-04-13 13:13:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libsolv.new/libsolv.changes 2014-04-25 11:33:41.000000000 +0200
@@ -1,0 +2,9 @@
+Thu Apr 17 14:47:42 CEST 2014 - mls(a)suse.de
+
+- support BREAK_ORPHANS and KEEP_ORPHANS solver flags
+- adapt to AppStream 0.6
+- reduce memory usage in repo_write and repodata_internalize
+- make repodata_stringify return the result string
+- bump version to 0.6.1
+
+-------------------------------------------------------------------
Old:
----
libsolv-0.6.0.tar.bz2
New:
----
libsolv-0.6.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libsolv.spec ++++++
--- /var/tmp/diff_new_pack.aZtVY8/_old 2014-04-25 11:33:42.000000000 +0200
+++ /var/tmp/diff_new_pack.aZtVY8/_new 2014-04-25 11:33:42.000000000 +0200
@@ -17,7 +17,7 @@
Name: libsolv
-Version: 0.6.0
+Version: 0.6.1
Release: 0
Url: git://gitorious.org/opensuse/libsolv.git
Source: libsolv-%{version}.tar.bz2
++++++ libsolv-0.6.0.tar.bz2 -> libsolv-0.6.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/VERSION.cmake new/libsolv-0.6.1/VERSION.cmake
--- old/libsolv-0.6.0/VERSION.cmake 2014-04-07 15:45:11.000000000 +0200
+++ new/libsolv-0.6.1/VERSION.cmake 2014-04-17 14:50:44.000000000 +0200
@@ -49,5 +49,5 @@
SET(LIBSOLV_MAJOR "0")
SET(LIBSOLV_MINOR "6")
-SET(LIBSOLV_PATCH "0")
+SET(LIBSOLV_PATCH "1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/ext/repo_appdata.c new/libsolv-0.6.1/ext/repo_appdata.c
--- old/libsolv-0.6.0/ext/repo_appdata.c 2014-03-05 15:50:54.000000000 +0100
+++ new/libsolv-0.6.1/ext/repo_appdata.c 2014-04-17 11:25:45.000000000 +0200
@@ -62,7 +62,9 @@
/* !! must be sorted by first column !! */
static struct stateswitch stateswitches[] = {
{ STATE_START, "applications", STATE_START, 0 },
+ { STATE_START, "components", STATE_START, 0 },
{ STATE_START, "application", STATE_APPLICATION, 0 },
+ { STATE_START, "component", STATE_APPLICATION, 0 },
{ STATE_APPLICATION, "id", STATE_ID, 1 },
{ STATE_APPLICATION, "pkgname", STATE_PKGNAME, 1 },
{ STATE_APPLICATION, "product_license", STATE_LICENCE, 1 },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/ext/repo_content.c new/libsolv-0.6.1/ext/repo_content.c
--- old/libsolv-0.6.0/ext/repo_content.c 2014-03-12 15:35:49.000000000 +0100
+++ new/libsolv-0.6.1/ext/repo_content.c 2014-04-16 14:00:44.000000000 +0200
@@ -408,7 +408,6 @@
}
/* create new solvable */
s = pool_id2solvable(pool, repo_add_solvable(repo));
- repodata_extend(data, s - pool->solvables);
handle = s - pool->solvables;
s->name = pool_str2id(pool, join(&pd, "product", ":", value), 1);
if (datadir)
@@ -425,7 +424,6 @@
if (!s)
{
s = pool_id2solvable(pool, repo_add_solvable(repo));
- repodata_extend(data, s - pool->solvables);
handle = s - pool->solvables;
}
@@ -546,7 +544,6 @@
for (i = 0; i < numotherarchs; ++i)
{
Solvable *p = pool_id2solvable(pool, repo_add_solvable(repo));
- repodata_extend(data, p - pool->solvables);
p->name = s->name;
p->evr = s->evr;
p->vendor = s->vendor;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/ext/repo_rpmdb.c new/libsolv-0.6.1/ext/repo_rpmdb.c
--- old/libsolv-0.6.0/ext/repo_rpmdb.c 2014-04-07 13:07:13.000000000 +0200
+++ new/libsolv-0.6.1/ext/repo_rpmdb.c 2014-04-15 18:15:59.000000000 +0200
@@ -1045,6 +1045,7 @@
DB_ENV *dbenv; /* database environment */
DB *db; /* packages database */
int byteswapped; /* endianess of packages database */
+ int is_ostree; /* read-only db that lives in /usr/share/rpm */
};
struct rpmdbentry {
@@ -1135,6 +1136,10 @@
snprintf(dbpath, PATH_MAX, "%s/var/lib/rpm", rootdir ? rootdir : "");
if (access(dbpath, W_OK) == -1)
{
+ snprintf(dbpath, PATH_MAX, "%s/usr/share/rpm/Packages", rootdir ? rootdir : "");
+ if (access(dbpath, R_OK) == 0)
+ state->is_ostree = 1;
+ snprintf(dbpath, PATH_MAX, "%s%s", rootdir ? rootdir : "", state->is_ostree ? "/usr/share/rpm" : "/var/lib/rpm");
r = dbenv->open(dbenv, dbpath, DB_CREATE|DB_PRIVATE|DB_INIT_MPOOL, 0);
}
else
@@ -1448,7 +1453,7 @@
DBT dbkey;
DBT dbdata;
- snprintf(dbpath, PATH_MAX, "%s/var/lib/rpm/Name", state->rootdir ? state->rootdir : "");
+ snprintf(dbpath, PATH_MAX, "%s%s/Name", state->rootdir ? state->rootdir : "", state->is_ostree ? "/usr/share/rpm" : "/var/lib/rpm");
if (stat(dbpath, &statbuf))
return 0;
memset(&dbkey, 0, sizeof(dbkey));
@@ -1766,7 +1771,7 @@
}
/* XXX: should get ro lock of Packages database! */
- snprintf(dbpath, PATH_MAX, "%s/var/lib/rpm/Packages", state.rootdir ? state.rootdir : "");
+ snprintf(dbpath, PATH_MAX, "%s%s/Packages", state.rootdir ? state.rootdir : "", state.is_ostree ? "/usr/share/rpm" : "/var/lib/rpm");
if (stat(dbpath, &packagesstat))
{
pool_error(pool, -1, "%s: %s", dbpath, strerror(errno));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/ext/repo_zyppdb.c new/libsolv-0.6.1/ext/repo_zyppdb.c
--- old/libsolv-0.6.0/ext/repo_zyppdb.c 2014-03-05 15:50:54.000000000 +0100
+++ new/libsolv-0.6.1/ext/repo_zyppdb.c 2014-04-16 14:00:44.000000000 +0200
@@ -161,7 +161,6 @@
/* parse 'type' */
const char *type = find_attr("type", atts);
s = pd->solvable = pool_id2solvable(pool, repo_add_solvable(pd->repo));
- repodata_extend(pd->data, s - pool->solvables);
pd->handle = s - pool->solvables;
if (type)
repodata_set_str(pd->data, pd->handle, PRODUCT_TYPE, type);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/ext/testcase.c new/libsolv-0.6.1/ext/testcase.c
--- old/libsolv-0.6.0/ext/testcase.c 2014-04-07 12:55:11.000000000 +0200
+++ new/libsolv-0.6.1/ext/testcase.c 2014-04-16 15:20:44.000000000 +0200
@@ -102,6 +102,8 @@
{ SOLVER_FLAG_DUP_ALLOW_ARCHCHANGE, "dupallowarchchange", 1 },
{ SOLVER_FLAG_DUP_ALLOW_VENDORCHANGE, "dupallowvendorchange", 1 },
{ SOLVER_FLAG_DUP_ALLOW_NAMECHANGE, "dupallownamechange", 1 },
+ { SOLVER_FLAG_KEEP_ORPHANS, "keeporphans", 0 },
+ { SOLVER_FLAG_BREAK_ORPHANS, "breakorphans", 0 },
{ 0, 0, 0 }
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/package/libsolv.changes new/libsolv-0.6.1/package/libsolv.changes
--- old/libsolv-0.6.0/package/libsolv.changes 2014-04-07 15:45:11.000000000 +0200
+++ new/libsolv-0.6.1/package/libsolv.changes 2014-04-17 14:50:44.000000000 +0200
@@ -1,4 +1,13 @@
-------------------------------------------------------------------
+Thu Apr 17 14:47:42 CEST 2014 - mls(a)suse.de
+
+- support BREAK_ORPHANS and KEEP_ORPHANS solver flags
+- adapt to AppStream 0.6
+- reduce memory usage in repo_write and repodata_internalize
+- make repodata_stringify return the result string
+- bump version to 0.6.1
+
+-------------------------------------------------------------------
Mon Apr 7 15:36:07 CEST 2014 - mls(a)suse.de
- add support for sha224/sha384/sha512
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/src/pool.c new/libsolv-0.6.1/src/pool.c
--- old/libsolv-0.6.0/src/pool.c 2014-02-18 13:10:52.000000000 +0100
+++ new/libsolv-0.6.1/src/pool.c 2014-04-14 19:10:44.000000000 +0200
@@ -1296,8 +1296,6 @@
struct searchfiles {
Id *ids;
- char **dirs;
- char **names;
int nfiles;
Map seen;
};
@@ -1308,7 +1306,7 @@
pool_addfileprovides_dep(Pool *pool, Id *ida, struct searchfiles *sf, struct searchfiles *isf)
{
Id dep, sid;
- const char *s, *sr;
+ const char *s;
struct searchfiles *csf;
while ((dep = *ida++) != 0)
@@ -1366,16 +1364,7 @@
if (csf != isf && pool->addedfileprovides == 1 && !repodata_filelistfilter_matches(0, s))
continue; /* skip non-standard locations csf == isf: installed case */
csf->ids = solv_extend(csf->ids, csf->nfiles, 1, sizeof(Id), SEARCHFILES_BLOCK);
- csf->dirs = solv_extend(csf->dirs, csf->nfiles, 1, sizeof(const char *), SEARCHFILES_BLOCK);
- csf->names = solv_extend(csf->names, csf->nfiles, 1, sizeof(const char *), SEARCHFILES_BLOCK);
- csf->ids[csf->nfiles] = dep;
- sr = strrchr(s, '/');
- csf->names[csf->nfiles] = solv_strdup(sr + 1);
- csf->dirs[csf->nfiles] = solv_malloc(sr - s + 1);
- if (sr != s)
- strncpy(csf->dirs[csf->nfiles], s, sr - s);
- csf->dirs[csf->nfiles][sr - s] = 0;
- csf->nfiles++;
+ csf->ids[csf->nfiles++] = dep;
}
}
@@ -1401,6 +1390,19 @@
if (!cbd->useddirs.size)
{
map_init(&cbd->useddirs, data->dirpool.ndirs + 1);
+ if (!cbd->dirs)
+ {
+ cbd->dirs = solv_malloc2(cbd->nfiles, sizeof(char *));
+ cbd->names = solv_malloc2(cbd->nfiles, sizeof(char *));
+ for (i = 0; i < cbd->nfiles; i++)
+ {
+ char *s = solv_strdup(pool_id2str(data->repo->pool, cbd->ids[i]));
+ cbd->dirs[i] = s;
+ s = strrchr(s, '/');
+ *s = 0;
+ cbd->names[i] = s + 1;
+ }
+ }
for (i = 0; i < cbd->nfiles; i++)
{
Id did;
@@ -1419,15 +1421,8 @@
if (value->id >= data->dirpool.ndirs || !MAPTST(&cbd->useddirs, value->id))
return 0;
for (i = 0; i < cbd->nfiles; i++)
- {
- if (cbd->dids[i] != value->id)
- continue;
- if (!strcmp(cbd->names[i], value->str))
- break;
- }
- if (i == cbd->nfiles)
- return 0;
- s->provides = repo_addid_dep(s->repo, s->provides, cbd->ids[i], SOLVABLE_FILEMARKER);
+ if (cbd->dids[i] == value->id && !strcmp(cbd->names[i], value->str))
+ s->provides = repo_addid_dep(s->repo, s->provides, cbd->ids[i], SOLVABLE_FILEMARKER);
return 0;
}
@@ -1448,8 +1443,8 @@
cbd->nfiles = sf->nfiles;
cbd->ids = sf->ids;
- cbd->dirs = sf->dirs;
- cbd->names = sf->names;
+ cbd->dirs = 0;
+ cbd->names = 0;
cbd->dids = solv_realloc2(cbd->dids, sf->nfiles, sizeof(Id));
map_init(&cbd->providedids, pool->ss.nstrings);
@@ -1553,6 +1548,13 @@
map_free(&donemap);
queue_free(&fileprovidesq);
map_free(&cbd->providedids);
+ if (cbd->dirs)
+ {
+ for (i = 0; i < cbd->nfiles; i++)
+ solv_free(cbd->dirs[i]);
+ cbd->dirs = solv_free(cbd->dirs);
+ cbd->names = solv_free(cbd->names);
+ }
}
void
@@ -1616,13 +1618,6 @@
for (i = 0; i < sf.nfiles; i++)
queue_push(idqinst, sf.ids[i]);
solv_free(sf.ids);
- for (i = 0; i < sf.nfiles; i++)
- {
- solv_free(sf.dirs[i]);
- solv_free(sf.names[i]);
- }
- solv_free(sf.dirs);
- solv_free(sf.names);
}
if (isf.nfiles)
{
@@ -1636,13 +1631,6 @@
for (i = 0; i < isf.nfiles; i++)
queue_pushunique(idqinst, isf.ids[i]);
solv_free(isf.ids);
- for (i = 0; i < isf.nfiles; i++)
- {
- solv_free(isf.dirs[i]);
- solv_free(isf.names[i]);
- }
- solv_free(isf.dirs);
- solv_free(isf.names);
}
solv_free(cbd.dids);
pool_freewhatprovides(pool); /* as we have added provides */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/src/problems.c new/libsolv-0.6.1/src/problems.c
--- old/libsolv-0.6.0/src/problems.c 2014-04-04 18:50:12.000000000 +0200
+++ new/libsolv-0.6.1/src/problems.c 2014-04-17 14:20:44.000000000 +0200
@@ -160,6 +160,10 @@
continue;
solver_enablerule(solv, r);
}
+ /* make sure broken orphan rules stay disabled */
+ if (solv->brokenorphanrules)
+ for (i = 0; i < solv->brokenorphanrules->count; i++)
+ solver_disablerule(solv, solv->rules + solv->brokenorphanrules->elements[i]);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/src/repodata.c new/libsolv-0.6.1/src/repodata.c
--- old/libsolv-0.6.0/src/repodata.c 2014-04-08 19:10:14.000000000 +0200
+++ new/libsolv-0.6.1/src/repodata.c 2014-04-16 14:00:44.000000000 +0200
@@ -2102,6 +2102,7 @@
return;
if (!data->incoreoffset)
{
+ /* this also means that data->attrs is NULL */
data->incoreoffset = solv_calloc_block(num, sizeof(Id), REPODATA_BLOCK);
data->start = start;
data->end = start + num;
@@ -2812,6 +2813,10 @@
Id *tmpattrs;
if (!data->attrs || dest == src)
return;
+ if (dest < data->start || dest >= data->end)
+ repodata_extend(data, dest);
+ if (src < data->start || src >= data->end)
+ repodata_extend(data, src);
tmpattrs = data->attrs[dest - data->start];
data->attrs[dest - data->start] = data->attrs[src - data->start];
data->attrs[src - data->start] = tmpattrs;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/src/rules.c new/libsolv-0.6.1/src/rules.c
--- old/libsolv-0.6.0/src/rules.c 2014-04-04 16:30:12.000000000 +0200
+++ new/libsolv-0.6.1/src/rules.c 2014-04-17 14:20:44.000000000 +0200
@@ -1246,6 +1246,13 @@
}
#endif
+ if (!allow_all && !p && solv->dupmap_all)
+ {
+ queue_push(&solv->orphaned, s - pool->solvables); /* an orphaned package */
+ if (solv->keep_orphans)
+ p = s - pool->solvables;
+ }
+
if (!allow_all && qs.count && solv->multiversion.size)
{
int i, j;
@@ -1286,7 +1293,7 @@
}
if (j == 0 && p == -SYSTEMSOLVABLE && solv->dupmap_all)
{
- queue_push(&solv->orphaned, s - pool->solvables); /* treat as orphaned */
+ queue_push(&solv->orphaned, s - pool->solvables); /* also treat as orphaned */
j = qs.count;
}
qs.count = j;
@@ -4322,4 +4329,96 @@
map_free(&cleandepsmap);
}
-/* EOF */
+
+void
+solver_breakorphans(Solver *solv)
+{
+ Pool *pool = solv->pool;
+ Repo *installed = solv->installed;
+ int i, rid;
+ Map m;
+
+ if (!installed || solv->droporphanedmap_all)
+ return;
+ solv->brokenorphanrules = solv_calloc(1, sizeof(Queue));
+ queue_init(solv->brokenorphanrules);
+ map_init(&m, installed->end - installed->start);
+ for (i = 0; i < solv->orphaned.count; i++)
+ {
+ Id p = solv->orphaned.elements[i];
+ if (pool->solvables[p].repo != installed)
+ continue;
+ if (solv->droporphanedmap.size && MAPTST(&solv->droporphanedmap, p - installed->start))
+ continue;
+ MAPSET(&m, p - installed->start);
+ }
+ for (rid = 1; rid < solv->rpmrules_end ; rid++)
+ {
+ Id p, *dp;
+ Rule *r = solv->rules + rid;
+ /* ignore non-deps and simple conflicts */
+ if (r->p >= 0 || ((r->d == 0 || r->d == -1) && r->w2 < 0))
+ continue;
+ p = -r->p;
+ if (p < installed->start || p >= installed->end || !MAPTST(&m, p - installed->start))
+ {
+ /* need to check other literals */
+ if (r->d == 0 || r->d == -1)
+ continue;
+ for (dp = pool->whatprovidesdata + (r->d < 0 ? -r->d - 1 : r->d); *dp < 0; dp++)
+ {
+ p = -*dp;
+ if (p >= installed->start && p < installed->end && MAPTST(&m, p - installed->start))
+ break;
+ }
+ if (*dp >= 0)
+ continue;
+ }
+ /* ok, disable this rule */
+ queue_push(solv->brokenorphanrules, rid);
+ if (r->d >= 0)
+ solver_disablerule(solv, r);
+ }
+ map_free(&m);
+ if (!solv->brokenorphanrules->count)
+ {
+ queue_free(solv->brokenorphanrules);
+ solv->brokenorphanrules = solv_free(solv->brokenorphanrules);
+ }
+}
+
+void
+solver_check_brokenorphanrules(Solver *solv, Queue *dq)
+{
+ Pool *pool = solv->pool;
+ int i;
+ Id l, pp;
+
+ queue_empty(dq);
+ if (!solv->brokenorphanrules)
+ return;
+ for (i = 0; i < solv->brokenorphanrules->count; i++)
+ {
+ int rid = solv->brokenorphanrules->elements[i];
+ Rule *r = solv->rules + rid;
+ FOR_RULELITERALS(l, pp, r)
+ {
+ if (l < 0)
+ {
+ if (solv->decisionmap[-l] <= 0)
+ break;
+ }
+ else
+ {
+ if (solv->decisionmap[l] > 0 && pool->solvables[l].repo != solv->installed)
+ break;
+ }
+ }
+ if (l)
+ continue;
+ FOR_RULELITERALS(l, pp, r)
+ if (l > 0 && solv->decisionmap[l] == 0 && pool->solvables[l].repo != solv->installed)
+ queue_pushunique(dq, l);
+ }
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/src/rules.h new/libsolv-0.6.1/src/rules.h
--- old/libsolv-0.6.0/src/rules.h 2013-10-14 17:26:33.000000000 +0200
+++ new/libsolv-0.6.1/src/rules.h 2014-04-17 14:20:44.000000000 +0200
@@ -142,6 +142,9 @@
extern Id solver_rule2solvable(struct _Solver *solv, Id rid);
extern void solver_rule2rules(struct _Solver *solv, Id rid, Queue *q, int recursive);
+/* orphan handling */
+extern void solver_breakorphans(struct _Solver *solv);
+extern void solver_check_brokenorphanrules(struct _Solver *solv, Queue *dq);
#ifdef __cplusplus
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/src/solver.c new/libsolv-0.6.1/src/solver.c
--- old/libsolv-0.6.0/src/solver.c 2014-04-04 18:50:12.000000000 +0200
+++ new/libsolv-0.6.1/src/solver.c 2014-04-17 14:20:44.000000000 +0200
@@ -1573,6 +1573,7 @@
queuep_free(&solv->installsuppdepq);
queuep_free(&solv->recommendscplxq);
queuep_free(&solv->suggestscplxq);
+ queuep_free(&solv->brokenorphanrules);
map_free(&solv->recommendsmap);
map_free(&solv->suggestsmap);
@@ -1639,6 +1640,10 @@
return solv->dup_allowarchchange;
case SOLVER_FLAG_DUP_ALLOW_VENDORCHANGE:
return solv->dup_allowvendorchange;
+ case SOLVER_FLAG_KEEP_ORPHANS:
+ return solv->keep_orphans;
+ case SOLVER_FLAG_BREAK_ORPHANS:
+ return solv->break_orphans;
default:
break;
}
@@ -1702,6 +1707,12 @@
case SOLVER_FLAG_DUP_ALLOW_VENDORCHANGE:
solv->dup_allowvendorchange = value;
break;
+ case SOLVER_FLAG_KEEP_ORPHANS:
+ solv->keep_orphans = value;
+ break;
+ case SOLVER_FLAG_BREAK_ORPHANS:
+ solv->break_orphans = value;
+ break;
default:
break;
}
@@ -2677,6 +2688,26 @@
break;
continue; /* back to main loop */
}
+ if (solv->brokenorphanrules)
+ {
+ solver_check_brokenorphanrules(solv, &dq);
+ if (dq.count)
+ {
+ policy_filter_unwanted(solv, &dq, POLICY_MODE_CHOOSE);
+ for (i = 0; i < dq.count; i++)
+ {
+ p = dq.elements[i];
+ POOL_DEBUG(SOLV_DEBUG_POLICY, "installing orphaned dep %s\n", pool_solvid2str(pool, p));
+ olevel = level;
+ level = setpropagatelearn(solv, level, p, 0, 0);
+ if (level < olevel)
+ break;
+ }
+ if (level == 0)
+ break;
+ continue;
+ }
+ }
}
/* one final pass to make sure we decided all installed packages */
@@ -3293,6 +3324,7 @@
queuep_free(&solv->suggestscplxq);
solv->recommends_index = 0;
}
+ queuep_free(&solv->brokenorphanrules);
solv->specialupdaters = solv_free(solv->specialupdaters);
@@ -3574,20 +3606,16 @@
* check for and remove duplicate
*/
r = solv->rules + solv->nrules - 1; /* r: update rule */
+ if (!r->p)
+ continue;
sr = r - (installed->end - installed->start); /* sr: feature rule */
- /* it's orphaned if there is no feature rule or the feature rule
- * consists just of the installed package */
- if (!sr->p || (sr->p == i && !sr->d && !sr->w2))
+ /* it's also orphaned if the feature rule consists just of the installed package */
+ if (!solv->dupmap_all && sr->p == i && !sr->d && !sr->w2)
queue_push(&solv->orphaned, i);
- if (!r->p)
- {
- /* assert(solv->dupmap_all && !sr->p); */
- continue;
- }
if (!solver_rulecmp(solv, r, sr))
memset(sr, 0, sizeof(*sr)); /* delete unneeded feature rule */
else
- solver_disablerule(solv, sr); /* disable feature rule */
+ solver_disablerule(solv, sr); /* disable feature rule for now */
}
/* consistency check: we added a rule for _every_ installed solvable */
assert(solv->nrules - solv->updaterules == installed->end - installed->start);
@@ -3874,6 +3902,10 @@
/* disable update rules that conflict with our job */
solver_disablepolicyrules(solv);
+ /* break orphans if requested */
+ if (solv->dupmap_all && solv->orphaned.count && solv->break_orphans)
+ solver_breakorphans(solv);
+
/* make initial decisions based on assertion rules */
makeruledecisions(solv);
POOL_DEBUG(SOLV_DEBUG_SOLVER, "problems so far: %d\n", solv->problems.count);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.0/src/solver.h new/libsolv-0.6.1/src/solver.h
--- old/libsolv-0.6.0/src/solver.h 2014-04-04 18:50:12.000000000 +0200
+++ new/libsolv-0.6.1/src/solver.h 2014-04-17 14:20:44.000000000 +0200
@@ -185,6 +185,9 @@
Queue addedmap_deduceq; /* deduce addedmap from rpm rules */
Id *instbuddy; /* buddies of installed packages */
+ int keep_orphans; /* how to treat orphans */
+ int break_orphans; /* how to treat orphans */
+ Queue *brokenorphanrules; /* broken rules of orphaned packages */
#endif /* LIBSOLV_INTERNAL */
};
@@ -282,6 +285,8 @@
#define SOLVER_FLAG_DUP_ALLOW_ARCHCHANGE 15
#define SOLVER_FLAG_DUP_ALLOW_VENDORCHANGE 16
#define SOLVER_FLAG_DUP_ALLOW_NAMECHANGE 17
+#define SOLVER_FLAG_KEEP_ORPHANS 18
+#define SOLVER_FLAG_BREAK_ORPHANS 19
#define GET_USERINSTALLED_NAMES (1 << 0) /* package names instead if ids */
#define GET_USERINSTALLED_INVERTED (1 << 1) /* autoinstalled */
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xorg-x11-server for openSUSE:13.1:Update checked in at 2014-04-25 10:07:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/xorg-x11-server (Old)
and /work/SRC/openSUSE:13.1:Update/.xorg-x11-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xorg-x11-server"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.MvdQ7g/_old 2014-04-25 10:07:31.000000000 +0200
+++ /var/tmp/diff_new_pack.MvdQ7g/_new 2014-04-25 10:07:31.000000000 +0200
@@ -1 +1 @@
-<link package='xorg-x11-server.2418' cicount='copy' />
+<link package='xorg-x11-server.2750' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xorg-x11-server for openSUSE:12.3:Update checked in at 2014-04-25 10:07:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/xorg-x11-server (Old)
and /work/SRC/openSUSE:12.3:Update/.xorg-x11-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xorg-x11-server"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.wP47ww/_old 2014-04-25 10:07:29.000000000 +0200
+++ /var/tmp/diff_new_pack.wP47ww/_new 2014-04-25 10:07:29.000000000 +0200
@@ -1 +1 @@
-<link package='xorg-x11-server.2418' cicount='copy' />
+<link package='xorg-x11-server.2750' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python3-setuptools for openSUSE:Factory checked in at 2014-04-23 20:37:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-setuptools (Old)
and /work/SRC/openSUSE:Factory/.python3-setuptools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-setuptools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-setuptools/python3-setuptools.changes 2014-03-21 13:34:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-setuptools.new/python3-setuptools.changes 2014-04-23 20:37:25.000000000 +0200
@@ -1,0 +2,34 @@
+Thu Apr 17 11:57:05 UTC 2014 - toddrme2178(a)gmail.com
+
+- Update to version 3.4.4
+ * Issue #184: Correct failure where find_package over-matched
+ packages when directory traversal isn't short-circuited.
+- Update to version 3.4.3
+ * Issue #183: Really fix test command with Python 3.1.
+- Update to version 3.4.2
+ * Issue #183: Fix additional regression in test command on
+ Python 3.1.
+- Update to version 3.4.1
+ * Issue #180: Fix regression in test command not caught
+ by py.test-run tests.
+- Update to version 3.4
+ * Issue #176: Add parameter to the test command to support a
+ custom test runner: --test-runner or -r.
+ * Issue #177: Now assume most common invocation to install
+ command on platforms/environments without stack support
+ (issuing a warning). Setuptools now installs naturally on
+ IronPython. Behavior on CPython should be unchanged.
+- Remove %check, which now depends on pytest and thus introduces
+ a dependency loop (setuptools->pytest->py->setuptools)
+
+-------------------------------------------------------------------
+Thu Mar 20 14:25:10 UTC 2014 - speilicke(a)suse.com
+
+- Update to version 3.3:
+ * Add ``include`` parameter to ``setuptools.find_packages()``.
+- Changes from version 3.2:
+ * Pull Request #39: Add support for C++ targets from Cython ``.pyx`` files.
+ * Issue #162: Update dependency on certifi to 1.0.1.
+ * Issue #164: Update dependency on wincertstore to 0.2.
+
+-------------------------------------------------------------------
Old:
----
setuptools-2.1.tar.gz
New:
----
setuptools-3.4.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-setuptools.spec ++++++
--- /var/tmp/diff_new_pack.MbNx92/_old 2014-04-23 20:37:26.000000000 +0200
+++ /var/tmp/diff_new_pack.MbNx92/_new 2014-04-23 20:37:26.000000000 +0200
@@ -17,7 +17,7 @@
Name: python3-setuptools
-Version: 2.1
+Version: 3.4.4
Release: 0
Url: http://pypi.python.org/pypi/setuptools
Summary: Easily download, build, install, upgrade, and uninstall Python packages
@@ -67,9 +67,6 @@
touch %{buildroot}%{_sysconfdir}/alternatives/easy_install
ln -sf %{_sysconfdir}/alternatives/easy_install %{buildroot}/%{_bindir}/easy_install
-%check
-python3 setup.py test
-
%post
update-alternatives \
--install %{_bindir}/easy_install easy_install %{_bindir}/easy_install-%{py3_ver} 30
@@ -86,10 +83,10 @@
%{_bindir}/easy_install-%{py3_ver}
%ghost %{_sysconfdir}/alternatives/easy_install
%{python3_sitelib}/_markerlib
-%{python3_sitelib}/__pycache__
-%{python3_sitelib}/easy_install.py*
-%{python3_sitelib}/pkg_resources.py*
%{python3_sitelib}/setuptools
%{python3_sitelib}/setuptools-%{version}-py%{py3_ver}.egg-info
+%{python3_sitelib}/easy_install.py*
+%{python3_sitelib}/pkg_resources.py*
+%{python3_sitelib}/__pycache__
%changelog
++++++ setuptools-2.1.tar.gz -> setuptools-3.4.4.tar.gz ++++++
++++ 4274 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python3-py for openSUSE:Factory checked in at 2014-04-23 20:37:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-py (Old)
and /work/SRC/openSUSE:Factory/.python3-py.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-py"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-py/python3-py.changes 2014-01-07 16:26:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-py.new/python3-py.changes 2014-04-23 20:37:21.000000000 +0200
@@ -1,0 +2,12 @@
+Wed Apr 23 13:47:10 UTC 2014 - toddrme2178(a)gmail.com
+
+- Update to version 1.4.20:
+ + ignore unicode decode errors in xmlescape. Thanks Anatoly Bubenkoff.
+ + on python2 modify traceback.format_exception_only to match python3
+ behaviour, namely trying to print unicode for Exception instances
+ + use a safer way for serializing exception reports (helps to fix
+ pytest issue413)
+- Drop %check section, we never ran tests. That would need python-pytest
+ and introduce a cycle
+
+-------------------------------------------------------------------
Old:
----
py-1.4.19.tar.gz
New:
----
py-1.4.20.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-py.spec ++++++
--- /var/tmp/diff_new_pack.ytsVra/_old 2014-04-23 20:37:22.000000000 +0200
+++ /var/tmp/diff_new_pack.ytsVra/_new 2014-04-23 20:37:22.000000000 +0200
@@ -17,7 +17,7 @@
Name: python3-py
-Version: 1.4.19
+Version: 1.4.20
Release: 0
Summary: Library with cross-python path, ini-parsing, io, code, log facilities
License: MIT
@@ -53,9 +53,6 @@
%install
python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
-%check
-python3 setup.py test
-
%files
%defattr(-,root,root,-)
%doc LICENSE README.txt doc/_build/html
++++++ py-1.4.19.tar.gz -> py-1.4.20.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/CHANGELOG new/py-1.4.20/CHANGELOG
--- old/py-1.4.19/CHANGELOG 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/CHANGELOG 2014-01-29 13:16:52.000000000 +0100
@@ -1,3 +1,14 @@
+1.4.20
+==================================================
+
+- ignore unicode decode errors in xmlescape. Thanks Anatoly Bubenkoff.
+
+- on python2 modify traceback.format_exception_only to match python3
+ behaviour, namely trying to print unicode for Exception instances
+
+- use a safer way for serializing exception reports (helps to fix
+ pytest issue413)
+
Changes between 1.4.18 and 1.4.19
==================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/MANIFEST.in new/py-1.4.20/MANIFEST.in
--- old/py-1.4.19/MANIFEST.in 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/MANIFEST.in 2014-01-29 13:16:52.000000000 +0100
@@ -1,7 +1,6 @@
include CHANGELOG
include README.txt
include setup.py
-include distribute_setup.py
include LICENSE
include conftest.py
include tox.ini
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/PKG-INFO new/py-1.4.20/PKG-INFO
--- old/py-1.4.19/PKG-INFO 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/PKG-INFO 2014-01-29 13:16:53.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: py
-Version: 1.4.19
+Version: 1.4.20
Summary: library with cross-python path, ini-parsing, io, code, log facilities
Home-page: http://pylib.readthedocs.org/
Author: holger krekel, Ronny Pfannschmidt, Benjamin Peterson and others
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/doc/code.txt new/py-1.4.20/doc/code.txt
--- old/py-1.4.19/doc/code.txt 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/doc/code.txt 2014-01-29 13:16:52.000000000 +0100
@@ -145,3 +145,6 @@
.. autoclass:: py.code.ExceptionInfo
:members:
+.. autoclass:: py.code.Traceback
+ :members:
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/py/__init__.py new/py-1.4.20/py/__init__.py
--- old/py-1.4.19/py/__init__.py 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/py/__init__.py 2014-01-29 13:16:52.000000000 +0100
@@ -8,7 +8,7 @@
(c) Holger Krekel and others, 2004-2013
"""
-__version__ = '1.4.19'
+__version__ = '1.4.20'
from py import _apipkg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/py/_code/_py2traceback.py new/py-1.4.20/py/_code/_py2traceback.py
--- old/py-1.4.19/py/_code/_py2traceback.py 1970-01-01 01:00:00.000000000 +0100
+++ new/py-1.4.20/py/_code/_py2traceback.py 2014-01-29 13:16:52.000000000 +0100
@@ -0,0 +1,79 @@
+# copied from python-2.7.3's traceback.py
+# CHANGES:
+# - some_str is replaced, trying to create unicode strings
+#
+import types
+
+def format_exception_only(etype, value):
+ """Format the exception part of a traceback.
+
+ The arguments are the exception type and value such as given by
+ sys.last_type and sys.last_value. The return value is a list of
+ strings, each ending in a newline.
+
+ Normally, the list contains a single string; however, for
+ SyntaxError exceptions, it contains several lines that (when
+ printed) display detailed information about where the syntax
+ error occurred.
+
+ The message indicating which exception occurred is always the last
+ string in the list.
+
+ """
+
+ # An instance should not have a meaningful value parameter, but
+ # sometimes does, particularly for string exceptions, such as
+ # >>> raise string1, string2 # deprecated
+ #
+ # Clear these out first because issubtype(string1, SyntaxError)
+ # would throw another exception and mask the original problem.
+ if (isinstance(etype, BaseException) or
+ isinstance(etype, types.InstanceType) or
+ etype is None or type(etype) is str):
+ return [_format_final_exc_line(etype, value)]
+
+ stype = etype.__name__
+
+ if not issubclass(etype, SyntaxError):
+ return [_format_final_exc_line(stype, value)]
+
+ # It was a syntax error; show exactly where the problem was found.
+ lines = []
+ try:
+ msg, (filename, lineno, offset, badline) = value.args
+ except Exception:
+ pass
+ else:
+ filename = filename or "<string>"
+ lines.append(' File "%s", line %d\n' % (filename, lineno))
+ if badline is not None:
+ lines.append(' %s\n' % badline.strip())
+ if offset is not None:
+ caretspace = badline.rstrip('\n')[:offset].lstrip()
+ # non-space whitespace (likes tabs) must be kept for alignment
+ caretspace = ((c.isspace() and c or ' ') for c in caretspace)
+ # only three spaces to account for offset1 == pos 0
+ lines.append(' %s^\n' % ''.join(caretspace))
+ value = msg
+
+ lines.append(_format_final_exc_line(stype, value))
+ return lines
+
+def _format_final_exc_line(etype, value):
+ """Return a list of a single line -- normal case for format_exception_only"""
+ valuestr = _some_str(value)
+ if value is None or not valuestr:
+ line = "%s\n" % etype
+ else:
+ line = "%s: %s\n" % (etype, valuestr)
+ return line
+
+def _some_str(value):
+ try:
+ return unicode(value)
+ except Exception:
+ try:
+ return str(value)
+ except Exception:
+ pass
+ return '<unprintable %s object>' % type(value).__name__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/py/_code/code.py new/py-1.4.20/py/_code/code.py
--- old/py-1.4.19/py/_code/code.py 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/py/_code/code.py 2014-01-29 13:16:52.000000000 +0100
@@ -6,6 +6,11 @@
reprlib = py.builtin._tryimport('repr', 'reprlib')
+if sys.version_info[0] >= 3:
+ from traceback import format_exception_only
+else:
+ from py._code._py2traceback import format_exception_only
+
class Code(object):
""" wrapper around Python code objects """
def __init__(self, rawcode):
@@ -331,8 +336,6 @@
"""
_striptext = ''
def __init__(self, tup=None, exprinfo=None):
- # NB. all attributes are private! Subclasses or other
- # ExceptionInfo-like classes may have different attributes.
if tup is None:
tup = sys.exc_info()
if exprinfo is None and isinstance(tup[1], AssertionError):
@@ -342,9 +345,16 @@
if exprinfo and exprinfo.startswith('assert '):
self._striptext = 'AssertionError: '
self._excinfo = tup
- self.type, self.value, tb = tup
+ #: the exception class
+ self.type = tup[0]
+ #: the exception instance
+ self.value = tup[1]
+ #: the exception raw traceback
+ self.tb = tup[2]
+ #: the exception type name
self.typename = self.type.__name__
- self.traceback = py.code.Traceback(tb)
+ #: the exception traceback (py.code.Traceback instance)
+ self.traceback = py.code.Traceback(self.tb)
def __repr__(self):
return "<ExceptionInfo %s tblen=%d>" % (self.typename, len(self.traceback))
@@ -357,7 +367,7 @@
the exception representation is returned (so 'AssertionError: ' is
removed from the beginning)
"""
- lines = self._format_exception_only(self.type, self.value)
+ lines = format_exception_only(self.type, self.value)
text = ''.join(lines)
text = text.rstrip()
if tryshort:
@@ -365,17 +375,6 @@
text = text[len(self._striptext):]
return text
- def _format_exception_only(self, etype, value):
- """Format the exception part of a traceback
-
- Since traceback.format_exception_only() destroys unicode on
- python 2 we handle plain AsssertionErrors separately here.
- """
- if isinstance(value, AssertionError) and hasattr(value, 'msg'):
- return ['AssertionError: ' + value.msg]
- else:
- return py.std.traceback.format_exception_only(etype, value)
-
def errisinstance(self, exc):
""" return True if the exception is an instance of exc """
return isinstance(self.value, exc)
@@ -594,22 +593,16 @@
return s
def __unicode__(self):
- l = []
- tw = py.io.TerminalWriter(l.append)
+ # FYI this is called from pytest-xdist's serialization of exception
+ # information.
+ io = py.io.TextIO()
+ tw = py.io.TerminalWriter(file=io)
self.toterminal(tw)
- l = map(unicode_or_repr, l)
- return "".join(l).strip()
+ return io.getvalue().strip()
def __repr__(self):
return "<%s instance at %0x>" %(self.__class__, id(self))
-def unicode_or_repr(obj):
- try:
- return py.builtin._totext(obj)
- except KeyboardInterrupt:
- raise
- except Exception:
- return "<print-error: %r>" % py.io.saferepr(obj)
class ReprExceptionInfo(TerminalRepr):
def __init__(self, reprtraceback, reprcrash):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/py/_io/capture.py new/py-1.4.20/py/_io/capture.py
--- old/py-1.4.19/py/_io/capture.py 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/py/_io/capture.py 2014-01-29 13:16:52.000000000 +0100
@@ -183,7 +183,14 @@
"""
def __init__(self, out=True, err=True, mixed=False,
in_=True, patchsys=True, now=True):
- self._options = locals()
+ self._options = {
+ "out": out,
+ "err": err,
+ "mixed": mixed,
+ "in_": in_,
+ "patchsys": patchsys,
+ "now": now,
+ }
self._save()
if now:
self.startall()
@@ -251,20 +258,26 @@
def readouterr(self):
""" return snapshot value of stdout/stderr capturings. """
- l = []
- for name in ('out', 'err'):
- res = ""
- if hasattr(self, name):
- f = getattr(self, name).tmpfile
- f.seek(0)
- res = f.read()
- enc = getattr(f, 'encoding', None)
- if enc:
- res = py.builtin._totext(res, enc, 'replace')
- f.truncate(0)
- f.seek(0)
- l.append(res)
- return l
+ if hasattr(self, "out"):
+ out = self._readsnapshot(self.out.tmpfile)
+ else:
+ out = ""
+ if hasattr(self, "err"):
+ err = self._readsnapshot(self.err.tmpfile)
+ else:
+ err = ""
+ return [out, err]
+
+ def _readsnapshot(self, f):
+ f.seek(0)
+ res = f.read()
+ enc = getattr(f, "encoding", None)
+ if enc:
+ res = py.builtin._totext(res, enc, "replace")
+ f.truncate(0)
+ f.seek(0)
+ return res
+
class StdCapture(Capture):
""" This class allows to capture writes to sys.stdout|stderr "in-memory"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/py/_xmlgen.py new/py-1.4.20/py/_xmlgen.py
--- old/py-1.4.19/py/_xmlgen.py 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/py/_xmlgen.py 2014-01-29 13:16:52.000000000 +0100
@@ -9,7 +9,7 @@
if sys.version_info >= (3,0):
def u(s):
return s
- def unicode(x):
+ def unicode(x, errors=None):
if hasattr(x, '__unicode__'):
return x.__unicode__()
return str(x)
@@ -244,7 +244,10 @@
def __call__(self, ustring):
""" xml-escape the given unicode string. """
- ustring = unicode(ustring)
+ try:
+ ustring = unicode(ustring)
+ except UnicodeDecodeError:
+ ustring = unicode(ustring, 'utf-8', errors='replace')
return self.charef_rex.sub(self._replacer, ustring)
escape = _escape()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/py.egg-info/PKG-INFO new/py-1.4.20/py.egg-info/PKG-INFO
--- old/py-1.4.19/py.egg-info/PKG-INFO 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/py.egg-info/PKG-INFO 2014-01-29 13:16:53.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: py
-Version: 1.4.19
+Version: 1.4.20
Summary: library with cross-python path, ini-parsing, io, code, log facilities
Home-page: http://pylib.readthedocs.org/
Author: holger krekel, Ronny Pfannschmidt, Benjamin Peterson and others
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/py.egg-info/SOURCES.txt new/py-1.4.20/py.egg-info/SOURCES.txt
--- old/py-1.4.19/py.egg-info/SOURCES.txt 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/py.egg-info/SOURCES.txt 2014-01-29 13:16:53.000000000 +0100
@@ -59,6 +59,7 @@
py/_code/__init__.py
py/_code/_assertionnew.py
py/_code/_assertionold.py
+py/_code/_py2traceback.py
py/_code/assertion.py
py/_code/code.py
py/_code/source.py
@@ -86,7 +87,6 @@
testing/code/test_excinfo.py
testing/code/test_source.py
testing/io_/__init__.py
-testing/io_/test_capture.py
testing/io_/test_saferepr.py
testing/io_/test_terminalwriter.py
testing/log/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/setup.py new/py-1.4.20/setup.py
--- old/py-1.4.19/setup.py 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/setup.py 2014-01-29 13:16:52.000000000 +0100
@@ -7,7 +7,7 @@
name='py',
description='library with cross-python path, ini-parsing, io, code, log facilities',
long_description = open('README.txt').read(),
- version='1.4.19',
+ version='1.4.20',
url='http://pylib.readthedocs.org/',
license='MIT license',
platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/testing/code/test_code.py new/py-1.4.20/testing/code/test_code.py
--- old/py-1.4.19/testing/code/test_code.py 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/testing/code/test_code.py 2014-01-29 13:16:52.000000000 +0100
@@ -89,23 +89,6 @@
if sys.version_info[0] < 3:
u = unicode(excinfo)
-def test_unicode_or_repr():
- from py._code.code import unicode_or_repr
- assert unicode_or_repr('hello') == "hello"
- if sys.version_info[0] < 3:
- s = unicode_or_repr('\xf6\xc4\x85')
- else:
- s = eval("unicode_or_repr(b'\\f6\\xc4\\x85')")
- assert 'print-error' in s
- assert 'c4' in s
- class A:
- def __repr__(self):
- raise ValueError()
- s = unicode_or_repr(A())
- assert 'print-error' in s
- assert 'ValueError' in s
-
-
def test_code_getargs():
def f1(x):
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/testing/code/test_excinfo.py new/py-1.4.20/testing/code/test_excinfo.py
--- old/py-1.4.19/testing/code/test_excinfo.py 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/testing/code/test_excinfo.py 2014-01-29 13:16:52.000000000 +0100
@@ -727,6 +727,14 @@
assert isinstance(repr, ReprExceptionInfo)
assert repr.reprtraceback.style == style
+ def test_reprexcinfo_unicode(self):
+ from py._code.code import TerminalRepr
+ class MyRepr(TerminalRepr):
+ def toterminal(self, tw):
+ tw.line(py.builtin._totext("я", "utf-8"))
+ x = py.builtin._totext(MyRepr())
+ assert x == py.builtin._totext("я", "utf-8")
+
def test_toterminal_long(self, importasmod):
mod = importasmod("""
def g(x):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/testing/io_/test_capture.py new/py-1.4.20/testing/io_/test_capture.py
--- old/py-1.4.19/testing/io_/test_capture.py 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/testing/io_/test_capture.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,501 +0,0 @@
-from __future__ import with_statement
-
-import os, sys
-import py
-
-needsdup = py.test.mark.skipif("not hasattr(os, 'dup')")
-
-from py.builtin import print_
-
-if sys.version_info >= (3,0):
- def tobytes(obj):
- if isinstance(obj, str):
- obj = obj.encode('UTF-8')
- assert isinstance(obj, bytes)
- return obj
- def totext(obj):
- if isinstance(obj, bytes):
- obj = str(obj, 'UTF-8')
- assert isinstance(obj, str)
- return obj
-else:
- def tobytes(obj):
- if isinstance(obj, unicode):
- obj = obj.encode('UTF-8')
- assert isinstance(obj, str)
- return obj
- def totext(obj):
- if isinstance(obj, str):
- obj = unicode(obj, 'UTF-8')
- assert isinstance(obj, unicode)
- return obj
-
-def oswritebytes(fd, obj):
- os.write(fd, tobytes(obj))
-
-class TestTextIO:
- def test_text(self):
- f = py.io.TextIO()
- f.write("hello")
- s = f.getvalue()
- assert s == "hello"
- f.close()
-
- def test_unicode_and_str_mixture(self):
- f = py.io.TextIO()
- if sys.version_info >= (3,0):
- f.write("\u00f6")
- py.test.raises(TypeError, "f.write(bytes('hello', 'UTF-8'))")
- else:
- f.write(unicode("\u00f6", 'UTF-8'))
- f.write("hello") # bytes
- s = f.getvalue()
- f.close()
- assert isinstance(s, unicode)
-
-def test_bytes_io():
- f = py.io.BytesIO()
- f.write(tobytes("hello"))
- py.test.raises(TypeError, "f.write(totext('hello'))")
- s = f.getvalue()
- assert s == tobytes("hello")
-
-def test_dontreadfrominput():
- from py._io.capture import DontReadFromInput
- f = DontReadFromInput()
- assert not f.isatty()
- py.test.raises(IOError, f.read)
- py.test.raises(IOError, f.readlines)
- py.test.raises(IOError, iter, f)
- py.test.raises(ValueError, f.fileno)
- f.close() # just for completeness
-
-def pytest_funcarg__tmpfile(request):
- testdir = request.getfuncargvalue("testdir")
- f = testdir.makepyfile("").open('wb+')
- request.addfinalizer(f.close)
- return f
-
-@needsdup
-def test_dupfile(tmpfile):
- flist = []
- for i in range(5):
- nf = py.io.dupfile(tmpfile, encoding="utf-8")
- assert nf != tmpfile
- assert nf.fileno() != tmpfile.fileno()
- assert nf not in flist
- print_(i, end="", file=nf)
- flist.append(nf)
- for i in range(5):
- f = flist[i]
- f.close()
- tmpfile.seek(0)
- s = tmpfile.read()
- assert "01234" in repr(s)
- tmpfile.close()
-
-def test_dupfile_no_mode():
- """
- dupfile should trap an AttributeError and return f if no mode is supplied.
- """
- class SomeFileWrapper(object):
- "An object with a fileno method but no mode attribute"
- def fileno(self):
- return 1
- tmpfile = SomeFileWrapper()
- assert py.io.dupfile(tmpfile) is tmpfile
- with py.test.raises(AttributeError):
- py.io.dupfile(tmpfile, raising=True)
-
-def lsof_check(func):
- pid = os.getpid()
- try:
- out = py.process.cmdexec("lsof -p %d" % pid)
- except py.process.cmdexec.Error:
- py.test.skip("could not run 'lsof'")
- func()
- out2 = py.process.cmdexec("lsof -p %d" % pid)
- len1 = len([x for x in out.split("\n") if "REG" in x])
- len2 = len([x for x in out2.split("\n") if "REG" in x])
- assert len2 < len1 + 3, out2
-
-class TestFDCapture:
- pytestmark = needsdup
-
- def test_not_now(self, tmpfile):
- fd = tmpfile.fileno()
- cap = py.io.FDCapture(fd, now=False)
- data = tobytes("hello")
- os.write(fd, data)
- f = cap.done()
- s = f.read()
- assert not s
- cap = py.io.FDCapture(fd, now=False)
- cap.start()
- os.write(fd, data)
- f = cap.done()
- s = f.read()
- assert s == "hello"
-
- def test_simple(self, tmpfile):
- fd = tmpfile.fileno()
- cap = py.io.FDCapture(fd)
- data = tobytes("hello")
- os.write(fd, data)
- f = cap.done()
- s = f.read()
- assert s == "hello"
- f.close()
-
- def test_simple_many(self, tmpfile):
- for i in range(10):
- self.test_simple(tmpfile)
-
- def test_simple_many_check_open_files(self, tmpfile):
- lsof_check(lambda: self.test_simple_many(tmpfile))
-
- def test_simple_fail_second_start(self, tmpfile):
- fd = tmpfile.fileno()
- cap = py.io.FDCapture(fd)
- f = cap.done()
- py.test.raises(ValueError, cap.start)
- f.close()
-
- def test_stderr(self):
- cap = py.io.FDCapture(2, patchsys=True)
- print_("hello", file=sys.stderr)
- f = cap.done()
- s = f.read()
- assert s == "hello\n"
-
- def test_stdin(self, tmpfile):
- tmpfile.write(tobytes("3"))
- tmpfile.seek(0)
- cap = py.io.FDCapture(0, tmpfile=tmpfile)
- # check with os.read() directly instead of raw_input(), because
- # sys.stdin itself may be redirected (as py.test now does by default)
- x = os.read(0, 100).strip()
- f = cap.done()
- assert x == tobytes("3")
-
- def test_writeorg(self, tmpfile):
- data1, data2 = tobytes("foo"), tobytes("bar")
- try:
- cap = py.io.FDCapture(tmpfile.fileno())
- tmpfile.write(data1)
- cap.writeorg(data2)
- finally:
- tmpfile.close()
- f = cap.done()
- scap = f.read()
- assert scap == totext(data1)
- stmp = open(tmpfile.name, 'rb').read()
- assert stmp == data2
-
-
-class TestStdCapture:
- def getcapture(self, **kw):
- return py.io.StdCapture(**kw)
-
- def test_capturing_done_simple(self):
- cap = self.getcapture()
- sys.stdout.write("hello")
- sys.stderr.write("world")
- outfile, errfile = cap.done()
- s = outfile.read()
- assert s == "hello"
- s = errfile.read()
- assert s == "world"
-
- def test_capturing_reset_simple(self):
- cap = self.getcapture()
- print("hello world")
- sys.stderr.write("hello error\n")
- out, err = cap.reset()
- assert out == "hello world\n"
- assert err == "hello error\n"
-
- def test_capturing_readouterr(self):
- cap = self.getcapture()
- try:
- print ("hello world")
- sys.stderr.write("hello error\n")
- out, err = cap.readouterr()
- assert out == "hello world\n"
- assert err == "hello error\n"
- sys.stderr.write("error2")
- finally:
- out, err = cap.reset()
- assert err == "error2"
-
- def test_capturing_readouterr_unicode(self):
- cap = self.getcapture()
- print ("hx\xc4\x85\xc4\x87")
- out, err = cap.readouterr()
- assert out == py.builtin._totext("hx\xc4\x85\xc4\x87\n", "utf8")
-
- @py.test.mark.skipif('sys.version_info >= (3,)',
- reason='text output different for bytes on python3')
- def test_capturing_readouterr_decode_error_handling(self):
- cap = self.getcapture()
- # triggered a internal error in pytest
- print('\xa6')
- out, err = cap.readouterr()
- assert out == py.builtin._totext('\ufffd\n', 'unicode-escape')
-
- def test_capturing_mixed(self):
- cap = self.getcapture(mixed=True)
- sys.stdout.write("hello ")
- sys.stderr.write("world")
- sys.stdout.write(".")
- out, err = cap.reset()
- assert out.strip() == "hello world."
- assert not err
-
- def test_reset_twice_error(self):
- cap = self.getcapture()
- print ("hello")
- out, err = cap.reset()
- py.test.raises(ValueError, cap.reset)
- assert out == "hello\n"
- assert not err
-
- def test_capturing_modify_sysouterr_in_between(self):
- oldout = sys.stdout
- olderr = sys.stderr
- cap = self.getcapture()
- sys.stdout.write("hello")
- sys.stderr.write("world")
- sys.stdout = py.io.TextIO()
- sys.stderr = py.io.TextIO()
- print ("not seen")
- sys.stderr.write("not seen\n")
- out, err = cap.reset()
- assert out == "hello"
- assert err == "world"
- assert sys.stdout == oldout
- assert sys.stderr == olderr
-
- def test_capturing_error_recursive(self):
- cap1 = self.getcapture()
- print ("cap1")
- cap2 = self.getcapture()
- print ("cap2")
- out2, err2 = cap2.reset()
- out1, err1 = cap1.reset()
- assert out1 == "cap1\n"
- assert out2 == "cap2\n"
-
- def test_just_out_capture(self):
- cap = self.getcapture(out=True, err=False)
- sys.stdout.write("hello")
- sys.stderr.write("world")
- out, err = cap.reset()
- assert out == "hello"
- assert not err
-
- def test_just_err_capture(self):
- cap = self.getcapture(out=False, err=True)
- sys.stdout.write("hello")
- sys.stderr.write("world")
- out, err = cap.reset()
- assert err == "world"
- assert not out
-
- def test_stdin_restored(self):
- old = sys.stdin
- cap = self.getcapture(in_=True)
- newstdin = sys.stdin
- out, err = cap.reset()
- assert newstdin != sys.stdin
- assert sys.stdin is old
-
- def test_stdin_nulled_by_default(self):
- print ("XXX this test may well hang instead of crashing")
- print ("XXX which indicates an error in the underlying capturing")
- print ("XXX mechanisms")
- cap = self.getcapture()
- py.test.raises(IOError, "sys.stdin.read()")
- out, err = cap.reset()
-
- def test_suspend_resume(self):
- cap = self.getcapture(out=True, err=False, in_=False)
- try:
- print ("hello")
- sys.stderr.write("error\n")
- out, err = cap.suspend()
- assert out == "hello\n"
- assert not err
- print ("in between")
- sys.stderr.write("in between\n")
- cap.resume()
- print ("after")
- sys.stderr.write("error_after\n")
- finally:
- out, err = cap.reset()
- assert out == "after\n"
- assert not err
-
-class TestStdCaptureNotNow(TestStdCapture):
- def getcapture(self, **kw):
- kw['now'] = False
- cap = py.io.StdCapture(**kw)
- cap.startall()
- return cap
-
-class TestStdCaptureFD(TestStdCapture):
- pytestmark = needsdup
-
- def getcapture(self, **kw):
- return py.io.StdCaptureFD(**kw)
-
- def test_intermingling(self):
- cap = self.getcapture()
- oswritebytes(1, "1")
- sys.stdout.write(str(2))
- sys.stdout.flush()
- oswritebytes(1, "3")
- oswritebytes(2, "a")
- sys.stderr.write("b")
- sys.stderr.flush()
- oswritebytes(2, "c")
- out, err = cap.reset()
- assert out == "123"
- assert err == "abc"
-
- def test_callcapture(self):
- def func(x, y):
- print (x)
- py.std.sys.stderr.write(str(y))
- return 42
-
- res, out, err = py.io.StdCaptureFD.call(func, 3, y=4)
- assert res == 42
- assert out.startswith("3")
- assert err.startswith("4")
-
- def test_many(self, capfd):
- def f():
- for i in range(10):
- cap = py.io.StdCaptureFD()
- cap.reset()
- lsof_check(f)
-
-class TestStdCaptureFDNotNow(TestStdCaptureFD):
- pytestmark = needsdup
-
- def getcapture(self, **kw):
- kw['now'] = False
- cap = py.io.StdCaptureFD(**kw)
- cap.startall()
- return cap
-
-@needsdup
-def test_stdcapture_fd_tmpfile(tmpfile):
- capfd = py.io.StdCaptureFD(out=tmpfile)
- os.write(1, "hello".encode("ascii"))
- os.write(2, "world".encode("ascii"))
- outf, errf = capfd.done()
- assert outf == tmpfile
-
-class TestStdCaptureFDinvalidFD:
- pytestmark = needsdup
- def test_stdcapture_fd_invalid_fd(self, testdir):
- testdir.makepyfile("""
- import py, os
- def test_stdout():
- os.close(1)
- cap = py.io.StdCaptureFD(out=True, err=False, in_=False)
- cap.done()
- def test_stderr():
- os.close(2)
- cap = py.io.StdCaptureFD(out=False, err=True, in_=False)
- cap.done()
- def test_stdin():
- os.close(0)
- cap = py.io.StdCaptureFD(out=False, err=False, in_=True)
- cap.done()
- """)
- result = testdir.runpytest("--capture=fd")
- assert result.ret == 0
- assert result.parseoutcomes()['passed'] == 3
-
-def test_capture_not_started_but_reset():
- capsys = py.io.StdCapture(now=False)
- capsys.done()
- capsys.done()
- capsys.reset()
-
-@needsdup
-def test_capture_no_sys():
- capsys = py.io.StdCapture()
- try:
- cap = py.io.StdCaptureFD(patchsys=False)
- sys.stdout.write("hello")
- sys.stderr.write("world")
- oswritebytes(1, "1")
- oswritebytes(2, "2")
- out, err = cap.reset()
- assert out == "1"
- assert err == "2"
- finally:
- capsys.reset()
-
-@needsdup
-def test_callcapture_nofd():
- def func(x, y):
- oswritebytes(1, "hello")
- oswritebytes(2, "hello")
- print (x)
- sys.stderr.write(str(y))
- return 42
-
- capfd = py.io.StdCaptureFD(patchsys=False)
- try:
- res, out, err = py.io.StdCapture.call(func, 3, y=4)
- finally:
- capfd.reset()
- assert res == 42
- assert out.startswith("3")
- assert err.startswith("4")
-
-@needsdup
-(a)py.test.mark.multi(use=[True, False])
-def test_fdcapture_tmpfile_remains_the_same(tmpfile, use):
- if not use:
- tmpfile = True
- cap = py.io.StdCaptureFD(out=False, err=tmpfile, now=False)
- cap.startall()
- capfile = cap.err.tmpfile
- cap.suspend()
- cap.resume()
- capfile2 = cap.err.tmpfile
- assert capfile2 == capfile
-
-(a)py.test.mark.multi(method=['StdCapture', 'StdCaptureFD'])
-def test_capturing_and_logging_fundamentals(testdir, method):
- if method == "StdCaptureFD" and not hasattr(os, 'dup'):
- py.test.skip("need os.dup")
- # here we check a fundamental feature
- p = testdir.makepyfile("""
- import sys, os
- import py, logging
- cap = py.io.%s(out=False, in_=False)
-
- logging.warn("hello1")
- outerr = cap.suspend()
- print ("suspend, captured %%s" %%(outerr,))
- logging.warn("hello2")
-
- cap.resume()
- logging.warn("hello3")
-
- outerr = cap.suspend()
- print ("suspend2, captured %%s" %% (outerr,))
- """ % (method,))
- result = testdir.runpython(p)
- result.stdout.fnmatch_lines([
- "suspend, captured*hello1*",
- "suspend2, captured*hello2*WARNING:root:hello3*",
- ])
- assert "atexit" not in result.stderr.str()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/testing/io_/test_saferepr.py new/py-1.4.20/testing/io_/test_saferepr.py
--- old/py-1.4.19/testing/io_/test_saferepr.py 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/testing/io_/test_saferepr.py 2014-01-29 13:16:52.000000000 +0100
@@ -76,18 +76,3 @@
if sys.version_info[0] < 3:
u = unicode(excinfo)
-def test_unicode_or_repr():
- from py._code.code import unicode_or_repr
- assert unicode_or_repr('hello') == "hello"
- if sys.version_info[0] < 3:
- s = unicode_or_repr('\xf6\xc4\x85')
- else:
- s = eval("unicode_or_repr(b'\\f6\\xc4\\x85')")
- assert 'print-error' in s
- assert 'c4' in s
- class A:
- def __repr__(self):
- raise ValueError()
- s = unicode_or_repr(A())
- assert 'print-error' in s
- assert 'ValueError' in s
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.19/testing/root/test_xmlgen.py new/py-1.4.20/testing/root/test_xmlgen.py
--- old/py-1.4.19/testing/root/test_xmlgen.py 2013-12-12 12:07:15.000000000 +0100
+++ new/py-1.4.20/testing/root/test_xmlgen.py 2014-01-29 13:16:52.000000000 +0100
@@ -6,7 +6,7 @@
pass
def test_escape():
- uvalue = py.builtin._totext('\xc4\x85\xc4\x87\n', 'utf-8')
+ uvalue = py.builtin._totext('\xc4\x85\xc4\x87\n\xe2\x82\xac\n', 'utf-8')
class A:
def __unicode__(self):
return uvalue
@@ -22,6 +22,8 @@
if py.std.sys.version_info[0] < 3:
assert isinstance(x, unicode)
assert isinstance(y, unicode)
+ y = py.xml.escape(uvalue.encode('utf-8'))
+ assert y == uvalue
def test_tag_with_text():
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package pcsc-acsccid for openSUSE:Factory checked in at 2014-04-23 20:36:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pcsc-acsccid (Old)
and /work/SRC/openSUSE:Factory/.pcsc-acsccid.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pcsc-acsccid"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pcsc-acsccid/pcsc-acsccid.changes 2013-09-11 13:04:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pcsc-acsccid.new/pcsc-acsccid.changes 2014-04-23 20:36:47.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Apr 23 09:54:35 UTC 2014 - godfrey.chung(a)acs.com.hk
+
+- Updated to version 1.0.6.
+
+-------------------------------------------------------------------
Old:
----
acsccid-1.0.5.tar.bz2
New:
----
acsccid-1.0.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pcsc-acsccid.spec ++++++
--- /var/tmp/diff_new_pack.GNCpuD/_old 2014-04-23 20:36:48.000000000 +0200
+++ /var/tmp/diff_new_pack.GNCpuD/_new 2014-04-23 20:36:48.000000000 +0200
@@ -1,8 +1,8 @@
#
# spec file for package pcsc-acsccid
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# Copyright (c) 2013 Advanced Card Systems Ltd.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 Advanced Card Systems Ltd.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -34,7 +34,7 @@
%if 0%{?suse_version} >= 1140
BuildRequires: udev
%endif
-Version: 1.0.5
+Version: 1.0.6
Release: 0
Url: http://acsccid.sourceforge.net/
Summary: PCSC Driver for ACS CCID Based Smart Card Readers
@@ -46,6 +46,7 @@
Requires: pcsc-lite >= 1.3.3
%define ifddir %(pkg-config libpcsclite --variable=usbdropdir)
+Enhances: modalias(usb:v072fpb301d*dc*dsc*dp*ic*isc*ip*)
Enhances: modalias(usb:v072fp8300d*dc*dsc*dp*ic*isc*ip*)
Enhances: modalias(usb:v072fp8302d*dc*dsc*dp*ic*isc*ip*)
Enhances: modalias(usb:v072fp8307d*dc*dsc*dp*ic*isc*ip*)
@@ -82,6 +83,11 @@
Enhances: modalias(usb:v072fp222dd*dc*dsc*dp*ic*isc*ip*)
Enhances: modalias(usb:v072fp2218d*dc*dsc*dp*ic*isc*ip*)
Enhances: modalias(usb:v072fp221bd*dc*dsc*dp*ic*isc*ip*)
+Enhances: modalias(usb:v072fp2232d*dc*dsc*dp*ic*isc*ip*)
+Enhances: modalias(usb:v072fp223bd*dc*dsc*dp*ic*isc*ip*)
+Enhances: modalias(usb:v072fp223ed*dc*dsc*dp*ic*isc*ip*)
+Enhances: modalias(usb:v072fp223dd*dc*dsc*dp*ic*isc*ip*)
+Enhances: modalias(usb:v072fp2239d*dc*dsc*dp*ic*isc*ip*)
Enhances: modalias(usb:v072fp2100d*dc*dsc*dp*ic*isc*ip*)
Enhances: modalias(usb:v072fp2224d*dc*dsc*dp*ic*isc*ip*)
Enhances: modalias(usb:v072fp220fd*dc*dsc*dp*ic*isc*ip*)
++++++ acsccid-1.0.5.tar.bz2 -> acsccid-1.0.6.tar.bz2 ++++++
++++ 6205 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package imagewriter for openSUSE:Factory checked in at 2014-04-23 20:36:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/imagewriter (Old)
and /work/SRC/openSUSE:Factory/.imagewriter.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "imagewriter"
Changes:
--------
--- /work/SRC/openSUSE:Factory/imagewriter/imagewriter.changes 2014-01-07 06:53:46.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.imagewriter.new/imagewriter.changes 2014-04-23 20:36:40.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Apr 14 09:40:36 UTC 2014 - lnussel(a)suse.de
+
+- run as non-root and use udisks to get the file descriptor for the
+ usb device
+- generate from git via _service file
+
+-------------------------------------------------------------------
Old:
----
imagewriter-1.10.tar.gz
New:
----
_service
imagewriter-1.10.1396965491.a4dcffa.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ imagewriter.spec ++++++
--- /var/tmp/diff_new_pack.wT9dfL/_old 2014-04-23 20:36:41.000000000 +0200
+++ /var/tmp/diff_new_pack.wT9dfL/_new 2014-04-23 20:36:41.000000000 +0200
@@ -57,11 +57,11 @@
%endif
Summary: Utility for writing disk images to USB keys
-Version: 1.10
+Version: 1.10.1396965491.a4dcffa
Release: 0
Group: Hardware/Other
License: GPL-2.0
-Source: imagewriter-%{version}.tar.gz
+Source: imagewriter-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: %{breq} %{backend}
BuildRequires: hicolor-icon-theme
++++++ _service ++++++
<services>
<service name="tar_scm" mode="disabled">
<param name="url">git://github.com/openSUSE/imagewriter.git</param>
<param name="versionprefix">1.10</param>
<param name="versionformat">%ct.%h</param>
<param name="scm">git</param>
<param name="revision">master</param>
</service>
<service name="recompress" mode="disabled">
<param name="compression">xz</param>
<param name="file">*.tar</param>
</service>
<service name="set_version" mode="disabled" />
</services>
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package i4l-base for openSUSE:Factory checked in at 2014-04-23 20:36:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/i4l-base (Old)
and /work/SRC/openSUSE:Factory/.i4l-base.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "i4l-base"
Changes:
--------
--- /work/SRC/openSUSE:Factory/i4l-base/i4l-base.changes 2013-12-11 19:41:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.i4l-base.new/i4l-base.changes 2014-04-23 20:36:32.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Apr 22 07:41:01 UTC 2014 - meissner(a)suse.com
+
+- buildignore systemd, buildrequire systemd-mini to make it build,
+ as the prereq pulls in systemd and others pull in -mini apparently.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ i4l-base.spec ++++++
--- /var/tmp/diff_new_pack.cb3Rqv/_old 2014-04-23 20:36:33.000000000 +0200
+++ /var/tmp/diff_new_pack.cb3Rqv/_new 2014-04-23 20:36:33.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package i4l-base
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -32,6 +32,8 @@
BuildRequires: openssl-devel
BuildRequires: ppp-devel
BuildRequires: sgmltool
+#!BuildIgnore: systemd
+BuildRequires: systemd-mini
BuildRequires: tcl-devel
BuildRequires: xorg-x11
BuildRequires: xorg-x11-devel
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package hplip for openSUSE:Factory checked in at 2014-04-23 20:36:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hplip (Old)
and /work/SRC/openSUSE:Factory/.hplip.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hplip"
Changes:
--------
--- /work/SRC/openSUSE:Factory/hplip/hplip.changes 2014-04-10 07:38:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.hplip.new/hplip.changes 2014-04-23 20:36:26.000000000 +0200
@@ -1,0 +2,15 @@
+Wed Apr 23 10:26:50 CEST 2014 - jsmeix(a)suse.de
+
+- Fix how the link /usr/lib/cups/filter/foomatic-rip-hplip
+ that points to foomatic-rip is installed depending on
+ which package provides foomatic-rip. In foomatic-filters
+ foomatic-rip is installed as /usr/bin/foomatic-rip
+ but in cups-filters-foomatic-rip it is installed
+ as /usr/lib/cups/filter/foomatic-rip.
+
+-------------------------------------------------------------------
+Sun Apr 20 09:48:39 UTC 2014 - tchvatal(a)suse.com
+
+- Enable parallel build via "make %{?_smp_mflags}".
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hplip.spec ++++++
--- /var/tmp/diff_new_pack.weaM5u/_old 2014-04-23 20:36:27.000000000 +0200
+++ /var/tmp/diff_new_pack.weaM5u/_new 2014-04-23 20:36:27.000000000 +0200
@@ -15,15 +15,16 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-
Name: hplip
-# BuildRequires foomatic-filters to avoid /usr/lib/rpm/brp-symlink ERROR:
-# link target doesn't exist (neither in build root nor in installed system):
-# /usr/lib/cups/filter/foomatic-rip-hplip -> /usr/bin/foomatic-rip
BuildRequires: cups
BuildRequires: cups-devel
BuildRequires: dbus-1-devel
BuildRequires: fdupes
+# BuildRequires foomatic-filters (also provided by cups-filters-foomatic-rip)
+# to avoid /usr/lib/rpm/brp-symlink ERROR:
+# link target doesn't exist (neither in build root nor in installed system):
+# /usr/lib/cups/filter/foomatic-rip-hplip -> /usr/bin/foomatic-rip (for foomatic-filters) or
+# /usr/lib/cups/filter/foomatic-rip-hplip -> /usr/lib/cups/filter/foomatic-rip (for cups-filters-foomatic-rip)
BuildRequires: foomatic-filters
BuildRequires: hicolor-icon-theme
BuildRequires: libdrm-devel
@@ -135,14 +136,15 @@
# Because foomatic-rip-hplip has CVE-2011-2697 (bnc#698451)
# plus a leftover in CVE-2004-0801 (bnc#59233)
# foomatic-rip-hplip is no longer installed and foomatic-rip
-# from the foomatic-filters RPM is used instead.
+# from foomatic-filters or cups-filters-foomatic-rip is used instead.
# The RPM requirement for foomatic-filters should actually be
# in the hplip-hpijs sub-package but this would bloat a minimalist system
# (see the comment for the hplip-hpijs sub-package below).
# Therefore the hplip main package which is intended
# to get "all the HPLIP stuff" installed has the RPM requirement:
Requires: foomatic-filters
-# foomatic-filters does not require Ghostscript because depending on the PPD
+# foomatic-filters and cups-filters-foomatic-rip
+# do not require Ghostscript because depending on the PPD
# (e.g. some PPDs for PostScript printers in OpenPrintingPPDs-postscript)
# foomatic-rip can also be used without Ghostscript but for the drivers
# HPIJS and HPCUPS Ghostscript is needed.
@@ -380,7 +382,8 @@
# --enable-foomatic-rip-hplip-install enable foomatic-rip-hplip install (default=no), uses cupsfilterdir
# Because foomatic-rip-hplip has CVE-2011-2697 (bnc#698451) plus a leftover in CVE-2004-0801 (bnc#59233)
# which are fixed up to openSUSE 11.4 with patches, after openSUSE 11.4 (i.e. since openSUSE 12.1)
-# foomatic-rip-hplip is no longer installed and foomatic-rip from foomatic-filters is used instead so that
+# foomatic-rip-hplip is no longer installed and foomatic-rip from
+# foomatic-filters or cups-filters-foomatic-rip is used instead so that
# --disable-foomatic-rip-hplip-install is explicitly set and as a consequence the "cupsFilter" entries
# in the static PPDs are changed in the install section to use foomatic-rip.
# Since HPLIP 3.13.10 --with-htmldir is new but it does not inhertit its value from --with-docdir
@@ -411,7 +414,7 @@
--with-mimedir=%{_sysconfdir}/cups \
--with-docdir=%{_defaultdocdir}/%{name} \
--with-htmldir==%{_defaultdocdir}/%{name}
-make
+make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
@@ -462,8 +465,8 @@
do echo -en '\n' >>$p
done
# Because foomatic-rip-hplip has CVE-2011-2697 (bnc#698451) plus a leftover in CVE-2004-0801 (bnc#59233)
-# foomatic-rip-hplip is no longer installed and foomatic-rip from foomatic-filters is used instead so that
-# the "cupsFilter" entries in the static PPDs must be changed accordingly:
+# foomatic-rip-hplip is no longer installed and foomatic-rip from foomatic-filters or cups-filters-foomatic-rip
+# is used instead so that the "cupsFilter" entries in the static PPDs must be changed accordingly:
echo "Replacing insecure foomatic-rip-hplip with foomatic-rip everywhere in in the PPDs..."
for p in *.ppd
do sed -i -e 's/foomatic-rip-hplip/foomatic-rip/' $p
@@ -504,12 +507,19 @@
# Because foomatic-rip-hplip has CVE-2011-2697 (bnc#698451)
# plus a leftover in CVE-2004-0801 (bnc#59233)
# foomatic-rip-hplip is no longer installed and foomatic-rip
-# from the foomatic-filters RPM must be used instead.
+# from foomatic-filters or cups-filters-foomatic-rip must be used instead.
# To be backward compatible with PPDs in /etc/cups/ppd/
# for existing print queues a compatibility link
# /usr/lib/cups/filter/foomatic-rip-hplip
-# which points to foomatic-rip is installed:
-ln -s ../../../bin/foomatic-rip %{buildroot}/usr/lib/cups/filter/foomatic-rip-hplip
+# which points to foomatic-rip is installed.
+# In foomatic-filters foomatic-rip is installed as /usr/bin/foomatic-rip but
+# in cups-filters-foomatic-rip it is installed as /usr/lib/cups/filter/foomatic-rip:
+if test -e /usr/lib/cups/filter/foomatic-rip
+then ln -s foomatic-rip %{buildroot}/usr/lib/cups/filter/foomatic-rip-hplip
+else if test -e /usr/bin/foomatic-rip
+ then ln -s ../../../bin/foomatic-rip %{buildroot}/usr/lib/cups/filter/foomatic-rip-hplip
+ fi
+fi
# Replace the invalid Desktop categories
%suse_update_desktop_file -r %{buildroot}%{_datadir}/applications/hplip.desktop System HardwareSettings
# Let suse_update_desktop_file add X-SuSE-translate key to /etc/xdg/autostart/hplip-systray.desktop
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package gd for openSUSE:Factory checked in at 2014-04-23 20:35:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gd (Old)
and /work/SRC/openSUSE:Factory/.gd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gd/gd.changes 2014-04-14 06:43:13.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gd.new/gd.changes 2014-04-23 20:35:50.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Apr 17 17:51:34 UTC 2014 - tchvatal(a)suse.com
+
+- Add tiff and vpx to the devel deps as it is in .pc file.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gd.spec ++++++
--- /var/tmp/diff_new_pack.ZLDwbm/_old 2014-04-23 20:35:51.000000000 +0200
+++ /var/tmp/diff_new_pack.ZLDwbm/_new 2014-04-23 20:35:51.000000000 +0200
@@ -65,6 +65,8 @@
Requires: %{name} = %{version}
Requires: glibc-devel
Requires: libpng-devel
+Requires: libtiff-devel
+Requires: libvpx-devel
Requires: zlib-devel
%description devel
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package rsync for openSUSE:Factory checked in at 2014-04-23 20:35:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rsync (Old)
and /work/SRC/openSUSE:Factory/.rsync.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rsync"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rsync/rsync.changes 2013-10-25 18:53:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rsync.new/rsync.changes 2014-04-23 20:35:49.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Apr 15 14:57:34 UTC 2014 - vcizek(a)suse.com
+
+- fix for CVE-2014-2855 (bnc#873740)
+ * a denial of service via CPU consumption
+ * added rsync-CVE-2014-2855.patch
+
+-------------------------------------------------------------------
New:
----
rsync-CVE-2014-2855.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rsync.spec ++++++
--- /var/tmp/diff_new_pack.87q7tB/_old 2014-04-23 20:35:49.000000000 +0200
+++ /var/tmp/diff_new_pack.87q7tB/_new 2014-04-23 20:35:49.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rsync
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -43,6 +43,7 @@
Source12: %{name}.keyring
Patch3: system-zlib.diff
Patch4: 0001-use-lp_num_modules-instead-of-the-removed-lp_numserv.patch
+Patch5: rsync-CVE-2014-2855.patch
BuildRequires: autoconf
BuildRequires: libacl-devel
BuildRequires: libattr-devel
@@ -86,6 +87,7 @@
%patch3
%endif
%patch4 -p1
+%patch5 -p1
patch -p1 < patches/acls.diff
patch -p1 < patches/xattrs.diff
patch -p1 < patches/slp.diff
++++++ rsync-CVE-2014-2855.patch ++++++
>From 0dedfbce2c1b851684ba658861fe9d620636c56a Mon Sep 17 00:00:00 2001
From: Wayne Davison <wayned(a)samba.org>
Date: Sun, 13 Apr 2014 13:44:58 -0700
Subject: [PATCH] Avoid infinite wait reading secrets file.
---
authenticate.c | 24 +++++++++++++-----------
1 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/authenticate.c b/authenticate.c
index 3381b8c..c92746c 100644
--- a/authenticate.c
+++ b/authenticate.c
@@ -102,15 +102,16 @@ static const char *check_secret(int module, const char *user, const char *group,
char pass2[MAX_DIGEST_LEN*2];
const char *fname = lp_secrets_file(module);
STRUCT_STAT st;
- int fd, ok = 1;
+ int ok = 1;
int user_len = strlen(user);
int group_len = group ? strlen(group) : 0;
char *err;
+ FILE *fh;
- if (!fname || !*fname || (fd = open(fname, O_RDONLY)) < 0)
+ if (!fname || !*fname || (fh = fopen(fname, "r")) == NULL)
return "no secrets file";
- if (do_fstat(fd, &st) == -1) {
+ if (do_fstat(fileno(fh), &st) == -1) {
rsyserr(FLOG, errno, "fstat(%s)", fname);
ok = 0;
} else if (lp_strict_modes(module)) {
@@ -123,29 +124,30 @@ static const char *check_secret(int module, const char *user, const char *group,
}
}
if (!ok) {
- close(fd);
+ fclose(fh);
return "ignoring secrets file";
}
if (*user == '#') {
/* Reject attempt to match a comment. */
- close(fd);
+ fclose(fh);
return "invalid username";
}
/* Try to find a line that starts with the user (or @group) name and a ':'. */
err = "secret not found";
- while ((user || group) && read_line_old(fd, line, sizeof line, 1)) {
- const char **ptr, *s;
+ while ((user || group) && fgets(line, sizeof line, fh) != NULL) {
+ const char **ptr, *s = strtok(line, "\n\r");
int len;
- if (*line == '@') {
+ if (!s)
+ continue;
+ if (*s == '@') {
ptr = &group;
len = group_len;
- s = line+1;
+ s++;
} else {
ptr = &user;
len = user_len;
- s = line;
}
if (!*ptr || strncmp(s, *ptr, len) != 0 || s[len] != ':')
continue;
@@ -158,7 +160,7 @@ static const char *check_secret(int module, const char *user, const char *group,
*ptr = NULL; /* Don't look for name again. */
}
- close(fd);
+ fclose(fh);
memset(line, 0, sizeof line);
memset(pass2, 0, sizeof pass2);
--
1.7.0.4
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package samba for openSUSE:Factory checked in at 2014-04-23 20:35:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/samba (Old)
and /work/SRC/openSUSE:Factory/.samba.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "samba"
Changes:
--------
--- /work/SRC/openSUSE:Factory/samba/samba.changes 2014-04-05 16:50:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.samba.new/samba.changes 2014-04-23 20:35:47.000000000 +0200
@@ -1,0 +2,83 @@
+Thu Apr 17 15:44:30 UTC 2014 - lmuelle(a)suse.com
+
+- Update to 4.1.7.
+ + Make "force user" work as expected; (bso#9878).
+ + Fix build on AIX with IBM XL C/C++ (gettext detection issues); (bso#9911).
+ + Fix problem with server taking too long to respond to a
+ MSG_PRINTER_DRVUPGRADE message; (bso#9942).
+ + s3-printing: Fix obvious memory leak in printer_list_get_printer();
+ (bso#9993).
+ + doc: Add "spoolss: architecture" parameter usage; (bso#10188).
+ + Make 'smbclient' support DFS shares with SMB2/3; (bso#10200).
+ + Make (lib)smbclient work with NetApp; (bso#10230).
+ + SessionLogoff on a signed connection with an outstanding notify request
+ crashes smbd; (bso#10344).
+ + dfs: Always call create_conn_struct with root privileges; (bso#10378).
+ + 'net ads search' on high latency networks can return a partial list with
+ no error indication; (bso#10387).
+ + max xmit > 64kb leads to segmentation fault; (bso#10422).
+ + Fix STATUS_NO_MEMORY response from Query File Posix Lock request;
+ (bso#10431).
+ + Increase max netbios name components; (bso#10439).
+ + smbd_server_connection_terminate("CTDB_SRVID_RELEASE_IP") panics from
+ within ctdbd_migrate() with invalid lock_order; (bso#10444).
+ + Fix 'wbinfo -i' with one-way trust; (bso#10458).
+ + samba4 services not binding on IPv6 addresses causing connection delays;
+ (bso#10464).
+ + s3-vfs: Fix stream_depot vfs module on btrfs; (bso#10467).
+ + Don't respond with NXDOMAIN to records that exist with another type;
+ (bso#10471).
+ + pidl: waf should have an option for the dir to install perl files and do
+ not glob; (bso#10472).
+ + s3-spoolssd: Don't register spoolssd if epmd is not running; (bso#10474).
+ + s3-rpc_server: Fix handling of fragmented rpc requests; (bso#10481).
+ + Initial FSRVP rpcclient requests fail with NT_STATUS_PIPE_NOT_AVAILABLE;
+ (bso#10484).
+ + lsa.idl: Define lsa.ForestTrustCollisionInfo and ForestTrustCollisionRecord
+ as public structs; (bso#10504).
+ + Make 'smbreadline' build with readline 6.3; (bso#10506).
+ + smbd: Correctly add remote users into local groups; (bso#10508).
+ + rpcclient FSRVP request UNCs should include a trailing backslash;
+ (bso#10521).
+ + Cleanup messages.tdb record after unclean smbd shutdown; (bso#10534).
+ + s3:rpc_server: Minor refactoring of process_request_pdu().
+
+-------------------------------------------------------------------
+Tue Apr 15 15:03:27 UTC 2014 - ddiss(a)suse.com
+
+- Create a new DBus connection for every vfs_snapper request, to ensure
+ correct snapper UID detection; (bnc#866354).
+
+-------------------------------------------------------------------
+Tue Apr 15 10:41:04 UTC 2014 - nopower(a)suse.de
+
+- Fix "Invalid read" in method reply_writeclose; (bnc#873658).
+
+-------------------------------------------------------------------
+Fri Apr 11 12:37:48 UTC 2014 - ddiss(a)suse.com
+
+- Fix minor compiler warnings in snapshot code-path; (bnc#873177).
+
+-------------------------------------------------------------------
+Fri Apr 11 12:21:48 UTC 2014 - lmuelle(a)suse.com
+
+- Remove references to the obsolete samba-krb-printing package and
+ get_printing_ticket binary.
+
+-------------------------------------------------------------------
+Fri Apr 11 12:09:23 UTC 2014 - ddiss(a)suse.com
+
+- Fix malformed FSCTL_SRV_ENUMERATE_SNAPSHOTS response; (bnc#872396).
+
+-------------------------------------------------------------------
+Fri Apr 11 11:50:08 UTC 2014 - nopower(a)suse.de
+
+- User error strings instead of hex codes where possible for FSRVP
+ errors; (bnc#866927).
+
+-------------------------------------------------------------------
+Tue Apr 1 16:49:05 UTC 2014 - ddiss(a)suse.com
+
+- Fix remote share shadow copy request UNCs; (bso#10521); (bnc#870957).
+
+-------------------------------------------------------------------
Old:
----
samba-4.1.6.tar.asc
samba-4.1.6.tar.gz
New:
----
samba-4.1.7.tar.asc
samba-4.1.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ samba.spec ++++++
--- /var/tmp/diff_new_pack.JUHsQ7/_old 2014-04-23 20:35:48.000000000 +0200
+++ /var/tmp/diff_new_pack.JUHsQ7/_new 2014-04-23 20:35:48.000000000 +0200
@@ -117,7 +117,7 @@
BuildRequires: gpg-offline
BuildRequires: systemd
%endif
-%define samba_ver 4.1.6
+%define samba_ver 4.1.7
%define samba_ver_suffix %nil
%if "%{samba_ver_suffix}" == ""
%define samba_source_location http://ftp.samba.org/pub/samba/stable/samba-%{version}.tar.gz
@@ -144,12 +144,11 @@
%else
%define build_make_smp_mflags %{?jobs:-j%jobs}
%endif
-%define SOURCE_TIMESTAMP 3217
+%define SOURCE_TIMESTAMP 3229
%define BRANCH %{version}
%global with_mitkrb5 1
%global with_dc 0
-%global with_get_printing_ticket 0
-Version: 4.1.6
+Version: 4.1.7
Release: 0
License: GPL-3.0+
Url: http://www.samba.org/
@@ -331,26 +330,6 @@
%endif
-%if %with_get_printing_ticket
-%package krb-printing
-License: GPL-3.0+
-Summary: Wrapper binary for kerberized printing
-Group: Productivity/Networking/Samba
-PreReq: coreutils
-Provides: samba-gplv3-krb-printing = %{version}
-Obsoletes: samba-gplv3-krb-printing < %{version}
-%if 0%{?suse_version} > 1000
-PreReq: permissions
-%endif
-Requires: samba-client >= %{version}
-
-%description krb-printing
-A wrapper binary to run smbspool with the original calling UID.
-
-Source Timestamp: %{SOURCE_TIMESTAMP}
-Branch: %{BRANCH}
-%endif
-
%package libs
License: GPL-3.0+
@@ -445,7 +424,6 @@
%if 0%{?suse_version} > 1030
Recommends: cron
Recommends: logrotate
-Recommends: samba-krb-printing
Recommends: /usr/sbin/nscd
%endif
%if 0%{?suse_version} > 0
@@ -1146,9 +1124,6 @@
sed -e "s/VENDOR/%{VENDOR}/g" "${file}" >"${file}.new" && \
mv "${file}.new" "${file}"
done
-%if %with_get_printing_ticket
-install -m 0644 vendor-files/tools/get_printing_ticket.c source3/client/get_printing_ticket.c
-%endif
install -m 0644 -p vendor-files/docu/rfc3454.txt source4/heimdal/lib/wind/
# Create and add vendor suffix
test -f vendor-files/tools/package-data && \
@@ -1260,7 +1235,6 @@
%if 0%{?suse_version} && 0%{?suse_version} > 1020
%{buildroot}/%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services \
%endif
- %{buildroot}/%{_sysconfdir}/permissions.d \
%{buildroot}/%{_sysconfdir}/security \
%{buildroot}/%{_sysconfdir}/slp.reg.d \
%{buildroot}/%{CONFIGDIR} \
@@ -1297,16 +1271,7 @@
rm -r %{buildroot}/%{_libdir}/samba/ldb
%endif
-# Remove PIDL files from datadir
-rm -r %{buildroot}/%{_datadir}/perl5
-# And install it into the perl vendor dirs
-pushd pidl
-make install PERL_INSTALL_ROOT=%{buildroot}
-popd
-
# Clean out files left behind by the PIDL install.
-find %{buildroot}/%{perl_vendorlib} -type f -name .packlist -exec rm -f {} \;
-rm %{buildroot}/%{perl_vendorlib}/wscript_build
rm -r %{buildroot}/%{perl_vendorlib}/Parse/Yapp
# utility scripts
@@ -1585,9 +1550,6 @@
%if 0%{?suse_version} > 1220
%{fillup_only -ans samba client}
%endif
-if ! test -e %{_bindir}/get_printing_ticket; then
- ln -fs %{_bindir}/smbspool %{cups_lib_dir}/backend/smb
-fi
%{?fillup_only:%{fillup_only -nsd dhcp samba-client network}}
%postun client
@@ -1644,29 +1606,6 @@
%postun -n %{libwbclient_name} -p /sbin/ldconfig
-%if %with_get_printing_ticket
-%post krb-printing
-if test ${1:-0} -eq 1 -a -d %{cups_lib_dir}/backend; then
- ln -fs %{_bindir}/get_printing_ticket %{cups_lib_dir}/backend/smb
-fi
-%if 0%{?suse_version} > 0
-%if 0%{?suse_version} < 1131
-%{run_permissions}
-%else
-%{set_permissions} %{_bindir}/get_printing_ticket
-%endif
-%endif
-
-%postun krb-printing
-if test ${1:-0} -eq 0 -a -e %{_bindir}/smbspool -a -d %{cups_lib_dir}/backend; then
- ln -fs %{_bindir}/smbspool %{cups_lib_dir}/backend/smb
-fi
-%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1000
-%verifyscript krb-printing
-%verify_permissions -e %{_bindir}/get_printing_ticket
-%endif
-%endif
-
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
@@ -1975,6 +1914,7 @@
%_includedir/samba-4.0/core/doserr.h
%_includedir/samba-4.0/core/error.h
%_includedir/samba-4.0/core/ntstatus.h
+%_includedir/samba-4.0/core/hresult.h
%_includedir/samba-4.0/core/werror.h
%_includedir/samba-4.0/domain_credentials.h
%dir %_includedir/samba-4.0/gen_ndr/
@@ -2201,19 +2141,6 @@
%doc %{_datadir}/susehelp
%endif
-%if %with_get_printing_ticket
-%files krb-printing
-%defattr(-,root,root)
-%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1000
-%verify(not mode) %attr(4750,root,lp) %{_bindir}/get_printing_ticket
-%else
-%attr(0750,root,lp) %{_bindir}/get_printing_ticket
-%endif
-%dir %{cups_lib_dir}
-%dir %{cups_lib_dir}/backend
-%ghost %{cups_lib_dir}/backend/smb
-%endif
-
%files -n libdcerpc-atsvc0
%defattr(-,root,root)
%_libdir/libdcerpc-atsvc.so.0*
++++++ patches.tar.bz2 ++++++
++++ 17759 lines of diff (skipped)
++++++ samba-4.1.6.tar.gz -> samba-4.1.7.tar.gz ++++++
/work/SRC/openSUSE:Factory/samba/samba-4.1.6.tar.gz /work/SRC/openSUSE:Factory/.samba.new/samba-4.1.7.tar.gz differ: char 5, line 1
++++++ vendor-files.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor-files/tools/package-data new/vendor-files/tools/package-data
--- old/vendor-files/tools/package-data 2014-04-01 18:38:34.000000000 +0200
+++ new/vendor-files/tools/package-data 2014-04-17 18:25:05.000000000 +0200
@@ -1,2 +1,2 @@
# This is an autogenrated file.
-SAMBA_PACKAGE_SVN_VERSION="3217"
+SAMBA_PACKAGE_SVN_VERSION="3229"
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package biosdevname for openSUSE:Factory checked in at 2014-04-23 20:35:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/biosdevname (Old)
and /work/SRC/openSUSE:Factory/.biosdevname.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "biosdevname"
Changes:
--------
--- /work/SRC/openSUSE:Factory/biosdevname/biosdevname.changes 2014-04-05 16:50:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.biosdevname.new/biosdevname.changes 2014-04-23 20:35:43.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Apr 10 17:14:24 UTC 2014 - trenn(a)suse.de
+
+- Remove eth* check, devices might have been renamed already bnc#869614
+ Add biosdevname_udevrule_rename_all_network_devices.patch
+- Remove old mkinitrd stuff and replace it with dracut rpm macros to ensure
+ the initrd is rebuild if biosdevname got installed or updated.
+
+-------------------------------------------------------------------
New:
----
biosdevname_udevrule_rename_all_network_devices.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ biosdevname.spec ++++++
--- /var/tmp/diff_new_pack.5qI5AJ/_old 2014-04-23 20:35:44.000000000 +0200
+++ /var/tmp/diff_new_pack.5qI5AJ/_new 2014-04-23 20:35:44.000000000 +0200
@@ -29,13 +29,13 @@
# breadth-first, or of so, there haven't been any comments about that
# on LKML.
ExclusiveArch: %{ix86} x86_64
-#Source0: http://linux.dell.com/files/%{name}/%{name}-%{version}/%{name}-%{version}.t…
Source0: %{name}-%{version}.tar.bz2
Source1: setup-biosdevname.sh
Patch1: biosdevname_v0.5.0_to_git_c140ce659a204d67e4cc.patch
Patch2: ignore-broken-BIOSes
Patch3: whitelist-dell
Patch4: udev-rule-path.patch
+Patch5: biosdevname_udevrule_rename_all_network_devices.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: automake
BuildRequires: pciutils-devel
@@ -66,6 +66,7 @@
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
%build
# this is a udev rule, so it needs to live in / rather than /usr
@@ -95,10 +96,10 @@
%post
/sbin/ldconfig
-mkinitrd_setup
+%{?regenerate_initrd_post}
%postun
/sbin/ldconfig
-mkinitrd_setup
+%{?regenerate_initrd_posttrans}
%changelog
++++++ biosdevname_udevrule_rename_all_network_devices.patch ++++++
biosdevname: Rename all network devices, not only eth* ones
There are other rules which might have renamed the device already.
bnc#869614
Signed-off-by: Thomas Renninger <trenn(a)suse.de>
Index: biosdevname-0.5.0/biosdevname.rules.in
===================================================================
--- biosdevname-0.5.0.orig/biosdevname.rules.in
+++ biosdevname-0.5.0/biosdevname.rules.in
@@ -1,5 +1,4 @@
SUBSYSTEM!="net", GOTO="netdevicename_end"
-KERNEL!="eth*", GOTO="netdevicename_end"
ACTION!="add", GOTO="netdevicename_end"
NAME=="?*", GOTO="netdevicename_end"
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xf86-input-wacom for openSUSE:Factory checked in at 2014-04-23 20:35:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-input-wacom (Old)
and /work/SRC/openSUSE:Factory/.xf86-input-wacom.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-input-wacom"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-input-wacom/xf86-input-wacom.changes 2014-03-26 16:42:21.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xf86-input-wacom.new/xf86-input-wacom.changes 2014-04-23 20:35:41.000000000 +0200
@@ -1,0 +2,34 @@
+Thu Apr 10 10:17:55 UTC 2014 - eich(a)suse.com
+
+- remove 65-xorg-wacom.rules wacom-inputattach@.service:
+ package now ships udev rules and systemd files
+
+-------------------------------------------------------------------
+Wed Apr 9 21:23:08 UTC 2014 - eich(a)suse.com
+
+- Udate to xf86-input-wacom-0.24.0.tar.bz2
+- Remove old set of patches (partly upstreamed)
+ * u_01-Fix-message-if-the-detected-pressure-falls-below-the-initially-detected-pressure.patch
+ * u_02-Log-when-the-pen-device-appears-to-be-too-worn-out.patch
+ * u_03-Add-more-detailed-messaging-in-code-that-handles-abnormal-situations.patch
+ * u_04-Avoid-division-by-zero-in-xf86ScaleAxis.patch
+ * u_05-Improve-usbInitToolType-tool-type-detection.patch
+ * u_06-Add-an-option-to-disable-pressure-recalibration.patch
+ * u_07-Add-option-to-enable-logging.patch
+ * u_08-Log-PROXIMITY-events.patch
+ * u_09-Log-PRESSURE-events.patch
+ * u_10-Log-BUTTON-events.patch
+- Add upstream patches:
+ * U_01-Remove-unused-code.patch
+ * U_02-Zero-is-not-a-valid-device-ID-don-t-derive-a-type-from-it.patch
+ * U_03-Fix-initial-device-type-detection.patch
+ * U_04-Store-the-last-used-channel-rather-than-blindly-taking-channel-0.patch
+ * U_05-Remove-duplicate-tool-type-detection.patch
+ * U_06-Attempt-to-derive-the-tool-type-from-a-known-button-key-event.patch
+- Add logging patches:
+ * n_01-Add-option-to-enable-logging.patch
+ * n_02-Log-PROXIMITY-LOW-LEVEL-events.patch
+ * n_03-Log-PRESSURE-low-level-events.patch
+ * n_04-Log-BUTTON-HIGH-LEVEL-events.patch
+
+-------------------------------------------------------------------
Old:
----
65-xorg-wacom.rules
u_01-Fix-message-if-the-detected-pressure-falls-below-the-initially-detected-pressure.patch
u_02-Log-when-the-pen-device-appears-to-be-too-worn-out.patch
u_03-Add-more-detailed-messaging-in-code-that-handles-abnormal-situations.patch
u_04-Avoid-division-by-zero-in-xf86ScaleAxis.patch
u_05-Improve-usbInitToolType-tool-type-detection.patch
u_06-Add-an-option-to-disable-pressure-recalibration.patch
u_07-Add-option-to-enable-logging.patch
u_08-Log-PROXIMITY-events.patch
u_09-Log-PRESSURE-events.patch
u_10-Log-BUTTON-events.patch
wacom-inputattach@.service
xf86-input-wacom-0.23.0.tar.bz2
New:
----
U_01-Remove-unused-code.patch
U_02-Zero-is-not-a-valid-device-ID-don-t-derive-a-type-from-it.patch
U_03-Fix-initial-device-type-detection.patch
U_04-Store-the-last-used-channel-rather-than-blindly-taking-channel-0.patch
U_05-Remove-duplicate-tool-type-detection.patch
U_06-Attempt-to-derive-the-tool-type-from-a-known-button-key-event.patch
n_01-Add-option-to-enable-logging.patch
n_02-Log-PROXIMITY-LOW-LEVEL-events.patch
n_03-Log-PRESSURE-low-level-events.patch
n_04-Log-BUTTON-HIGH-LEVEL-events.patch
xf86-input-wacom-0.24.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-input-wacom.spec ++++++
--- /var/tmp/diff_new_pack.tHZFeK/_old 2014-04-23 20:35:42.000000000 +0200
+++ /var/tmp/diff_new_pack.tHZFeK/_new 2014-04-23 20:35:42.000000000 +0200
@@ -21,27 +21,29 @@
%else
%define _udevrulesdir /lib/udev/rules.d
%endif
+#### Only set for non-enterprise
+%if %{suse_version} != 1315
+%define install_serial 1
+%endif
Name: xf86-input-wacom
-Version: 0.23.0
+Version: 0.24.0
Release: 0
Summary: Wacom input driver for the Xorg X server
License: GPL-2.0+
Group: System/X11/Servers/XF86_4
Url: http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Xf86-input…
Source0: http://downloads.sourceforge.net/project/linuxwacom/xf86-input-wacom/%{name…
-Source1: 65-xorg-wacom.rules
-Source2: wacom-inputattach@.service
-Patch1: u_01-Fix-message-if-the-detected-pressure-falls-below-the-initially-detected-pressure.patch
-Patch2: u_02-Log-when-the-pen-device-appears-to-be-too-worn-out.patch
-Patch3: u_03-Add-more-detailed-messaging-in-code-that-handles-abnormal-situations.patch
-Patch4: u_04-Avoid-division-by-zero-in-xf86ScaleAxis.patch
-Patch5: u_05-Improve-usbInitToolType-tool-type-detection.patch
-Patch6: u_06-Add-an-option-to-disable-pressure-recalibration.patch
-Patch7: u_07-Add-option-to-enable-logging.patch
-Patch8: u_08-Log-PROXIMITY-events.patch
-Patch9: u_09-Log-PRESSURE-events.patch
-Patch10: u_10-Log-BUTTON-events.patch
+Patch1: U_01-Remove-unused-code.patch
+Patch2: U_02-Zero-is-not-a-valid-device-ID-don-t-derive-a-type-from-it.patch
+Patch3: U_03-Fix-initial-device-type-detection.patch
+Patch4: U_04-Store-the-last-used-channel-rather-than-blindly-taking-channel-0.patch
+Patch5: U_05-Remove-duplicate-tool-type-detection.patch
+Patch6: U_06-Attempt-to-derive-the-tool-type-from-a-known-button-key-event.patch
+Patch7: n_01-Add-option-to-enable-logging.patch
+Patch8: n_02-Log-PROXIMITY-LOW-LEVEL-events.patch
+Patch9: n_03-Log-PRESSURE-low-level-events.patch
+Patch10: n_04-Log-BUTTON-HIGH-LEVEL-events.patch
BuildRequires: pkg-config
%if %{suse_version} > 1230
BuildRequires: systemd-rpm-macros
@@ -78,7 +80,7 @@
%x11_abi_xinput_req
%description
-wacom is an X input driver for Wacom devices.
+wacom is an X input driver and utilities for Wacom devices.
%package devel
Summary: Wacom input driver for the Xorg X server -- Development Files
@@ -88,7 +90,7 @@
Obsoletes: x11-input-wacom-devel < %{version}
%description devel
-wacom is an X input driver for Wacom devices.
+wacom is an X input driver and utilities for Wacom devices.
%prep
%setup -q
@@ -105,15 +107,15 @@
%build
autoreconf -fi
-%configure --with-xorg-conf-dir=/etc/X11/xorg.conf.d
+%configure --with-xorg-conf-dir=/etc/X11/xorg.conf.d --enable-logging --with-systemd-unit-dir=%{_unitdir} --with-udev-rules-dir=%{_udevrulesdir}
make %{?_smp_mflags}
%install
%make_install
find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print
-install -D -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_udevrulesdir}/65-xorg-wacom.rules
-mkdir -p $RPM_BUILD_ROOT%_unitdir
-install -D -m 644 %{SOURCE2} $RPM_BUILD_ROOT%_unitdir
+mv %{buildroot}%{_udevrulesdir}/wacom.rules %{buildroot}%{_udevrulesdir}/65-wacom.rules
+# if we don't package these remove them so no debuginfo files will be generated
+%{!?install_serial: rm %{buildroot}%{_bindir}/isdv4-serial-inputattach %{buildroot}%{_bindir}/isdv4-serial-debugger}
%post
test -n "$FIRST_ARG" || FIRST_ARG=$1
@@ -146,7 +148,7 @@
%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog GPL README
-%{_udevrulesdir}/65-xorg-wacom.rules
+%{_udevrulesdir}/65-wacom.rules
%{_unitdir}/wacom-inputattach@.service
%config %{_sysconfdir}/X11/xorg.conf.d/50-wacom.conf
%dir %{_libdir}/xorg/modules/input
@@ -154,6 +156,7 @@
%{_bindir}/xsetwacom
%{_datadir}/man/man1/xsetwacom.1%{?ext_man}
%{_datadir}/man/man4/wacom.4%{?ext_man}
+%{?install_serial:%{_bindir}/isdv4-serial-inputattach}
%files devel
%defattr(-,root,root)
@@ -162,7 +165,7 @@
%{_includedir}/xorg/wacom-properties.h
%{_includedir}/xorg/wacom-util.h
# not useful for most people
-%{_bindir}/isdv4-serial-debugger
+%{?install_serial:%{_bindir}/isdv4-serial-debugger}
%{_libdir}/pkgconfig/xorg-wacom.pc
%changelog
++++++ U_01-Remove-unused-code.patch ++++++
From: Egbert Eich <eich(a)suse.com>
Date: Wed Apr 9 21:27:00 2014 +0200
Subject: [PATCH 1/6]Remove unused code
Patch-Mainline: Upstream
Git-commit: 840e6585ab273828d6bcf1f0d0f4293f4ddb631a
Git-repo: git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom
References: FATE#
Signed-off-by: Egbert Eich <eich(a)suse.com>
usbFindDeviceType() is only called once. From where it
is called, it is only called if event->value != 0 and
with ds->device_id = event->value.
Thus the test !ds->device_id will always fail.
Signed-off-by: Egbert Eich <eich(a)suse.com>
Reviewed-by: Jason Gerecke <killertofu(a)gmail.com>
---
src/wcmUSB.c | 19 +++----------------
1 file changed, 3 insertions(+), 16 deletions(-)
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index 7375711..3e5c31d 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -1100,33 +1100,20 @@ static int usbIdToType(int id)
}
/**
- * Find the tool type (STYLUS_ID, etc.) based on the device_id or the
- * current tool serial number if the device_id is unknown (0).
+ * Find the tool type (STYLUS_ID, etc.) based on the device_id.
*
* Protocol 5 devices report different IDs for different styli and pucks,
* Protocol 4 devices simply report STYLUS_DEVICE_ID, etc.
*
* @param ds The current device state received from the kernel.
- * @return The tool type associated with the tool id or the current
- * tool serial number.
+ * @return The tool type associated with the tool id.
*/
static int usbFindDeviceType(const WacomCommonPtr common,
const WacomDeviceState *ds)
{
- WacomToolPtr tool = NULL;
int device_type = 0;
- if (!ds->device_id && ds->serial_num)
- {
- for (tool = common->wcmTool; tool; tool = tool->next)
- if (ds->serial_num == tool->serial)
- {
- device_type = tool->typeid;
- break;
- }
- }
-
- if (device_type || !ds->device_id) return device_type;
+ if (!ds->device_id) return 0;
switch (ds->device_id)
{
++++++ U_02-Zero-is-not-a-valid-device-ID-don-t-derive-a-type-from-it.patch ++++++
From: Egbert Eich <eich(a)suse.com>
Date: Wed Apr 9 21:27:01 2014 +0200
Subject: [PATCH 2/6]Zero is not a valid device ID, don't derive a type from it
Patch-Mainline: Upstream
Git-commit: 533220d3f2369b80afc404df1e5bb6a024309616
Git-repo: git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom
References: FATE#
Signed-off-by: Egbert Eich <eich(a)suse.com>
A protocol 5 tool will send an ABS event code=ABS_MISC with
value 0. 0 is however not a valid device ID. Don't try to
derive a type from it.
Signed-off-by: Egbert Eich <eich(a)suse.com>
Reviewed-by: Jason Gerecke <killertofu(a)gmail.com>
---
src/wcmUSB.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index 3e5c31d..83d9eed 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -1087,6 +1087,9 @@ static int usbIdToType(int id)
{
int type = STYLUS_ID;
+ if (!id)
+ return 0;
+
/* The existing tool ids have the following patten: all pucks, except
* one, have the third byte set to zero; all erasers have the fourth
* bit set. The rest are styli.
++++++ U_03-Fix-initial-device-type-detection.patch ++++++
From: Egbert Eich <eich(a)suse.com>
Date: Wed Apr 9 21:27:02 2014 +0200
Subject: [PATCH 3/6]Fix initial device type detection
Patch-Mainline: Upstream
Git-commit: e08c45f3caf371a8e4123119aeb0b0d7fc227cca
Git-repo: git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom
References: FATE#
Signed-off-by: Egbert Eich <eich(a)suse.com>
usbInitToolType() tries to find the device type of a tool.
Unlike usbFindDeviceType() it doesn't take into account the device_id
which may exist in the event stream.
As a result the device type may be taken from the last known type.
This is generally a bad idea if the type has changed.
This will happen for example when pressing a key on the Cintiq 21UX menu
strips after removing a pen from the tablet.
Signed-off-by: Egbert Eich <eich(a)suse.com>
Reviewed-by: Jason Gerecke <killertofu(a)gmail.com>
---
src/wcmUSB.c | 62 ++++++++++++++++++++++++++++++++++++------------------------
1 file changed, 37 insertions(+), 25 deletions(-)
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index 83d9eed..b79f0e3 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -1108,37 +1108,46 @@ static int usbIdToType(int id)
* Protocol 5 devices report different IDs for different styli and pucks,
* Protocol 4 devices simply report STYLUS_DEVICE_ID, etc.
*
- * @param ds The current device state received from the kernel.
- * @return The tool type associated with the tool id.
+ * @device_id id of the device
+ * @return device type
*/
-static int usbFindDeviceType(const WacomCommonPtr common,
- const WacomDeviceState *ds)
+static int usbFindDeviceTypeById(int device_id)
{
- int device_type = 0;
-
- if (!ds->device_id) return 0;
-
- switch (ds->device_id)
+ switch (device_id)
{
case STYLUS_DEVICE_ID:
- device_type = STYLUS_ID;
- break;
+ return STYLUS_ID;
case ERASER_DEVICE_ID:
- device_type = ERASER_ID;
- break;
+ return ERASER_ID;
case CURSOR_DEVICE_ID:
- device_type = CURSOR_ID;
- break;
+ return CURSOR_ID;
case TOUCH_DEVICE_ID:
- device_type = TOUCH_ID;
- break;
+ return TOUCH_ID;
case PAD_DEVICE_ID:
- device_type = PAD_ID;
- break;
+ return PAD_ID;
default: /* protocol 5 */
- device_type = usbIdToType(ds->device_id);
+ return usbIdToType(device_id);
}
+ return 0;
+}
+
+/**
+ * Find the tool type (STYLUS_ID, etc.) based on the device_id.
+ *
+ * Protocol 5 devices report different IDs for different styli and pucks,
+ * Protocol 4 devices simply report STYLUS_DEVICE_ID, etc.
+ *
+ * @param ds The current device state received from the kernel.
+ * @return The tool type associated with the tool id.
+ */
+static int usbFindDeviceType(const WacomCommonPtr common,
+ const WacomDeviceState *ds)
+{
+ int device_type = 0;
+
+ if (!ds->device_id) return 0;
+ device_type = usbFindDeviceTypeById(ds->device_id);
return device_type;
}
@@ -1488,15 +1497,16 @@ static void usbParseBTNEvent(WacomCommonPtr common,
}
/**
- * Translates a tool code from the kernel (e.g. BTN_TOOL_PEN) into the
- * corresponding device type for the driver (e.g. STYLUS_ID).
+ * Translates an event code from the kernel (e.g. type: EV_ABS code: ABS_MISC value: STYLUS_DEVICE_ID)
+ * into the corresponding device type for the driver (e.g. STYLUS_ID).
*
* @param[in] common
* @param[in] type Linux input tool type (e.g. EV_KEY)
* @param[in] code Linux input tool code (e.g. BTN_STYLUS_PEN)
+ * @param[in] value Linux input tool value (e.g. STYLUS_DEVICE_ID)
* @return Wacom device ID (e.g. STYLUS_ID) or 0 if no match.
*/
-static int toolTypeToDeviceType(WacomCommonPtr common, int type, int code)
+static int deviceTypeFromEvent(WacomCommonPtr common, int type, int code, int value)
{
wcmUSBData* private = common->private;
@@ -1528,6 +1538,8 @@ static int toolTypeToDeviceType(WacomCommonPtr common, int type, int code)
case ABS_MT_SLOT:
case ABS_MT_TRACKING_ID:
return TOUCH_ID;
+ case ABS_MISC:
+ return usbFindDeviceTypeById(value);
}
}
@@ -1557,7 +1569,7 @@ static int refreshDeviceType(WacomCommonPtr common, int fd)
for (i = 0; i < KEY_MAX; i++)
{
if (ISBITSET(keys, i))
- device_type = toolTypeToDeviceType(common, EV_KEY, i);
+ device_type = deviceTypeFromEvent(common, EV_KEY, i, 0);
if (device_type)
return device_type;
}
@@ -1588,7 +1600,7 @@ static int usbInitToolType(WacomCommonPtr common, int fd,
for (i = 0; (i < nevents) && !device_type; ++i, event_ptr++)
{
- device_type = toolTypeToDeviceType(common, event_ptr->type, event_ptr->code);
+ device_type = deviceTypeFromEvent(common, event_ptr->type, event_ptr->code, event_ptr->value);
}
if (!device_type)
++++++ U_04-Store-the-last-used-channel-rather-than-blindly-taking-channel-0.patch ++++++
From: Egbert Eich <eich(a)suse.com>
Date: Wed Apr 9 21:27:03 2014 +0200
Subject: [PATCH 4/6]Store the last used channel rather than blindly taking channel 0
Patch-Mainline: Upstream
Git-commit: 8f44f3568c46ab9cca543b830fb2e84dd56a2af9
Git-repo: git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom
References: FATE#
Signed-off-by: Egbert Eich <eich(a)suse.com>
When an event stream from a device doesn't contain information
on the device type we look at the last used channel and copy
over the device type.
This is acceptable as such a situation only occurs while in
proximity i.e. when the previous command package came from
the same device.
So far the device type form the state in channel 0 was taken.
This was wrong however for PAD devices for instance.
Signed-off-by: Egbert Eich <eich(a)suse.com>
Reviewed-by: Jason Gerecke <killertofu(a)gmail.com>
---
src/wcmUSB.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index b79f0e3..c060ec5 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -41,6 +41,7 @@ typedef struct {
int nbuttons; /* total number of buttons */
int npadkeys; /* number of pad keys in the above array */
int padkey_code[WCM_MAX_BUTTONS];/* hardware codes for buttons */
+ int lastChannel;
} wcmUSBData;
static Bool usbDetect(InputInfoPtr);
@@ -1636,8 +1637,8 @@ static void usbDispatchEvents(InputInfoPtr pInfo)
WacomDevicePtr priv = (WacomDevicePtr)pInfo->private;
WacomCommonPtr common = priv->common;
int channel;
- WacomDeviceState dslast = common->wcmChannel[0].valid.state;
wcmUSBData* private = common->private;
+ WacomDeviceState dslast = common->wcmChannel[private->lastChannel].valid.state;
DBG(6, common, "%d events received\n", private->wcmEventCnt);
@@ -1767,6 +1768,8 @@ static void usbDispatchEvents(InputInfoPtr pInfo)
if (!ds->proximity)
private->wcmLastToolSerial = 0;
+ private->lastChannel = channel;
+
for (c = 0; c < MAX_CHANNELS; c++) {
ds = &common->wcmChannel[c].work;
++++++ U_05-Remove-duplicate-tool-type-detection.patch ++++++
From: Egbert Eich <eich(a)suse.com>
Date: Wed Apr 9 21:27:04 2014 +0200
Subject: [PATCH 5/6]Remove duplicate tool type detection
Patch-Mainline: Upstream
Git-commit: 261ca70cfdc17c1e927b80190d127226798172c0
Git-repo: git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom
References: FATE#
Signed-off-by: Egbert Eich <eich(a)suse.com>
Tool type detection is done in two places: early in usbDispatchEvents()
by calling usbInitToolType() and later on in the same function when the
events are parsed.
usbInitToolType() is used to set (wcmUSBData*)->wcmDeviceType, the
detection that happens later when the events are parsed sets
(WacomDeviceState).device_type. These variables are matched against each
to find the right channel for a device.
If the algorithms used for both set of tool type detection diverge
undesirable effects may happen. Therefore it is advisable to determine the
tool type only once ie. in usbInitToolType() and copy the result to
(WacomDeviceState).device_type if this value is unset.
* Bring the algorithm in usbInitToolType() in sync with the reset:
Add missing key codes to deviceTypeFromEvent()
- Add BTN_TOOL_DOUBLETAP and BTN_TOOL_TRIPLETAP, return
TOUCH_ID for them.
- Return TOUCH_ID on BTN_TOUCH when protocol level is
WCM_PROTOCOL_GENERIC and tool is a 1 finger USB touch.
* Delete any duplicate tool type setting
* Add a test for debugging if the device type has changed while in proximity.
Signed-off-by: Egbert Eich <eich(a)suse.com>
Reviewed-by: Jason Gerecke <killertofu(a)gmail.com>
---
src/wcmUSB.c | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index c060ec5..6932b9f 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -1272,6 +1272,7 @@ static void usbParseAbsMTEvent(WacomCommonPtr common, struct input_event *event)
case ABS_MT_TRACKING_ID:
ds->proximity = (event->value != -1);
+ /* set this here as type for this channel doesn't get set in usbDispatchEvent() */
ds->device_type = TOUCH_ID;
ds->device_id = TOUCH_DEVICE_ID;
ds->sample = (int)GetTimeInMillis();
@@ -1315,7 +1316,6 @@ static void usbParseKeyEvent(WacomCommonPtr common,
case BTN_TOOL_PENCIL:
case BTN_TOOL_BRUSH:
case BTN_TOOL_AIRBRUSH:
- ds->device_type = STYLUS_ID;
/* V5 tools use ABS_MISC to report device_id */
if (common->wcmProtocolLevel == WCM_PROTOCOL_4)
ds->device_id = STYLUS_DEVICE_ID;
@@ -1326,7 +1326,6 @@ static void usbParseKeyEvent(WacomCommonPtr common,
break;
case BTN_TOOL_RUBBER:
- ds->device_type = ERASER_ID;
/* V5 tools use ABS_MISC to report device_id */
if (common->wcmProtocolLevel == WCM_PROTOCOL_4)
ds->device_id = ERASER_DEVICE_ID;
@@ -1343,7 +1342,6 @@ static void usbParseKeyEvent(WacomCommonPtr common,
DBG(6, common,
"USB mouse detected %x (value=%d)\n",
event->code, event->value);
- ds->device_type = CURSOR_ID;
/* V5 tools use ABS_MISC to report device_id */
if (common->wcmProtocolLevel == WCM_PROTOCOL_4)
ds->device_id = CURSOR_DEVICE_ID;
@@ -1361,7 +1359,6 @@ static void usbParseKeyEvent(WacomCommonPtr common,
DBG(6, common,
"USB 1FG Touch detected %x (value=%d)\n",
event->code, event->value);
- ds->device_type = TOUCH_ID;
ds->device_id = TOUCH_DEVICE_ID;
ds->proximity = event->value;
}
@@ -1375,7 +1372,6 @@ static void usbParseKeyEvent(WacomCommonPtr common,
DBG(6, common,
"USB Pad detected %x (value=%d)\n",
event->code, event->value);
- ds->device_type = PAD_ID;
ds->device_id = PAD_DEVICE_ID;
ds->proximity = (event->value != 0);
break;
@@ -1386,7 +1382,6 @@ static void usbParseKeyEvent(WacomCommonPtr common,
DBG(6, common,
"USB Touch detected %x (value=%d)\n",
event->code, event->value);
- ds->device_type = TOUCH_ID;
ds->device_id = TOUCH_DEVICE_ID;
ds->proximity = event->value;
/* time stamp for 2FGT gesture events */
@@ -1399,7 +1394,6 @@ static void usbParseKeyEvent(WacomCommonPtr common,
DBG(6, common,
"USB Touch second finger detected %x (value=%d)\n",
event->code, event->value);
- ds->device_type = TOUCH_ID;
ds->device_id = TOUCH_DEVICE_ID;
ds->proximity = event->value;
/* time stamp for 2GT gesture events */
@@ -1525,13 +1519,27 @@ static int deviceTypeFromEvent(WacomCommonPtr common, int type, int code, int va
case BTN_TOOL_FINGER:
if ((common->wcmProtocolLevel != WCM_PROTOCOL_GENERIC)
- && !private->wcmUseMT)
+ && !private->wcmUseMT) /* this isn't in usbParseKeyEvent() */
return PAD_ID;
else
return TOUCH_ID;
case BTN_TOOL_RUBBER:
return ERASER_ID;
+
+ case BTN_TOOL_DOUBLETAP:
+ case BTN_TOOL_TRIPLETAP:
+ return TOUCH_ID;
+
+ case BTN_TOUCH:
+ if (common->wcmProtocolLevel == WCM_PROTOCOL_GENERIC &&
+ /* 1FG USB touchscreen */
+ !TabletHasFeature(common, WCM_PEN) &&
+ TabletHasFeature(common, WCM_1FGT) &&
+ TabletHasFeature(common, WCM_LCD))
+ return TOUCH_ID;
+ else
+ break;
}
}
else if (type == EV_ABS) {
@@ -1687,9 +1695,12 @@ static void usbDispatchEvents(InputInfoPtr pInfo)
ds = &common->wcmChannel[channel].work;
dslast = common->wcmChannel[channel].valid.state;
+ if (ds->device_type && ds->device_type != private->wcmDeviceType)
+ LogMessageVerbSigSafe(X_ERROR, 0,
+ "usbDispatchEvents: Device Type mismatch - %d -> %d. This is a BUG.\n",
+ ds->device_type, private->wcmDeviceType);
/* no device type? */
if (!ds->device_type && private->wcmDeviceType) {
- /* tool was on tablet at startup, force type and proximity */
ds->device_type = private->wcmDeviceType;
ds->proximity = 1;
}
++++++ U_06-Attempt-to-derive-the-tool-type-from-a-known-button-key-event.patch ++++++
From: Egbert Eich <eich(a)suse.com>
Date: Wed Apr 9 21:27:05 2014 +0200
Subject: [PATCH 6/6]Attempt to derive the tool type from a known button/key event
Patch-Mainline: Upstream
Git-commit: 3eacea1058ef255e01ba83d0297bf0e5c533879b
Git-repo: git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom
References: FATE#
Signed-off-by: Egbert Eich <eich(a)suse.com>
This is the last bit of clean up and consolidation in tool type detection:
usbParseAbsEvent() sets the tool type if it recognized a button or key
event and the tool type has not been set before.
Before we get to usbParseAbsEvent() channel mapping must have failed most
certainly so we must have gotten a new channel for each button or key
sequence.
Since this seems to be a last resort attempt to determine the tool type
we only do this when all other methods have failed before. The newly
introduced function deriveDeviceTypeFromButtonEvent() mimics the behavior
of usbParseAbsEvent().
Signed-off-by: Egbert Eich <eich(a)suse.com>
Reviewed-by: Jason Gerecke <killertofu(a)gmail.com>
---
src/wcmUSB.c | 60 +++++++++++++++++++++++++++++++++---------------------------
1 file changed, 33 insertions(+), 27 deletions(-)
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index 6932b9f..dca0751 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -1132,26 +1132,6 @@ static int usbFindDeviceTypeById(int device_id)
return 0;
}
-/**
- * Find the tool type (STYLUS_ID, etc.) based on the device_id.
- *
- * Protocol 5 devices report different IDs for different styli and pucks,
- * Protocol 4 devices simply report STYLUS_DEVICE_ID, etc.
- *
- * @param ds The current device state received from the kernel.
- * @return The tool type associated with the tool id.
- */
-static int usbFindDeviceType(const WacomCommonPtr common,
- const WacomDeviceState *ds)
-{
- int device_type = 0;
-
- if (!ds->device_id) return 0;
-
- device_type = usbFindDeviceTypeById(ds->device_id);
- return device_type;
-}
-
static void usbParseAbsEvent(WacomCommonPtr common,
struct input_event *event, int channel_number)
{
@@ -1207,10 +1187,7 @@ static void usbParseAbsEvent(WacomCommonPtr common,
case ABS_MISC:
ds->proximity = (event->value != 0);
if (event->value)
- {
ds->device_id = event->value;
- ds->device_type = usbFindDeviceType(common, ds);
- }
break;
default:
change = 0;
@@ -1485,10 +1462,6 @@ static void usbParseBTNEvent(WacomCommonPtr common,
}
channel->dirty |= change;
-
- /* expresskey pressed at startup or missing type */
- if (!ds->device_type && channel->dirty)
- ds->device_type = PAD_ID;
}
/**
@@ -1586,6 +1559,35 @@ static int refreshDeviceType(WacomCommonPtr common, int fd)
return 0;
}
+static int deriveDeviceTypeFromButtonEvent(WacomCommonPtr common,
+ const struct input_event *event_ptr)
+{
+ wcmUSBData *usbdata = common->private;
+ int nkeys;
+
+ if (event_ptr->type == EV_KEY) {
+
+ switch (event_ptr->code) {
+ case BTN_LEFT:
+ case BTN_MIDDLE:
+ case BTN_RIGHT:
+ case BTN_SIDE:
+ case BTN_BACK:
+ case BTN_EXTRA:
+ case BTN_FORWARD:
+ return PAD_ID;
+ default:
+ for (nkeys = 0; nkeys < usbdata->npadkeys; nkeys++)
+ {
+ if (event_ptr->code == usbdata->padkey_code[nkeys]) {
+ return PAD_ID;
+ }
+ }
+ }
+ }
+ return 0;
+}
+
/***
* Retrieve the tool type from an USB data packet by looking at the event
* codes. Refer to linux/input.h for event codes that define tool types.
@@ -1618,6 +1620,10 @@ static int usbInitToolType(WacomCommonPtr common, int fd,
if (!device_type)
device_type = refreshDeviceType(common, fd);
+ if (!device_type) /* expresskey pressed at startup or missing type */
+ for (i = 0; (i < nevents) && !device_type; ++i, event_ptr++)
+ device_type = deriveDeviceTypeFromButtonEvent(common, event_ptr);
+
return device_type;
}
++++++ n_01-Add-option-to-enable-logging.patch ++++++
From: Egbert Eich <eich(a)suse.com>
Date: Fri Feb 7 23:06:26 2014 +0100
Subject: [PATCH 1/4]Add option to enable logging
Patch-Mainline: never
Git-commit: 9717547311abfe18b7edad9e0b45f16b902e2f2d
Git-repo: git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom
References: FATE#
Signed-off-by: Egbert Eich <eich(a)suse.com>
This patch adds an option to set a bitmask marking events to be logged
to the Xserver log file.
Currently the list contains the following bits:
PROXIMITY low level event 1
PRESSURE low level event 2
BUTTON high level event 7
Signed-off-by: Egbert Eich <eich(a)suse.com>
---
configure.ac | 11 +++++++++++
include/wacom-properties.h | 9 +++++++++
man/wacom.man | 19 +++++++++++++++++++
man/xsetwacom.man | 19 ++++++++++++++++++-
src/wcmCommon.c | 35 +++++++++++++++++++++++++++++++++++
src/wcmConfig.c | 4 ++++
src/wcmUSB.c | 25 +++++++++++++++++++++++++
src/wcmXCommand.c | 22 +++++++++++++++++++++-
src/xf86Wacom.h | 22 ++++++++++++++++++++++
src/xf86WacomDefs.h | 4 +++-
tools/xsetwacom.c | 10 ++++++++++
11 files changed, 177 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 5eae74d..008a804 100644
--- a/configure.ac
+++ b/configure.ac
@@ -86,6 +86,17 @@ if test "x$DEBUGGING" = xyes; then
AC_DEFINE(DEBUG, 1, [Enable debugging code])
fi
+# Define a configure option for event logging
+AC_ARG_ENABLE(logging,
+ AS_HELP_STRING([--enable-logging],
+ [Enable logging (default: disabled)]),
+ [LOGGING=$enableval], [LOGGING=yes])
+
+# Define the C preprocessor macro LOGGING in config.h
+if test "x$LOGGING" = xyes; then
+ AC_DEFINE(LOGGING, 1, [Enable logging code])
+fi
+
# Define a configure option for an alternate input module directory
AC_ARG_WITH(xorg-module-dir,
AS_HELP_STRING([--with-xorg-module-dir=DIR],
diff --git a/include/wacom-properties.h b/include/wacom-properties.h
index b845083..f566d14 100644
--- a/include/wacom-properties.h
+++ b/include/wacom-properties.h
@@ -111,6 +111,15 @@
*/
#define WACOM_PROP_PRESSURE_RECAL "Wacom Pressure Recalibration"
+/* 8 bit, values:
+ Type bit
+ PROXIMITY_LOW_LEVEL event 1
+ PRESSURE_LOW_LEVEL event 2
+ BUTTON_HIGH_LEVEL event 7
+ Log event of the types specified in the type mask.
+*/
+#define WACOM_PROP_LOGMASK "Wacom Log Mask"
+
/* The following are tool types used by the driver in WACOM_PROP_TOOL_TYPE
* or in the 'type' field for XI1 clients. Clients may check for one of
* these types to identify tool types.
diff --git a/man/wacom.man b/man/wacom.man
index ae042f6..f699842 100644
--- a/man/wacom.man
+++ b/man/wacom.man
@@ -267,6 +267,25 @@ initial pressure reading may be unequal to zero even for a perfectly
good pen. If the consecutive pressure readings are not higher than
the initial pressure by a threshold no button event will be generated.
This option allows to disable the recalibration.
+.TP 4
+.B Option \fI"LogMask" \fI"number"\fP
+bitmask that enables logging of a group of events.
+.RS
+.PD 0
+.TP
+Bit
+Event
+.TP
+0
+proximity low level
+.TP
+1
+pressure low level
+.TP
+7
+button high level
+.PD
+
.RE
.SH "TOUCH GESTURES"
.SS Single finger (1FG)
diff --git a/man/xsetwacom.man b/man/xsetwacom.man
index 35ee9fe..5e42e3f 100644
--- a/man/xsetwacom.man
+++ b/man/xsetwacom.man
@@ -242,7 +242,24 @@ initial pressure reading may be unequal to zero even for a perfectly
good pen. If the consecutive pressure readings are not higher than
the initial pressure by a threshold no button event will be generated.
This option allows to disable the recalibration. Default: on
-
+.TP
+\fBLogMask\fR mask
+bitmask that enables logging of a group of events.
+.RS
+.PD 0
+.TP
+Bit
+Event
+.TP
+0
+proximity low level
+.TP
+1
+pressure low level
+.TP
+7
+button high level
+.PD
.SH "AUTHORS"
Peter Hutterer <peter.hutterer(a)redhat.com>
diff --git a/src/wcmCommon.c b/src/wcmCommon.c
index 6abb23b..238cf78 100644
--- a/src/wcmCommon.c
+++ b/src/wcmCommon.c
@@ -27,6 +27,9 @@
#include "wcmTouchFilter.h"
#include <xkbsrv.h>
#include <xf86_OSproc.h>
+#ifdef LOGGING
+#include <time.h>
+#endif
/* X servers pre 1.9 didn't copy data passed into xf86Post*Event.
* Data passed in would be modified, requiring the driver to copy the
@@ -85,6 +88,35 @@ void set_absolute(InputInfoPtr pInfo, Bool absolute)
priv->flags &= ~ABSOLUTE_FLAG;
}
+#ifdef LOGGING
+void wcm_timestr(char *str, int str_n)
+{
+ struct timespec tp;
+ struct tm tm;
+ static char wday_name[7][3] = {
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+ };
+ static char mon_name[12][3] = {
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+ };
+
+ str[0] = '\0';
+ if (clock_gettime(CLOCK_REALTIME, &tp) < 0)
+ return;
+ localtime_r(&tp.tv_sec, &tm);
+
+ snprintf(str, str_n, " %.3s %.3s%3d %.2d:%.2d:%.2d.%.6d - ",
+ wday_name[tm.tm_wday],
+ mon_name[tm.tm_mon],
+ tm.tm_mday, tm.tm_hour,
+ tm.tm_min, tm.tm_sec, (int)tp.tv_nsec);
+
+ return;
+
+}
+#endif
+
/*****************************************************************************
* wcmMappingFactor --
* calculate the proper tablet to screen mapping factor according to the
@@ -1523,6 +1555,9 @@ WacomCommonPtr wcmNewCommon(void)
common->wcmRawSample = DEFAULT_SAMPLES;
/* number of raw data to be used to for filtering */
common->wcmPressureRecalibration = 1;
+#ifdef LOGGING
+ common->LogMask = 0;
+#endif
return common;
}
diff --git a/src/wcmConfig.c b/src/wcmConfig.c
index a8077f9..7965e13 100644
--- a/src/wcmConfig.c
+++ b/src/wcmConfig.c
@@ -637,6 +637,10 @@ static int wcmPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
common->debugLevel = xf86SetIntOption(pInfo->options,
"CommonDBG", common->debugLevel);
+#ifdef LOGGING
+ common->LogMask = xf86SetIntOption(pInfo->options,
+ "LogMask", common->LogMask);
+#endif
oldname = strdup(pInfo->name);
if (wcmIsHotpluggedDevice(pInfo))
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index dca0751..e99960f 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -1103,6 +1103,31 @@ static int usbIdToType(int id)
return type;
}
+#ifdef LOGGING
+/**
+ * Return type name string.
+ * @param type
+ * @return string
+ */
+static const char *usbTypeName(unsigned long type)
+{
+ switch (type) {
+ case STYLUS_ID:
+ return "PEN";
+ case ERASER_ID:
+ return "RUBBER";
+ case CURSOR_ID:
+ return "MOUSE";
+ case TOUCH_ID:
+ return "TOUCH";
+ case PAD_ID:
+ return "PAD";
+ default:
+ return "UNKNOWN";
+ }
+}
+#endif
+
/**
* Find the tool type (STYLUS_ID, etc.) based on the device_id.
*
diff --git a/src/wcmXCommand.c b/src/wcmXCommand.c
index 0ec8737..504a03a 100644
--- a/src/wcmXCommand.c
+++ b/src/wcmXCommand.c
@@ -100,6 +100,9 @@ Atom prop_tooltype;
Atom prop_btnactions;
Atom prop_product_id;
Atom prop_pressure_recal;
+#ifdef LOGGING
+Atom prop_logmask;
+#endif
#ifdef DEBUG
Atom prop_debuglevels;
#endif
@@ -317,7 +320,10 @@ void InitWcmDeviceProperties(InputInfoPtr pInfo)
values[0] = common->vendor_id;
values[1] = common->tablet_id;
prop_product_id = InitWcmAtom(pInfo->dev, XI_PROP_PRODUCT_ID, XA_INTEGER, 32, 2, values);
-
+#ifdef LOGGING
+ values[0] = common->LogMask;
+ prop_logmask = InitWcmAtom(pInfo->dev, WACOM_PROP_LOGMASK, XA_INTEGER, 8, 1, values);
+#endif
#ifdef DEBUG
values[0] = priv->debugLevel;
values[1] = common->debugLevel;
@@ -921,6 +927,20 @@ int wcmSetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop,
common->debugLevel = values[1];
}
#endif
+#ifdef LOGGING
+ } else if (property == prop_logmask) {
+ CARD8 *values;
+
+ if (prop->size != 1 || prop->format != 8)
+ return BadMatch;
+
+ values = (CARD8*)prop->data;
+
+ if (!checkonly)
+ {
+ common->LogMask = values[0];
+ }
+#endif
} else if (property == prop_btnactions)
{
int nbuttons = priv->nbuttons < 4 ? priv->nbuttons : priv->nbuttons + 4;
diff --git a/src/xf86Wacom.h b/src/xf86Wacom.h
index 6872108..9bbee03 100644
--- a/src/xf86Wacom.h
+++ b/src/xf86Wacom.h
@@ -68,6 +68,28 @@
#define DBG(lvl, priv, ...)
#endif
+#ifdef LOG
+#undef LOG
+#endif
+#ifdef LOGGING
+void wcm_timestr(char *str, int str_n);
+#define DO_LOG(m, v) (m->LogMask & v)
+#define LOG(m, v, f, ...) do { \
+ if (DO_LOG(m, v)) { \
+ char tstr[30]; \
+ wcm_timestr(tstr, sizeof(tstr)); \
+ LogMessageVerbSigSafe(X_NONE, -1, "[LOG]%s " f, tstr, __VA_ARGS__); \
+ } \
+} while (0)
+#define LOG_PROXIMITY_LOW 1 << 0
+#define LOG_PRESSURE_LOW 1 << 1
+#define LOG_BUTTON_HIGH 1 << 7
+#else
+#define DO_LOG(m, v) (0)
+#define LOG(m, v, f, ...) do { \
+ } while (0)
+#endif
+
/******************************************************************************
* WacomModule - all globals are packed in a single structure to keep the
* global namespaces as clean as possible.
diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h
index 476d94d..0dc1d42 100644
--- a/src/xf86WacomDefs.h
+++ b/src/xf86WacomDefs.h
@@ -493,7 +493,9 @@ struct _WacomCommonRec
int wcmRawSample; /* Number of raw data used to filter an event */
int wcmPressureRecalibration; /* Determine if pressure recalibration of
worn pens should be performed */
-
+#ifdef LOGGING
+ int LogMask; /* Mask to determine which event types to log. */
+#endif
int bufpos; /* position with buffer */
unsigned char buffer[BUFFER_SIZE]; /* data read from device */
diff --git a/tools/xsetwacom.c b/tools/xsetwacom.c
index 508326e..aace755 100644
--- a/tools/xsetwacom.c
+++ b/tools/xsetwacom.c
@@ -152,6 +152,16 @@ static param_t parameters[] =
.arg_count = 1,
},
{
+ .name = "LogMask",
+ .desc = "Mask whose bits determine which events to log: "
+ "0 PROXIMITY event, 1 BUTTON event, 2 MOTION event, "
+ "3 PRESSURE event",
+ .prop_name = WACOM_PROP_LOGMASK,
+ .prop_format = 8,
+ .prop_offset = 0,
+ .arg_count = 1,
+ },
+ {
.name = "Suppress",
.desc = "Number of points trimmed (default is 2). ",
.prop_name = WACOM_PROP_SAMPLE,
++++++ n_02-Log-PROXIMITY-LOW-LEVEL-events.patch ++++++
From: Egbert Eich <eich(a)suse.com>
Date: Sun Feb 16 09:30:42 2014 +0100
Subject: [PATCH 2/4]Log PROXIMITY LOW LEVEL events
Patch-Mainline: never
Git-commit: df73852a08ab8b8ab3c2b04b7dea8386cceb64eb
Git-repo: git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom
References: FATE#
Signed-off-by: Egbert Eich <eich(a)suse.com>
Signed-off-by: Egbert Eich <eich(a)suse.com>
---
src/wcmUSB.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index e99960f..f0f8011 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -512,6 +512,8 @@ static void usbWcmInitPadState(InputInfoPtr pInfo)
ds->device_type = PAD_ID;
ds->device_id = PAD_DEVICE_ID;
ds->serial_num = channel;
+ LOG(common, LOG_PROXIMITY_LOW, "Proximity in for %s PAD serial -1\n",
+ pInfo->name);
}
int usbWcmGetRanges(InputInfoPtr pInfo)
@@ -1678,6 +1680,7 @@ static void usbDispatchEvents(InputInfoPtr pInfo)
int channel;
wcmUSBData* private = common->private;
WacomDeviceState dslast = common->wcmChannel[private->lastChannel].valid.state;
+ int log_proximity;
DBG(6, common, "%d events received\n", private->wcmEventCnt);
@@ -1725,6 +1728,7 @@ static void usbDispatchEvents(InputInfoPtr pInfo)
ds = &common->wcmChannel[channel].work;
dslast = common->wcmChannel[channel].valid.state;
+ log_proximity = ds->proximity;
if (ds->device_type && ds->device_type != private->wcmDeviceType)
LogMessageVerbSigSafe(X_ERROR, 0,
@@ -1739,10 +1743,16 @@ static void usbDispatchEvents(InputInfoPtr pInfo)
/* all USB data operates from previous context except relative values*/
ds->relwheel = 0;
ds->serial_num = private->wcmLastToolSerial;
+ if (log_proximity != ds->proximity)
+ LOG(common, LOG_PROXIMITY_LOW, "Proximity in for %s %s serial %d\n",
+ pInfo->name,
+ usbTypeName(ds->device_type),
+ private->wcmLastToolSerial);
/* loop through all events in group */
for (i=0; i<private->wcmEventCnt; ++i)
{
+ log_proximity = ds->proximity;
event = private->wcmEvents + i;
DBG(11, common,
"event[%d]->type=%d code=%d value=%d\n",
@@ -1795,6 +1805,12 @@ static void usbDispatchEvents(InputInfoPtr pInfo)
usbParseKeyEvent(common, event, channel);
usbParseBTNEvent(common, event, btn_channel);
}
+ if (log_proximity != ds->proximity)
+ LOG(common, LOG_PROXIMITY_LOW, "Proximity %s for %s %s serial %d\n",
+ ds->proximity ? "in" : "out",
+ pInfo->name,
+ usbTypeName(ds->device_type),
+ private->wcmLastToolSerial);
} /* next event */
/* DTF720 and DTF720a don't support eraser */
++++++ n_03-Log-PRESSURE-low-level-events.patch ++++++
From: Egbert Eich <eich(a)suse.com>
Date: Sun Feb 16 09:31:05 2014 +0100
Subject: [PATCH 3/4]Log PRESSURE low level events
Patch-Mainline: never
Git-commit: 9e575b396f7cbbe5cecd455d1f54a8a0d6c658d1
Git-repo: git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom
References: FATE#
Signed-off-by: Egbert Eich <eich(a)suse.com>
Signed-off-by: Egbert Eich <eich(a)suse.com>
---
src/wcmCommon.c | 8 ++++++--
src/wcmUSB.c | 4 ++++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/wcmCommon.c b/src/wcmCommon.c
index 238cf78..6df2133 100644
--- a/src/wcmCommon.c
+++ b/src/wcmCommon.c
@@ -1188,9 +1188,13 @@ static void detectPressureIssue(WacomDevicePtr priv,
"\tThis indicates a worn out pen, it is time to change your tool. Also see:\n"
"\thttp://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Pen_Wear.\n",
priv->pInfo->name, priv->serial, priv->minPressure, LIMIT_LOW_PRESSURE, common->wcmMaxZ);
- } else if (!priv->oldProximity)
+ } else if (!priv->oldProximity) {
+ if (priv->minPressure)
+ LOG(common, LOG_PRESSURE_LOW,
+ "WARN: %s(%u) initial pressure %d > 0\n",
+ priv->pInfo->name, priv->serial, ds->pressure);
priv->eventCnt = 0;
-
+ }
priv->oldMinPressure = priv->minPressure;
priv->eventCnt++;
}
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index f0f8011..24477b2 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -1193,6 +1193,8 @@ static void usbParseAbsEvent(WacomCommonPtr common,
break;
case ABS_PRESSURE:
ds->pressure = event->value;
+ LOG(common, LOG_PRESSURE_LOW, "Device %d got pressure %d\n",
+ ((wcmUSBData *)(common->private))->wcmLastToolSerial, ds->pressure);
break;
case ABS_DISTANCE:
ds->distance = event->value;
@@ -1292,6 +1294,8 @@ static void usbParseAbsMTEvent(WacomCommonPtr common, struct input_event *event)
case ABS_MT_PRESSURE:
ds->pressure = event->value;
+ LOG(common, LOG_PRESSURE_LOW, "Device %d got pressure %d\n",
+ ((wcmUSBData *)(common->private))->wcmLastToolSerial, ds->pressure);
break;
default:
++++++ n_04-Log-BUTTON-HIGH-LEVEL-events.patch ++++++
From: Egbert Eich <eich(a)suse.com>
Date: Tue Feb 11 12:51:32 2014 +0100
Subject: [PATCH 4/4]Log BUTTON HIGH LEVEL events
Patch-Mainline: never
Git-commit: 128d0302b04fb71b9d652a99fd0ad9b780374f44
Git-repo: git://linuxwacom.git.sourceforge.net/gitroot/linuxwacom/xf86-input-wacom
References: FATE#
Signed-off-by: Egbert Eich <eich(a)suse.com>
Signed-off-by: Egbert Eich <eich(a)suse.com>
---
src/wcmCommon.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/wcmCommon.c b/src/wcmCommon.c
index 6df2133..68ee6e2 100644
--- a/src/wcmCommon.c
+++ b/src/wcmCommon.c
@@ -316,9 +316,17 @@ static void sendAButton(InputInfoPtr pInfo, int button, int mask,
#ifdef DEBUG
WacomCommonPtr common = priv->common;
#endif
-
- DBG(4, priv, "TPCButton(%s) button=%d state=%d\n",
- common->wcmTPCButton ? "on" : "off", button, mask);
+ if (DO_LOG(common, LOG_BUTTON_HIGH)) {
+ int x = (first_val == 0 && num_val >= 1) ?
+ (int)((double)valuators[0] * priv->factorX) : -1;
+ int y = (first_val <= 1 && first_val + num_val > 1) ?
+ (int)((double)(valuators[1 - first_val]) * priv->factorY) : -1;
+ LOG(common, LOG_BUTTON_HIGH,
+ "TPCButton(%s) button=%d state=%d x=%d y=%d\n",
+ common->wcmTPCButton ? "on" : "off", button, mask, x, y);
+ } else
+ DBG(4, priv, "TPCButton(%s) button=%d state=%d\n",
+ common->wcmTPCButton ? "on" : "off", button, mask);
if (!priv->keys[button][0])
return;
++++++ xf86-input-wacom-0.23.0.tar.bz2 -> xf86-input-wacom-0.24.0.tar.bz2 ++++++
++++ 7273 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package openslp for openSUSE:Factory checked in at 2014-04-23 20:35:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openslp (Old)
and /work/SRC/openSUSE:Factory/.openslp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openslp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/openslp/openslp.changes 2014-02-22 20:44:33.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.openslp.new/openslp.changes 2014-04-23 20:35:38.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Apr 10 16:56:24 CEST 2014 - mls(a)suse.de
+
+- use AI_CANONNAME when looking up the canonical name
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ extensions.diff ++++++
--- /var/tmp/diff_new_pack.S7QDNt/_old 2014-04-23 20:35:39.000000000 +0200
+++ /var/tmp/diff_new_pack.S7QDNt/_new 2014-04-23 20:35:39.000000000 +0200
@@ -1,5 +1,5 @@
--- ./common/slp_compare.c.orig 2012-12-12 19:12:43.000000000 +0000
-+++ ./common/slp_compare.c 2014-02-19 16:51:59.737942446 +0000
++++ ./common/slp_compare.c 2014-04-10 14:54:49.730301497 +0000
@@ -414,6 +414,16 @@ int SLPCompareNamingAuth(size_t srvtypel
if (namingauthlen == 0xffff)
return 0; /* match all naming authorities */
@@ -18,7 +18,7 @@
if (!namingauthlen)
return dot? 1: 0; /* IANA naming authority */
--- ./common/slp_message.h.orig 2012-12-07 20:13:28.000000000 +0000
-+++ ./common/slp_message.h 2014-02-19 16:51:59.738942446 +0000
++++ ./common/slp_message.h 2014-04-10 14:54:49.730301497 +0000
@@ -127,6 +127,11 @@
#define SLP_REG_SOURCE_LOCAL 2 /* from localhost or IPC */
#define SLP_REG_SOURCE_STATIC 3 /* from the slp.reg file */
@@ -41,7 +41,7 @@
} SLPSrvReg;
--- ./common/slp_property.c.orig 2012-12-10 23:31:53.000000000 +0000
-+++ ./common/slp_property.c 2014-02-19 16:51:59.739942446 +0000
++++ ./common/slp_property.c 2014-04-10 14:54:49.730301497 +0000
@@ -80,12 +80,17 @@ static SLPList s_PropertyList = {0, 0, 0
/** The (optional) application-specified property file - module static. */
@@ -158,8 +158,8 @@
SLPMutexDestroy(s_PropDbLock);
s_PropertiesInitialized = false;
}
---- ./common/slp_property.h.orig 2014-02-19 16:52:45.865942364 +0000
-+++ ./common/slp_property.h 2014-02-19 16:53:02.255942335 +0000
+--- ./common/slp_property.h.orig 2012-11-28 17:07:04.000000000 +0000
++++ ./common/slp_property.h 2014-04-10 14:54:49.730301497 +0000
@@ -66,6 +66,7 @@ int SLPPropertySetAppConfFile(const char
int SLPPropertyReinit(void);
int SLPPropertyInit(const char * gconffile);
@@ -169,7 +169,7 @@
/*! Special function to access MTU configuration property value. This provides
* fast access to the MTU value both in client libraries and server program.
--- ./common/slp_spi.c.orig 2012-11-28 17:07:04.000000000 +0000
-+++ ./common/slp_spi.c 2014-02-19 16:51:59.739942446 +0000
++++ ./common/slp_spi.c 2014-04-10 14:54:49.730301497 +0000
@@ -426,6 +426,17 @@ int SLPSpiCanSign(SLPSpiHandle hspi, siz
spistrlen, spistr) != 0;
}
@@ -189,7 +189,7 @@
/*=========================================================================*/
--- ./common/slp_spi.h.orig 2012-11-28 17:07:04.000000000 +0000
-+++ ./common/slp_spi.h 2014-02-19 16:51:59.740942446 +0000
++++ ./common/slp_spi.h 2014-04-10 14:54:49.730301497 +0000
@@ -106,6 +106,8 @@ int SLPSpiCanVerify(SLPSpiHandle hspi, s
int SLPSpiCanSign(SLPSpiHandle hspi, size_t spistrlen, const char * spistr);
@@ -200,7 +200,7 @@
/*! @} */
--- ./libslp/libslp_findsrvs.c.orig 2012-11-28 17:07:04.000000000 +0000
-+++ ./libslp/libslp_findsrvs.c 2014-02-19 16:51:59.740942446 +0000
++++ ./libslp/libslp_findsrvs.c 2014-04-10 14:54:49.731301477 +0000
@@ -64,7 +64,7 @@
*/
static SLPBoolean CollateToSLPSrvURLCallback(SLPHandle hSLP,
@@ -306,7 +306,7 @@
}
SLPMessageFree(replymsg);
--- ./libslp/slp.h.orig 2012-11-28 17:07:04.000000000 +0000
-+++ ./libslp/slp.h 2014-02-19 16:51:59.740942446 +0000
++++ ./libslp/slp.h 2014-04-10 14:54:49.731301477 +0000
@@ -606,6 +606,15 @@ SLPEXP SLPError SLPAPI SLPAssociateIP(
SLPHandle hSLP,
const char * unicast_ip);
@@ -324,7 +324,7 @@
}
#endif
--- ./libslpattr/libslpattr.c.orig 2012-12-10 23:31:53.000000000 +0000
-+++ ./libslpattr/libslpattr.c 2014-02-19 16:51:59.740942446 +0000
++++ ./libslpattr/libslpattr.c 2014-04-10 14:54:49.731301477 +0000
@@ -393,6 +393,9 @@ static char * unescape_into(char * dest,
(*cur)++;
}
@@ -336,7 +336,7 @@
return 1;
}
--- ./slpd/slpd_database.c.orig 2012-12-10 23:31:53.000000000 +0000
-+++ ./slpd/slpd_database.c 2014-02-19 16:51:59.741942446 +0000
++++ ./slpd/slpd_database.c 2014-04-10 14:54:49.731301477 +0000
@@ -49,6 +49,7 @@
#define _GNU_SOURCE
@@ -620,7 +620,7 @@
/** Cleans up all resources used by the database.
*/
--- ./slpd/slpd_database.h.orig 2012-11-28 17:07:04.000000000 +0000
-+++ ./slpd/slpd_database.h 2014-02-19 16:51:59.741942446 +0000
++++ ./slpd/slpd_database.h 2014-04-10 14:54:49.732301459 +0000
@@ -103,7 +103,9 @@ SLPMessage * SLPDDatabaseEnum(void * eh,
void SLPDDatabaseEnumEnd(void * eh);
int SLPDDatabaseIsEmpty(void);
@@ -633,7 +633,7 @@
#ifdef DEBUG
void SLPDDatabaseDeinit(void);
--- ./slpd/slpd_knownda.c.orig 2012-12-10 23:31:53.000000000 +0000
-+++ ./slpd/slpd_knownda.c 2014-02-19 16:51:59.741942446 +0000
++++ ./slpd/slpd_knownda.c 2014-04-10 14:54:49.732301459 +0000
@@ -1836,7 +1836,7 @@ void SLPDKnownDARegisterWithAllDas(SLPMe
/* Returns: None */
/*=========================================================================*/
@@ -644,7 +644,7 @@
/* Simply echo the message through as is */
SLPDKnownDAEcho(msg, buf);
--- ./slpd/slpd_log.c.orig 2012-11-28 17:07:04.000000000 +0000
-+++ ./slpd/slpd_log.c 2014-02-19 16:51:59.741942446 +0000
++++ ./slpd/slpd_log.c 2014-04-10 14:54:49.732301459 +0000
@@ -298,6 +298,7 @@ static void SLPDLogSrvTypeRqstMessage(SL
{
(void)srvtyperqst;
@@ -654,7 +654,7 @@
/** Logs information about a SrvTypeReply message to the log file.
--- ./slpd/slpd_main.c.orig 2012-12-10 23:31:53.000000000 +0000
-+++ ./slpd/slpd_main.c 2014-02-19 16:54:07.431942220 +0000
++++ ./slpd/slpd_main.c 2014-04-10 14:54:49.732301459 +0000
@@ -66,6 +66,8 @@ int G_SIGINT; /* Signal being used f
int G_SIGUSR1; /* Signal being used to dump information about the database */
#endif
@@ -725,8 +725,8 @@
if (DropPrivileges())
SLPDFatal("Could not drop privileges\n");
--- ./slpd/slpd_property.c.orig 2012-11-28 17:07:04.000000000 +0000
-+++ ./slpd/slpd_property.c 2014-02-19 16:53:31.407942284 +0000
-@@ -50,6 +50,23 @@
++++ ./slpd/slpd_property.c 2014-04-10 14:55:49.894966122 +0000
+@@ -50,6 +50,24 @@
*/
SLPDProperty G_SlpdProperty;
@@ -741,6 +741,7 @@
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_family = AF_UNSPEC;
++ hints.ai_flags = AI_CANONNAME;
+ if (getaddrinfo(host, 0, &hints, &ifaddr) == 0 && ifaddr->ai_canonname && strchr(ifaddr->ai_canonname, '.') != 0)
+ return xstrdup(ifaddr->ai_canonname);
+ }
@@ -750,7 +751,7 @@
/** Reinitialize the slpd property management subsystem.
*
* Clears and rereads configuration parameters from files into the system.
-@@ -226,6 +243,9 @@ void SLPDPropertyReinit(void)
+@@ -226,6 +244,9 @@ void SLPDPropertyReinit(void)
G_SlpdProperty.nextActiveDiscovery = 0; /* ensures xmit on first call to SLPDKnownDAActiveDiscovery() */
G_SlpdProperty.nextPassiveDAAdvert = 0; /* ensures xmit on first call to SLPDKnownDAPassiveDiscovery()*/
@@ -760,7 +761,7 @@
}
/** Initialize the slpd property management subsystem.
-@@ -266,6 +286,7 @@ void SLPDPropertyDeinit(void)
+@@ -266,6 +287,7 @@ void SLPDPropertyDeinit(void)
xfree(G_SlpdProperty.ifaceInfo.iface_addr);
xfree(G_SlpdProperty.ifaceInfo.bcast_addr);
@@ -769,7 +770,7 @@
}
--- ./slpd/slpd_property.h.orig 2012-11-28 17:07:04.000000000 +0000
-+++ ./slpd/slpd_property.h 2014-02-19 16:51:59.742942446 +0000
++++ ./slpd/slpd_property.h 2014-04-10 14:54:49.732301459 +0000
@@ -73,6 +73,8 @@ typedef struct _SLPDProperty
uint16_t port;
size_t localeLen;
@@ -780,7 +781,7 @@
int indexingPropertiesSet; /** Indexes are only maintained from startup,
* and may not be switched on and off without
--- ./slpd/slpd_regfile.c.orig 2012-12-10 23:31:53.000000000 +0000
-+++ ./slpd/slpd_regfile.c 2014-02-19 16:51:59.742942446 +0000
++++ ./slpd/slpd_regfile.c 2014-04-10 14:54:49.732301459 +0000
@@ -130,6 +130,7 @@ int SLPDRegFileReadSrvReg(FILE * fd, SLP
{
char * slider1;
@@ -853,7 +854,7 @@
CLEANUP:
--- ./slpd/slpd_spi.c.orig 2012-11-28 17:07:04.000000000 +0000
-+++ ./slpd/slpd_spi.c 2014-02-19 16:51:59.742942446 +0000
++++ ./slpd/slpd_spi.c 2014-04-10 14:54:49.733301445 +0000
@@ -66,6 +66,8 @@ int SLPDSpiInit(const char * spifile)
G_SlpdSpiHandle = 0;
}
@@ -864,7 +865,7 @@
}
--- ./slptool/slptool.c.orig 2013-06-08 02:50:38.000000000 +0000
-+++ ./slptool/slptool.c 2014-02-19 16:51:59.742942446 +0000
++++ ./slptool/slptool.c 2014-04-10 14:54:49.733301445 +0000
@@ -187,7 +187,17 @@ static SLPBoolean mySrvUrlCallback(SLPHa
(void)cookie;
@@ -913,7 +914,7 @@
printf(" command-and-arguments may be:\n");
printf(" findsrvs service-type [filter]\n");
--- ./slptool/slptool.h.orig 2012-11-28 17:07:04.000000000 +0000
-+++ ./slptool/slptool.h 2014-02-19 16:51:59.742942446 +0000
++++ ./slptool/slptool.h 2014-04-10 14:54:49.733301445 +0000
@@ -107,6 +107,7 @@ typedef struct _SLPToolCommandLine
const char * cmdparam1;
const char * cmdparam2;
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0