diff --git a/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch b/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch index 8a6bc46..0457093 100644 --- a/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch +++ b/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch @@ -7,6 +7,6 @@ diff -up Python-3.2.2/Lib/distutils/tests/test_bdist_rpm.py.skip-distutils-tests +@unittest._skipInRpmBuild("don't try to nest one rpm build inside another rpm build") class BuildRpmTestCase(support.TempdirManager, + support.EnvironGuard, 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 diff --git a/00199-alter-tests-to-reflect-sslv3-disabled.patch b/00199-alter-tests-to-reflect-sslv3-disabled.patch index f35eff9..c7fb9ff 100644 --- a/00199-alter-tests-to-reflect-sslv3-disabled.patch +++ b/00199-alter-tests-to-reflect-sslv3-disabled.patch @@ -13,31 +13,6 @@ diff -up Python-3.4.2/Lib/test/test_ssl.py.ssl Python-3.4.2/Lib/test/test_ssl.py self.assertEqual(ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3, ctx.options) if can_clear_options(): -@@ -2149,21 +2146,18 @@ else: - sys.stdout.write( - " SSL2 client to SSL23 server test unexpectedly failed:\n %s\n" - % str(x)) -- try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, True) -+ try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, False) - try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True) - try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, True) - -- try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, True, ssl.CERT_OPTIONAL) -+ try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, False, ssl.CERT_OPTIONAL) - try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True, ssl.CERT_OPTIONAL) - try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, True, ssl.CERT_OPTIONAL) - -- try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, True, ssl.CERT_REQUIRED) -+ try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, False, ssl.CERT_REQUIRED) - try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True, ssl.CERT_REQUIRED) - try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, True, ssl.CERT_REQUIRED) - -- # Server with specific SSL options -- try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, False, -- server_options=ssl.OP_NO_SSLv3) - # Will choose TLSv1 - try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True, - server_options=ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3) @@ -2186,7 +2180,7 @@ else: try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_TLSv1, False) if no_sslv2_implies_sslv3_hello(): @@ -47,3 +22,27 @@ diff -up Python-3.4.2/Lib/test/test_ssl.py.ssl Python-3.4.2/Lib/test/test_ssl.py client_options=ssl.OP_NO_SSLv2) @skip_if_broken_ubuntu_ssl +diff -up Python-3.4.3/Lib/test/test_ssl.py.foo Python-3.4.3/Lib/test/test_ssl.py +--- Python-3.4.3/Lib/test/test_ssl.py.foo 2015-03-12 10:08:58.268065970 +0100 ++++ Python-3.4.3/Lib/test/test_ssl.py 2015-03-12 10:10:09.733347118 +0100 +@@ -2168,17 +2168,17 @@ else: + " SSL2 client to SSL23 server test unexpectedly failed:\n %s\n" + % str(x)) + if hasattr(ssl, 'PROTOCOL_SSLv3'): +- try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, True) ++ try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, False) + try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True) + try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, True) + + if hasattr(ssl, 'PROTOCOL_SSLv3'): +- try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, True, ssl.CERT_OPTIONAL) ++ try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, False, ssl.CERT_OPTIONAL) + try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True, ssl.CERT_OPTIONAL) + try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, True, ssl.CERT_OPTIONAL) + + if hasattr(ssl, 'PROTOCOL_SSLv3'): +- try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, True, ssl.CERT_REQUIRED) ++ try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv3, False, ssl.CERT_REQUIRED) + try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True, ssl.CERT_REQUIRED) + try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, True, ssl.CERT_REQUIRED) + diff --git a/00203-disable-threading-test-koji.patch b/00203-disable-threading-test-koji.patch new file mode 100644 index 0000000..70010fb --- /dev/null +++ b/00203-disable-threading-test-koji.patch @@ -0,0 +1,11 @@ +diff -up Python-3.4.3/Lib/test/test_threading.py.mstuchli Python-3.4.3/Lib/test/test_threading.py +--- Python-3.4.3/Lib/test/test_threading.py.mstuchli 2015-03-10 10:00:42.917355215 +0100 ++++ Python-3.4.3/Lib/test/test_threading.py 2015-03-10 10:00:47.735373842 +0100 +@@ -988,6 +988,7 @@ class ThreadingExceptionTests(BaseTestCa + self.assertIn("ZeroDivisionError", err) + self.assertNotIn("Unhandled exception", err) + ++ @unittest.skip('Fails in Koji due to mishandled signals') + def test_print_exception_stderr_is_none_1(self): + script = r"""if True: + import sys diff --git a/macros.pybytecompile b/macros.pybytecompile3.4 similarity index 100% rename from macros.pybytecompile rename to macros.pybytecompile3.4 diff --git a/macros.python3 b/macros.python3.4 similarity index 100% rename from macros.python3 rename to macros.python3.4 diff --git a/python3.spec b/python3.spec index 12167d8..aff858c 100644 --- a/python3.spec +++ b/python3.spec @@ -139,8 +139,8 @@ # ================== Summary: Version 3 of the Python programming language aka Python 3000 Name: python3 -Version: %{pybasever}.2 -Release: 7%{?dist} +Version: %{pybasever}.3 +Release: 1%{?dist} License: Python Group: Development/Languages @@ -218,12 +218,12 @@ Source1: find-provides-without-python-sonames.sh # Supply various useful macros for building python 3 modules: # __python3, python3_sitelib, python3_sitearch -Source2: macros.python3 +Source2: macros.python%{pybasever} # Supply an RPM macro "py_byte_compile" for the python3-devel subpackage # to enable specfiles to selectively byte-compile individual files and paths # with different Python runtimes as necessary: -Source3: macros.pybytecompile +Source3: macros.pybytecompile%{pybasever} # Systemtap tapset to make it easier to use the systemtap static probes # (actually a template; LIBRARY_PATH will get fixed up during install) @@ -445,7 +445,8 @@ Patch150: 00150-disable-rAssertAlmostEqual-cmath-on-ppc.patch # when running test_gdb.py; also cope with change to gdb in F17 onwards in # which values are printed as "v@entry" rather than just "v": # Not yet sent upstream -Patch153: 00153-fix-test_gdb-noise.patch +# Upstream as of 3.4.3 +# Patch153: 00153-fix-test_gdb-noise.patch # 00154 # # python3.spec on f15 has: @@ -461,8 +462,8 @@ Patch155: 00155-avoid-ctypes-thunks.patch # Recent builds of gdb will only auto-load scripts from certain safe # locations. Turn off this protection when running test_gdb in the selftest # suite to ensure that it can load our -gdb.py script (rhbz#817072): -# Not yet sent upstream -Patch156: 00156-gdb-autoload-safepath.patch +# Upsream as of 3.4.3 +# Patch156: 00156-gdb-autoload-safepath.patch # 00157 # # Update uid/gid handling throughout the standard library: uid_t and gid_t are @@ -722,8 +723,14 @@ Patch200: 00200-gettext-plural-fix.patch # Note: Backported from scl Patch201: 00201-fix-memory-leak-in-gdbm.patch +# 00202 # +# Fixes undefined behaviour in faulthandler which caused test to hang on x86_64 +# http://bugs.python.org/issue23433 Patch202: 00202-fix-undefined-behaviour-in-faulthandler.patch +# test_threading fails in koji dues to it's handling of signals +Patch203: 00203-disable-threading-test-koji.patch + # (New patches go here ^^^) # @@ -954,10 +961,10 @@ done %endif # 00151: not for python3 # 00152: upstream as of Python 3.3.0b2 -%patch153 -p0 +# 00153: upstream as of Python 3.4.3 # 00154: not for this branch %patch155 -p1 -%patch156 -p1 +# 00156: upstream as of 3.4.3 %patch157 -p1 #00158: FIXME #00159: FIXME @@ -1005,6 +1012,7 @@ done # 00197: upstream as of Python 3.4.2 %patch199 -p1 %patch202 -p1 +%patch203 -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. @@ -1067,6 +1075,7 @@ BuildPython() { SymlinkName=$3 ExtraConfigArgs=$4 PathFixWithThisBinary=$5 + MoreCFlags=$6 ConfDir=build/$ConfName @@ -1104,8 +1113,7 @@ BuildPython() { # missing symbol AnnotateRWLockDestroy # # Invoke the build: - # TODO: it seems that 3.4.0a4 fails with %{?_smp_flags}, have to figure out why - make EXTRA_CFLAGS="$CFLAGS" + make EXTRA_CFLAGS="$CFLAGS $MoreCFlags" %{?_smp_mflags} popd echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfDir @@ -1122,7 +1130,8 @@ BuildPython debug \ %else "--with-pydebug --with-count-allocs --with-call-profile --without-ensurepip" \ %endif - false + false \ + -O1 %endif # with_debug_build BuildPython optimized \ @@ -1144,6 +1153,7 @@ InstallPython() { ConfName=$1 PyInstSoName=$2 + MoreCFlags=$3 ConfDir=build/$ConfName @@ -1152,7 +1162,7 @@ InstallPython() { pushd $ConfDir -make install DESTDIR=%{buildroot} INSTALL="install -p" +make install DESTDIR=%{buildroot} INSTALL="install -p" EXTRA_CFLAGS="$MoreCFlags" popd @@ -1195,7 +1205,8 @@ make install DESTDIR=%{buildroot} INSTALL="install -p" # Install the "debug" build first, so that we can move some files aside %if 0%{?with_debug_build} InstallPython debug \ - %{py_INSTSONAME_debug} + %{py_INSTSONAME_debug} \ + -O1 %endif # with_debug_build # Now the optimized build: @@ -1457,10 +1468,11 @@ CheckPython() { WITHIN_PYTHON_RPM_BUILD= \ LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \ --verbose --findleaks \ + -x test_distutils \ %ifarch ppc64le aarch64 -x test_faulthandler \ %endif - %ifarch %{power64} s390 s390x + %ifarch %{power64} s390 s390x armv7hl -x test_gdb %endif @@ -1733,8 +1745,8 @@ rm -fr %{buildroot} %{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc %{_libdir}/pkgconfig/python-%{pybasever}.pc %{_libdir}/pkgconfig/python3.pc -%{_rpmconfigdir}/macros.d/macros.python3 -%{_rpmconfigdir}/macros.d/macros.pybytecompile +%{_rpmconfigdir}/macros.d/macros.python%{pybasever} +%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever} %files tools %defattr(-,root,root,755) @@ -1897,6 +1909,11 @@ rm -fr %{buildroot} # ====================================================== %changelog +* Thu Mar 12 2015 Matej Stuchlik - 3.4.3-1 +- Updated to 3.4.3 +- BuildPython now accepts additional build options +- Temporarily disabled test_gdb on arm (rhbz#1196181) + * Wed Feb 25 2015 Matej Stuchlik - 3.4.2-7 - Fixed undefined behaviour in faulthandler which caused test to hang on x86_64 (http://bugs.python.org/issue23433) diff --git a/temporarily-disable-tests-requiring-SIGHUP.patch b/temporarily-disable-tests-requiring-SIGHUP.patch index 2e88678..30ceb94 100644 --- a/temporarily-disable-tests-requiring-SIGHUP.patch +++ b/temporarily-disable-tests-requiring-SIGHUP.patch @@ -2,8 +2,8 @@ diff -up Python-3.4.0/Lib/test/test_asyncio/test_events.py.orig Python-3.4.0/Lib --- Python-3.4.0/Lib/test/test_asyncio/test_events.py.orig 2014-04-15 13:18:49.696215288 +0200 +++ Python-3.4.0/Lib/test/test_asyncio/test_events.py 2014-04-15 13:18:56.104258453 +0200 @@ -1528,7 +1528,7 @@ class SubprocessTestsMixin: - self.loop.run_until_complete(proto.completed) self.check_terminated(proto.returncode) + transp.close() - @unittest.skipIf(sys.platform == 'win32', "Don't have SIGHUP") + @unittest.skipIf(True, "Temporarily skipped (rhbz#1088233)")