rewrite of %check: fine-grained test exclusions
* Sat Sep 10 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-2 - rewrite of "check", introducing downstream-only hooks for skipping specific cases in an rpmbuild (patch 132), and fixing/skipping failing tests in a more fine-grained manner than before; (patches 106, 133-142 sparsely, moving patches for consistency with python.spec: 128 to 134, 126 to 135, 127 to 141)
This commit is contained in:
		
							parent
							
								
									06b3c5b484
								
							
						
					
					
						commit
						0c8875f3f6
					
				
							
								
								
									
										13
									
								
								00106-lib64-fix-for-test_install.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								00106-lib64-fix-for-test_install.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| --- Python-2.7.2/Lib/distutils/tests/test_install.py.lib64	2011-09-08 17:51:57.851405376 -0400
 | ||||
| +++ Python-2.7.2/Lib/distutils/tests/test_install.py	2011-09-08 18:40:46.754205096 -0400
 | ||||
| @@ -41,8 +41,9 @@ class InstallTestCase(support.TempdirMan
 | ||||
|              self.assertEqual(got, expected) | ||||
|   | ||||
|          libdir = os.path.join(destination, "lib", "python") | ||||
| +        platlibdir = os.path.join(destination, "lib64", "python")
 | ||||
|          check_path(cmd.install_lib, libdir) | ||||
| -        check_path(cmd.install_platlib, libdir)
 | ||||
| +        check_path(cmd.install_platlib, platlibdir)
 | ||||
|          check_path(cmd.install_purelib, libdir) | ||||
|          check_path(cmd.install_headers, | ||||
|                     os.path.join(destination, "include", "python", "foopkg")) | ||||
							
								
								
									
										68
									
								
								00132-add-rpmbuild-hooks-to-unittest.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								00132-add-rpmbuild-hooks-to-unittest.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,68 @@ | ||||
| diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/case.py
 | ||||
| --- Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest	2011-09-03 12:16:44.000000000 -0400
 | ||||
| +++ Python-3.2.2/Lib/unittest/case.py	2011-09-09 06:35:16.365568382 -0400
 | ||||
| @@ -3,6 +3,7 @@
 | ||||
|  import sys | ||||
|  import functools | ||||
|  import difflib | ||||
| +import os
 | ||||
|  import pprint | ||||
|  import re | ||||
|  import warnings | ||||
| @@ -101,6 +102,43 @@ def expectedFailure(func):
 | ||||
|      return wrapper | ||||
|   | ||||
|   | ||||
| +# Non-standard/downstream-only hooks for handling issues with specific test
 | ||||
| +# cases:
 | ||||
| +
 | ||||
| +def _skipInRpmBuild(reason):
 | ||||
| +    """
 | ||||
| +    Non-standard/downstream-only decorator for marking a specific unit test
 | ||||
| +    to be skipped when run within the %check of an rpmbuild.
 | ||||
| +
 | ||||
| +    Specifically, this takes effect when WITHIN_PYTHON_RPM_BUILD is set within
 | ||||
| +    the environment, and has no effect otherwise.
 | ||||
| +    """
 | ||||
| +    if 'WITHIN_PYTHON_RPM_BUILD' in os.environ:
 | ||||
| +        return skip(reason)
 | ||||
| +    else:
 | ||||
| +        return _id
 | ||||
| +
 | ||||
| +def _expectedFailureInRpmBuild(func):
 | ||||
| +    """
 | ||||
| +    Non-standard/downstream-only decorator for marking a specific unit test
 | ||||
| +    as expected to fail within the %check of an rpmbuild.
 | ||||
| +
 | ||||
| +    Specifically, this takes effect when WITHIN_PYTHON_RPM_BUILD is set within
 | ||||
| +    the environment, and has no effect otherwise.
 | ||||
| +    """
 | ||||
| +    @functools.wraps(func)
 | ||||
| +    def wrapper(*args, **kwargs):
 | ||||
| +        if 'WITHIN_PYTHON_RPM_BUILD' in os.environ:
 | ||||
| +            try:
 | ||||
| +                func(*args, **kwargs)
 | ||||
| +            except Exception:
 | ||||
| +                raise _ExpectedFailure(sys.exc_info())
 | ||||
| +            raise _UnexpectedSuccess
 | ||||
| +        else:
 | ||||
| +            # Call directly:
 | ||||
| +            func(*args, **kwargs)
 | ||||
| +    return wrapper
 | ||||
| +
 | ||||
|  class _AssertRaisesBaseContext(object): | ||||
|   | ||||
|      def __init__(self, expected, test_case, callable_obj=None, | ||||
| diff -up Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/__init__.py
 | ||||
| --- Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest	2011-09-03 12:16:44.000000000 -0400
 | ||||
| +++ Python-3.2.2/Lib/unittest/__init__.py	2011-09-09 06:35:16.366568382 -0400
 | ||||
| @@ -57,7 +57,8 @@ __unittest = True
 | ||||
|   | ||||
|  from .result import TestResult | ||||
|  from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf, | ||||
| -                   skipUnless, expectedFailure)
 | ||||
| +                   skipUnless, expectedFailure,
 | ||||
| +                   _skipInRpmBuild, _expectedFailureInRpmBuild)
 | ||||
|  from .suite import BaseTestSuite, TestSuite | ||||
|  from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames, | ||||
|                       findTestCases) | ||||
							
								
								
									
										12
									
								
								00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| diff -up Python-3.2.2/Lib/distutils/tests/test_bdist_rpm.py.skip-distutils-tests-that-fail-in-rpmbuild Python-3.2.2/Lib/distutils/tests/test_bdist_rpm.py
 | ||||
| --- Python-3.2.2/Lib/distutils/tests/test_bdist_rpm.py.skip-distutils-tests-that-fail-in-rpmbuild	2011-09-03 12:16:40.000000000 -0400
 | ||||
| +++ Python-3.2.2/Lib/distutils/tests/test_bdist_rpm.py	2011-09-10 05:04:56.328852558 -0400
 | ||||
| @@ -23,6 +23,7 @@ setup(name='foo', version='0.1', py_modu
 | ||||
|   | ||||
|  """ | ||||
|   | ||||
| +@unittest._skipInRpmBuild("don't try to nest one rpm build inside another rpm build")
 | ||||
|  class BuildRpmTestCase(support.TempdirManager, | ||||
|                         support.LoggingSilencer, | ||||
|                         unittest.TestCase): | ||||
| diff -up Python-3.2.2/Lib/distutils/tests/test_build_ext.py.skip-distutils-tests-that-fail-in-rpmbuild Python-3.2.2/Lib/distutils/tests/test_build_ext.py
 | ||||
							
								
								
									
										11
									
								
								00139-skip-test_float-known-failure-on-arm.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								00139-skip-test_float-known-failure-on-arm.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | ||||
| diff -up Python-2.7.2/Lib/test/test_float.py.skip-test_float-known-failure-on-arm Python-2.7.2/Lib/test/test_float.py
 | ||||
| --- Python-2.7.2/Lib/test/test_float.py.skip-test_float-known-failure-on-arm	2011-09-08 19:34:09.000986128 -0400
 | ||||
| +++ Python-2.7.2/Lib/test/test_float.py	2011-09-08 19:34:57.969982779 -0400
 | ||||
| @@ -1072,6 +1072,7 @@ class HexFloatTestCase(unittest.TestCase
 | ||||
|                      self.identical(got, expected) | ||||
|   | ||||
|   | ||||
| +    @unittest.skip('Known failure on ARM: http://bugs.python.org/issue8265')
 | ||||
|      def test_from_hex(self): | ||||
|          MIN = self.MIN; | ||||
|          MAX = self.MAX; | ||||
							
								
								
									
										22
									
								
								00142-skip-failing-pty-tests-in-rpmbuild.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								00142-skip-failing-pty-tests-in-rpmbuild.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| diff -up Python-2.7.2/Lib/test/test_openpty.py.skip-failing-pty-tests-in-rpmbuild Python-2.7.2/Lib/test/test_openpty.py
 | ||||
| --- Python-2.7.2/Lib/test/test_openpty.py.skip-failing-pty-tests-in-rpmbuild	2011-09-09 05:09:28.698920379 -0400
 | ||||
| +++ Python-2.7.2/Lib/test/test_openpty.py	2011-09-09 05:10:54.805914490 -0400
 | ||||
| @@ -8,6 +8,7 @@ if not hasattr(os, "openpty"):
 | ||||
|   | ||||
|   | ||||
|  class OpenptyTest(unittest.TestCase): | ||||
| +    @unittest._skipInRpmBuild('sometimes fails in Koji, possibly due to a mock issue (rhbz#714627)')
 | ||||
|      def test(self): | ||||
|          master, slave = os.openpty() | ||||
|          if not os.isatty(slave): | ||||
| diff -up Python-2.7.2/Lib/test/test_pty.py.skip-failing-pty-tests-in-rpmbuild Python-2.7.2/Lib/test/test_pty.py
 | ||||
| --- Python-2.7.2/Lib/test/test_pty.py.skip-failing-pty-tests-in-rpmbuild	2011-09-09 05:09:36.781919825 -0400
 | ||||
| +++ Python-2.7.2/Lib/test/test_pty.py	2011-09-09 05:11:14.741913127 -0400
 | ||||
| @@ -109,6 +109,7 @@ class PtyTest(unittest.TestCase):
 | ||||
|          os.close(master_fd) | ||||
|   | ||||
|   | ||||
| +    @unittest._skipInRpmBuild('sometimes fails in Koji, possibly due to a mock issue (rhbz#714627)')
 | ||||
|      def test_fork(self): | ||||
|          debug("calling pty.fork()") | ||||
|          pid, master_fd = pty.fork() | ||||
							
								
								
									
										188
									
								
								python3.spec
									
									
									
									
									
								
							
							
						
						
									
										188
									
								
								python3.spec
									
									
									
									
									
								
							| @ -118,7 +118,7 @@ | ||||
| Summary: Version 3 of the Python programming language aka Python 3000 | ||||
| Name: python3 | ||||
| Version: %{pybasever}.2 | ||||
| Release: 1%{?dist} | ||||
| Release: 2%{?dist} | ||||
| License: Python | ||||
| Group: Development/Languages | ||||
| 
 | ||||
| @ -234,6 +234,10 @@ Patch104: python-3.1.2-more-configuration-flags.patch | ||||
| # (rhbz:553020); partially upstream as http://bugs.python.org/issue7647 | ||||
| Patch105: python-3.2a1-statvfs-f_flag-constants.patch | ||||
| 
 | ||||
| # Only used when "%{_lib}" == "lib64" | ||||
| # Another lib64 fix, for distutils/tests/test_install.py; not upstream: | ||||
| Patch106: 00106-lib64-fix-for-test_install.patch | ||||
| 
 | ||||
| # COUNT_ALLOCS is useful for debugging, but the upstream behaviour of always | ||||
| # emitting debug info to stdout on exit is too verbose and makes it harder to | ||||
| # use the debug build.  Add a "PYTHONDUMPCOUNTS" environment variable which | ||||
| @ -241,20 +245,6 @@ Patch105: python-3.2a1-statvfs-f_flag-constants.patch | ||||
| # Not yet sent upstream: | ||||
| Patch125: less-verbose-COUNT_ALLOCS.patch | ||||
| 
 | ||||
| # test_weakref's test_callback_in_cycle_resurrection doesn't work with | ||||
| # COUNT_ALLOCS, as the metrics keep "C" alive.  Work around this for our | ||||
| # debug build: | ||||
| # Not yet sent upstream | ||||
| Patch126: python-3.2b2-test-weakref-COUNT_ALLOCS_fix.patch | ||||
| 
 | ||||
| # Similar COUNT_ALLOCS fixes for test_gc | ||||
| # Not yet sent upstream | ||||
| Patch127: python-3.2b2-fix-test-gc-COUNT_ALLOCS.patch | ||||
| 
 | ||||
| # Similar COUNT_ALLOCS fixes for test_sys | ||||
| # Not yet sent upstream | ||||
| Patch128: python-3.2b2-test_sys-COUNT_ALLOCS.patch | ||||
| 
 | ||||
| # In my koji builds, /root/bin is in the PATH for some reason | ||||
| # This leads to test_subprocess.py failing, due to "test_leaking_fds_on_error" | ||||
| # trying every dir in PATH for "nonexisting_i_hope", which leads to it raising | ||||
| @ -277,6 +267,74 @@ Patch130: python-2.7.2-tsc-on-ppc.patch | ||||
| # (rhbz#732998) | ||||
| Patch131: python-2.7.2-disable-tests-in-test_io.patch | ||||
| 
 | ||||
| # Add non-standard hooks to unittest for use in the "check" phase below, when | ||||
| # running selftests within the build: | ||||
| #   @unittest._skipInRpmBuild(reason) | ||||
| # for tests that hang or fail intermittently within the build environment, and: | ||||
| #   @unittest._expectedFailureInRpmBuild | ||||
| # for tests that always fail within the build environment | ||||
| # | ||||
| # The hooks only take effect if WITHIN_PYTHON_RPM_BUILD is set in the | ||||
| # environment, which we set manually in the appropriate portion of the "check" | ||||
| # phase below (and which potentially other python-* rpms could set, to reuse | ||||
| # these unittest hooks in their own "check" phases) | ||||
| Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch | ||||
| 
 | ||||
| # 00133-skip-test_dl.patch is not relevant for python3: the "dl" module no | ||||
| # longer exists | ||||
| 
 | ||||
| # Fix a failure in test_sys.py when configured with COUNT_ALLOCS enabled | ||||
| # Not yet sent upstream | ||||
| Patch134: 00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch | ||||
| 
 | ||||
| # test_weakref's test_callback_in_cycle_resurrection doesn't work with | ||||
| # COUNT_ALLOCS, as the metrics keep "C" alive.  Work around this for our | ||||
| # debug build: | ||||
| # Not yet sent upstream | ||||
| Patch135: 00135-fix-test-within-test_weakref-in-debug-build.patch | ||||
| 
 | ||||
| # Patch136: 00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch does not seem | ||||
| # to be needed by python3 | ||||
| 
 | ||||
| # Some tests within distutils fail when run in an rpmbuild: | ||||
| Patch137: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch | ||||
| 
 | ||||
| # Patch138: 00138-fix-distutils-tests-in-debug-build.patch is not relevant for | ||||
| # python3 | ||||
| 
 | ||||
| # ARM-specific: skip known failure in test_float: | ||||
| #  http://bugs.python.org/issue8265 (rhbz#706253) | ||||
| Patch139: 00139-skip-test_float-known-failure-on-arm.patch | ||||
| 
 | ||||
| # Patch140: 00140-skip-test_ctypes-known-failure-on-sparc.patch does not appear | ||||
| # to be relevant for python3 | ||||
| 
 | ||||
| # Fix test_gc's test_newinstance case when configured with COUNT_ALLOCS: | ||||
| Patch141: 00141-fix-test_gc_with_COUNT_ALLOCS.patch | ||||
| 
 | ||||
| # Some pty tests fail when run in mock (rhbz#714627): | ||||
| Patch142: 00142-skip-failing-pty-tests-in-rpmbuild.patch | ||||
| 
 | ||||
| # (New patches go here ^^^) | ||||
| # | ||||
| # When adding new patches to "python" and "python3" in Fedora 17 onwards, | ||||
| # please try to keep the patch numbers in-sync between the two specfiles: | ||||
| # | ||||
| #   - use the same patch number across both specfiles for conceptually-equivalent | ||||
| #     fixes, ideally with the same name | ||||
| # | ||||
| #   - when a patch is relevan to both specfiles, use the same introductory | ||||
| #     comment in both specfiles where possible (to improve "diff" output when | ||||
| #     comparing them) | ||||
| # | ||||
| #   - when a patch is only relevant for one of the two specfiles, leave a gap | ||||
| #     in the patch numbering in the other specfile, adding a comment when | ||||
| #     omitting a patch, both in the manifest section here, and in the "prep" | ||||
| #     phase below | ||||
| # | ||||
| # Hopefully this will make it easier to ensure that all relevant fixes are | ||||
| # applied to both versions. | ||||
| 
 | ||||
| # This is the generated patch to "configure"; see the description of | ||||
| #   %{regenerate_autotooling_patch} | ||||
| # above: | ||||
| @ -424,6 +482,7 @@ rm -r Modules/zlib || exit 1 | ||||
| 
 | ||||
| %if "%{_lib}" == "lib64" | ||||
| %patch102 -p1 | ||||
| %patch106 -p1 | ||||
| %endif | ||||
| 
 | ||||
| %patch104 -p1 -b .more-configuration-flags | ||||
| @ -431,9 +490,7 @@ rm -r Modules/zlib || exit 1 | ||||
| %patch105 -p1 -b .statvfs-f-flag-constants | ||||
| 
 | ||||
| %patch125 -p1 -b .less-verbose-COUNT_ALLOCS | ||||
| %patch126 -p1 | ||||
| %patch127 -p1 | ||||
| %patch128 -p1 | ||||
| 
 | ||||
| %patch129 -p1 | ||||
| %patch130 -p1 -b .tsc-on-ppc | ||||
| 
 | ||||
| @ -441,6 +498,20 @@ rm -r Modules/zlib || exit 1 | ||||
| %patch131 -p1 | ||||
| %endif | ||||
| 
 | ||||
| %patch132 -p1 | ||||
| # 00133: not for python3 | ||||
| %patch134 -p1 | ||||
| %patch135 -p1 | ||||
| # 00136: not for python3 | ||||
| %patch137 -p1 | ||||
| # 00138: not for python3 | ||||
| %ifarch %{arm} | ||||
| %patch139 -p1 | ||||
| %endif | ||||
| # 00140: not for python3 | ||||
| %patch141 -p1 | ||||
| %patch142 -p1 | ||||
| 
 | ||||
| # Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there | ||||
| # are many differences between 2.6 and the Python 3 library. | ||||
| # | ||||
| @ -849,79 +920,16 @@ CheckPython() { | ||||
| 
 | ||||
|   echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName | ||||
| 
 | ||||
|   # Notes about disabled tests: | ||||
|   # | ||||
|   # test_distutils.py | ||||
|   #    This one tries to build an RPM inside the rpmbuild; I'll simply | ||||
|   # let this one fail for now (has trouble linking against -lpython3.1; perhaps | ||||
|   # LD_LIBRARY_PATH is being discarded somewhere?) | ||||
|   # | ||||
|   # test_http* | ||||
|   #   I've seen occasional hangs in some http tests when running the test suite | ||||
|   #   inside Koji on Python 3.  For that reason I exclude them | ||||
|   # | ||||
|   # test_openpty: | ||||
|   #   Fails in Koji, possibly due to a mock issue (rhbz#714627) | ||||
|   #     test test_openpty failed -- Traceback (most recent call last): | ||||
|   #       File "/builddir/build/BUILD/Python-3.2/Lib/test/test_openpty.py", line 12, in test | ||||
|   #         master, slave = os.openpty() | ||||
|   #     OSError: [Errno 2] No such file or directory | ||||
|   # | ||||
|   # test_pty: | ||||
|   #   Fails in Koji, possibly due to a mock issue (rhbz#714627) | ||||
|   #     test test_pty failed -- Traceback (most recent call last): | ||||
|   #       File "/builddir/build/BUILD/Python-3.2/Lib/test/test_pty.py", line 114, in test_fork | ||||
|   #         pid, master_fd = pty.fork() | ||||
|   #       File "/builddir/build/BUILD/Python-3.2/Lib/pty.py", line 107, in fork | ||||
|   #         master_fd, slave_fd = openpty() | ||||
|   #       File "/builddir/build/BUILD/Python-3.2/Lib/pty.py", line 29, in openpty | ||||
|   #         master_fd, slave_name = _open_terminal() | ||||
|   #       File "/builddir/build/BUILD/Python-3.2/Lib/pty.py", line 70, in _open_terminal | ||||
|   #         raise os.error('out of pty devices') | ||||
|   #     OSError: out of pty devices | ||||
|   # | ||||
|   # test_socket: | ||||
|   #   test_socket.py:testSockName can fail here if DNS isn't properly set up: | ||||
|   #     my_ip_addr = socket.gethostbyname(socket.gethostname()) | ||||
|   #   socket.gaierror: [Errno -2] Name or service not known | ||||
|   # | ||||
|   # test_telnet: | ||||
|   #    can get a "socket.error: [Errno 104] Connection reset by peer" | ||||
|   # | ||||
|   # Some additional tests fail when running the test suite as non-root outside of | ||||
|   # the build, due to permissions issues. | ||||
| 
 | ||||
| %ifarch %{sparc} | ||||
|   EXCLUDED_TESTS="\ | ||||
|       test_distutils \ | ||||
|       test_httplib \ | ||||
|       test_http_cookies \ | ||||
|       test_openpty \ | ||||
|       test_pty.py \ | ||||
|       test_socket \ | ||||
|       test_telnet \ | ||||
|       test_ctypes \ | ||||
|       test_openpty \ | ||||
|       test_pty \ | ||||
|   %{nil}" | ||||
| %else | ||||
|   EXCLUDED_TESTS="\ | ||||
|       test_distutils \ | ||||
|       test_httplib \ | ||||
|       test_http_cookies \ | ||||
|       test_openpty \ | ||||
|       test_pty.py \ | ||||
|       test_socket \ | ||||
|       test_telnet \ | ||||
|   %{nil}" | ||||
| %endif | ||||
|   # Note that we're running the tests using the version of the code in the builddir, | ||||
|   # not in the buildroot. | ||||
| 
 | ||||
|   # Run the upstream test suite | ||||
|   # Run the upstream test suite, setting "WITHIN_PYTHON_RPM_BUILD" so that the | ||||
|   # our non-standard decorators take effect on the relevant tests: | ||||
|   #   @unittest._skipInRpmBuild(reason) | ||||
|   #   @unittest._expectedFailureInRpmBuild | ||||
|   WITHIN_PYTHON_RPM_BUILD= \ | ||||
|   LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \ | ||||
|     --verbose --findleaks \ | ||||
|     -x $EXCLUDED_TESTS | ||||
|     --verbose --findleaks | ||||
| 
 | ||||
|   echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName | ||||
| 
 | ||||
| @ -1308,6 +1316,12 @@ rm -fr %{buildroot} | ||||
| # ====================================================== | ||||
| 
 | ||||
| %changelog | ||||
| * Sat Sep 10 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-2 | ||||
| - rewrite of "check", introducing downstream-only hooks for skipping specific | ||||
| cases in an rpmbuild (patch 132), and fixing/skipping failing tests in a more | ||||
| fine-grained manner than before; (patches 106, 133-142 sparsely, moving | ||||
| patches for consistency with python.spec: 128 to 134, 126 to 135, 127 to 141) | ||||
| 
 | ||||
| * Tue Sep  6 2011 David Malcolm <dmalcolm@redhat.com> - 3.2.2-1 | ||||
| - 3.2.2 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user