Hello community, here is the log from the commit of package python3 for openSUSE:Factory checked in at 2018-04-29 19:37:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3 (Old) and /work/SRC/openSUSE:Factory/.python3.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python3" Sun Apr 29 19:37:00 2018 rev:88 rq:601557 version:3.6.5 Changes: -------- --- /work/SRC/openSUSE:Factory/python3/python3-base.changes 2018-04-05 15:30:05.959498924 +0200 +++ /work/SRC/openSUSE:Factory/.python3.new/python3-base.changes 2018-04-29 19:37:02.311094531 +0200 @@ -0,0 +1,22 @@ +------------------------------------------------------------------- +Fri Apr 20 16:17:29 UTC 2018 - tchvatal@suse.com + +- Do not mention the testsuite disabling in opts as it was moved to + main pkg so base is test-free + +------------------------------------------------------------------- +Tue Apr 17 08:36:08 UTC 2018 - tchvatal@suse.com + +- As we run in main python package do not generate the pre_checkin + from both now + +------------------------------------------------------------------- +Mon Apr 16 14:11:56 UTC 2018 - tchvatal@suse.com + +- Move the tests from base to generic package wrt bsc#1088573 + * We still fail the whole distro if python3 is not build + * The other archs than x86_64 took couple of hours to unblock + build of other software, this way we work around the issue +- Some tests are still run in -base for the LTO tweaking, but at + least it is not run twice + --- /work/SRC/openSUSE:Factory/python3/python3.changes 2018-04-05 15:30:06.399483021 +0200 +++ /work/SRC/openSUSE:Factory/.python3.new/python3.changes 2018-04-29 19:37:06.310947853 +0200 @@ -1,0 +2,14 @@ +Tue Apr 17 08:36:08 UTC 2018 - tchvatal@suse.com + +- As we run in main python package do not generate the pre_checkin + from both now + +------------------------------------------------------------------- +Mon Apr 16 14:11:56 UTC 2018 - tchvatal@suse.com + +- Move the tests from base to generic package wrt bsc#1088573 + * We still fail the whole distro if python3 is not build + * The other archs than x86_64 took couple of hours to unblock + build of other software, this way we work around the issue + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-base.spec ++++++ --- /var/tmp/diff_new_pack.CwTc69/_old 2018-04-29 19:37:08.602863806 +0200 +++ /var/tmp/diff_new_pack.CwTc69/_new 2018-04-29 19:37:08.606863659 +0200 @@ -30,9 +30,7 @@ %define python_version 3.6 %define python_version_abitag 36 %define python_version_soname 3_6 - %define sitedir %{_libdir}/python%{python_version} - # three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3149 %define abi_kind m # python ABI version - used in some file names @@ -43,7 +41,6 @@ %define so_major 1 %define so_minor 0 %define so_version %{python_version_soname}%{abi_kind}%{so_major}_%{so_minor} - # rpm and python have different ideas about what is an arch-dependent name, so: %if %{__isa_name} == ppc %define archname %(echo %{_arch} | sed s/ppc/powerpc/) @@ -54,13 +51,11 @@ %if %{_arch} == arm %define armsuffix hf %endif - # pyexpat.cpython-35m-x86_64-linux-gnu # pyexpat.cpython-35m-powerpc64le-linux-gnu # pyexpat.cpython-35m-armv7-linux-gnueabihf %define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so ### COMMON-DEF-END ### - # that thing where "without" means "default=on" and vice versa %bcond_without testsuite %if 0%{?do_profiling} @@ -68,15 +63,13 @@ %else %bcond_with profileopt %endif - Name: python3-base Version: 3.6.5 Release: 0 Summary: Python 3 Interpreter and Stdlib Core License: Python-2.0 Group: Development/Languages/Python -Url: http://www.python.org/ - +URL: http://www.python.org/ ##### SOURCE FILES ##### Source0: http://www.python.org/ftp/python/%{version}/%{tarname}.tar.xz Source1: http://www.python.org/ftp/python/%{version}/%{tarname}.tar.xz.asc @@ -86,7 +79,6 @@ Source8: macros.python3 Source9: import_failed.py Source10: import_failed.map - # The following files are not used in the build. # They are listed here to work around missing functionality in rpmbuild, # which would otherwise exclude them from distributed src.rpm files. @@ -94,29 +86,23 @@ Source101: python3-rpmlintrc Source102: pre_checkin.sh Source103: skipped_tests.py - ##### REQURES, PROVIDES, OBSOLETES ##### Requires: python-rpm-macros Recommends: python3 = %{version} #Recommends: python3-ensurepip - # python 3.1 didn't have a separate python-base, so it is wrongly # not a conflict to have python3-3.1 and python3-base > 3.1 Obsoletes: python3 < 3.2 # no Provides, because python3 is obviously provided by package python3 - # python 3.4 provides asyncio Provides: python3-asyncio = %{version} Obsoletes: python3-asyncio < %{version} - # python 3.6 provides typing Provides: python3-typing = %{version} Obsoletes: python3-typing < %{version} - # python3-xml was merged into python3, now moved into -base Provides: python3-xml = %{version} Obsoletes: python3-xml < %{version} - ##### BUILDREQUIRES ##### # SECTION required for basic build BuildRequires: automake @@ -126,18 +112,18 @@ # The compression-related ones could be moved to python3 if necessary, with the exception of zlib. # _bz2 BuildRequires: libbz2-devel -# _ctypes -BuildRequires: libffi-devel # pyexpat, _elementtree BuildRequires: libexpat-devel +# _ctypes +BuildRequires: libffi-devel +# nis +BuildRequires: libnsl-devel # _lzma BuildRequires: lzma-devel # ssl BuildRequires: openssl-devel >= 1.0.2 # zlib BuildRequires: zlib-devel -# nis -BuildRequires: libnsl-devel # /SECTION # SECTION required for build and testsuite BuildRequires: fdupes @@ -147,7 +133,6 @@ BuildRequires: timezone BuildRequires: xz # /SECTION - ### COMMON-PATCH-BEGIN ### # implement "--record-rpm" option for distutils installations Patch01: Python-3.0b1-record-rpm.patch @@ -298,7 +283,7 @@ touch -r %{SOURCE0} Makefile.pre.in -autoreconf -fi +autoreconf -fvi %if 0%{?sles_version} sed -e 's/-fprofile-correction//' -i Makefile.pre.in @@ -312,7 +297,7 @@ --with-ensurepip=no \ --with-system-ffi \ --with-system-expat \ - --enable-lto \ + --with-lto \ --enable-loadable-sqlite-extensions # prevent make from trying to rebuild PYTHON_FOR_GEN stuff @@ -332,47 +317,8 @@ LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH \ make %{?_smp_mflags} $target -%check -# exclude test_gdb -- it doesn't run in buildservice anyway, and fails on missing debuginfos -# when you install gdb into your test env -EXCLUDE="test_gdb" - -%ifarch %{arm} -# test_multiprocessing_forkserver is racy -EXCLUDE="$EXCLUDE test_multiprocessing_forkserver" -%endif -%ifarch ppc ppc64 ppc64le -# exclue test_faulthandler due to bnc#831629 -EXCLUDE="$EXCLUDE test_faulthandler" -%endif -# some tests break in QEMU -%if 0%{?qemu_user_space_build} > 0 -EXCLUDE="$EXCLUDE test_multiprocessing_fork test_multiprocessing_forkserver test_multiprocessing_main_handling test_multiprocessing_spawn test_threading test_threadedtempfile test_io test_posix test_ioctl test_mmap test_openpty test_pty test_time test_subprocess test_asyncore test_asyncio test_os test_faulthandler" -# qemu bug (siginterrupt handling) -EXCLUDE="$EXCLUDE test_signal" -%endif - -# This test (part of test_uuid) requires real network interfaces -# so that ifconfig output has "HWaddr <something>". Some kvm instances -# done have any such interface breaking the uuid module. -EXCLUDE="$EXCLUDE test_uuid" - -# Limit virtual memory to avoid spurious failures -if test $(ulimit -v) = unlimited || test $(ulimit -v) -gt 10000000; then - ulimit -v 10000000 || : -fi - -%if %{with testsuite} -make -j1 test TESTOPTS="-u none -x $EXCLUDE" -# use network, be verbose: -#make test TESTOPTS="-l -u network -v" -%endif - %install - -make \ - DESTDIR=%{buildroot} \ - install +%make_install # remove .a find %{buildroot} -name "*.a" -exec rm {} ";" @@ -521,7 +467,7 @@ # docs %dir %{_docdir}/%{name} %doc %{_docdir}/%{name}/README.rst -%doc %{_docdir}/%{name}/LICENSE +%license %{_docdir}/%{name}/LICENSE %doc %{_docdir}/%{name}/README.SUSE %{_mandir}/man1/python3.1* %{_mandir}/man1/python%{python_version}.1* ++++++ python3-doc.spec ++++++ --- /var/tmp/diff_new_pack.CwTc69/_old 2018-04-29 19:37:08.622863072 +0200 +++ /var/tmp/diff_new_pack.CwTc69/_new 2018-04-29 19:37:08.626862925 +0200 @@ -24,9 +24,7 @@ %define python_version 3.6 %define python_version_abitag 36 %define python_version_soname 3_6 - %define sitedir %{_libdir}/python%{python_version} - # three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3149 %define abi_kind m # python ABI version - used in some file names @@ -37,7 +35,6 @@ %define so_major 1 %define so_minor 0 %define so_version %{python_version_soname}%{abi_kind}%{so_major}_%{so_minor} - # rpm and python have different ideas about what is an arch-dependent name, so: %if %{__isa_name} == ppc %define archname %(echo %{_arch} | sed s/ppc/powerpc/) @@ -48,7 +45,6 @@ %if %{_arch} == arm %define armsuffix hf %endif - # pyexpat.cpython-35m-x86_64-linux-gnu # pyexpat.cpython-35m-powerpc64le-linux-gnu # pyexpat.cpython-35m-armv7-linux-gnueabihf @@ -61,7 +57,7 @@ Summary: Additional Package Documentation for Python 3 License: Python-2.0 Group: Documentation/HTML -Url: http://www.python.org/ +URL: http://www.python.org/ Source0: http://www.python.org/ftp/python/%{tarversion}/%{tarname}.tar.xz BuildRequires: libqt5-qttools BuildRequires: python-Sphinx >= 1.2 ++++++ python3.spec ++++++ --- /var/tmp/diff_new_pack.CwTc69/_old 2018-04-29 19:37:08.650862046 +0200 +++ /var/tmp/diff_new_pack.CwTc69/_new 2018-04-29 19:37:08.654861899 +0200 @@ -29,9 +29,7 @@ %define python_version 3.6 %define python_version_abitag 36 %define python_version_soname 3_6 - %define sitedir %{_libdir}/python%{python_version} - # three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3149 %define abi_kind m # python ABI version - used in some file names @@ -42,7 +40,6 @@ %define so_major 1 %define so_minor 0 %define so_version %{python_version_soname}%{abi_kind}%{so_major}_%{so_minor} - # rpm and python have different ideas about what is an arch-dependent name, so: %if %{__isa_name} == ppc %define archname %(echo %{_arch} | sed s/ppc/powerpc/) @@ -53,7 +50,6 @@ %if %{_arch} == arm %define armsuffix hf %endif - # pyexpat.cpython-35m-x86_64-linux-gnu # pyexpat.cpython-35m-powerpc64le-linux-gnu # pyexpat.cpython-35m-armv7-linux-gnueabihf @@ -66,7 +62,7 @@ Summary: Python 3 Interpreter License: Python-2.0 Group: Development/Languages/Python -Url: http://www.python.org/ +URL: http://www.python.org/ Source0: http://www.python.org/ftp/python/%{version}/%{tarname}.tar.xz Source1: http://www.python.org/ftp/python/%{version}/%{tarname}.tar.xz.asc BuildRequires: automake @@ -215,7 +211,7 @@ touch -r %{SOURCE0} Makefile.pre.in -autoreconf -fi +autoreconf -fvi %if 0%{?sles_version} sed -e 's/-fprofile-correction//' -i Makefile.pre.in @@ -229,7 +225,7 @@ --with-ensurepip=no \ --with-system-ffi \ --with-system-expat \ - --enable-lto \ + --with-lto \ --enable-loadable-sqlite-extensions # prevent make from trying to rebuild PYTHON_FOR_GEN stuff @@ -244,26 +240,43 @@ make %{?_smp_mflags} %check +# exclude test_gdb -- it doesn't run in buildservice anyway, and fails on missing debuginfos +# when you install gdb into your test env +EXCLUDE="test_gdb" +# we patch out the message to recommend zypper in and thus this would fail +EXCLUDE="$EXCLUDE test_pydoc" + +%ifarch %{arm} +# test_multiprocessing_forkserver is racy +EXCLUDE="$EXCLUDE test_multiprocessing_forkserver" +%endif +%ifarch ppc ppc64 ppc64le +# exclue test_faulthandler due to bnc#831629 +EXCLUDE="$EXCLUDE test_faulthandler" +%endif +# some tests break in QEMU +%if 0%{?qemu_user_space_build} > 0 +EXCLUDE="$EXCLUDE test_asyncio test_multiprocessing_fork test_multiprocessing_forkserver test_multiprocessing_main_handling test_multiprocessing_spawn test_threading test_threadedtempfile test_io test_posix test_ioctl test_mmap test_openpty test_pty test_time test_subprocess test_asyncore test_asyncio test_os test_faulthandler" +# qemu bug (siginterrupt handling) +EXCLUDE="$EXCLUDE test_signal" +%endif + +# This test (part of test_uuid) requires real network interfaces +# so that ifconfig output has "HWaddr <something>". Some kvm instances +# done have any such interface breaking the uuid module. +EXCLUDE="$EXCLUDE test_uuid" + # Limit virtual memory to avoid spurious failures if test $(ulimit -v) = unlimited || test $(ulimit -v) -gt 10000000; then ulimit -v 10000000 || : fi -# only test the parts skipped in python3-base -TESTS="test_curses test_dbm_gnu test_dbm_ndbm test_idle \ - test_readline test_sqlite test_tcl test_tix test_tk \ - test_ttk_textonly" -# redo tests with SSL parts -%if !0%{?qemu_user_space_build} -TESTS="$TESTS test_asyncio" -%endif - -make -j1 test TESTOPTS="-u curses $TESTS" +make -j1 test TESTOPTS="-u curses -x $EXCLUDE" +# use network, be verbose: +#make test TESTOPTS="-l -u network -v" %install -make \ - DESTDIR=%{buildroot} \ - install +%make_install # clean out stuff that is in python-base and subpackages ++++++ PACKAGING-NOTES ++++++ --- /var/tmp/diff_new_pack.CwTc69/_old 2018-04-29 19:37:08.694860432 +0200 +++ /var/tmp/diff_new_pack.CwTc69/_new 2018-04-29 19:37:08.698860285 +0200 @@ -11,10 +11,6 @@ For development, use "--without profileopt" option to disable PGO. This shortens the build time to ~5 minutes including test suite. -If you just need to rerun a build and don't need the full test suite, you can -also build "--without testsuite". This shaves off another three minutes. -(Note that you usually *want* the full test suite.) - I. python3 and python3-base naming confusion -------------------------------------------- ++++++ skipped_tests.py ++++++ --- /var/tmp/diff_new_pack.CwTc69/_old 2018-04-29 19:37:08.834855298 +0200 +++ /var/tmp/diff_new_pack.CwTc69/_new 2018-04-29 19:37:08.838855151 +0200 @@ -8,7 +8,6 @@ This will have a number of """ -BASE = "python3-base.spec" MAIN = "python3.spec" import glob @@ -46,22 +45,21 @@ qemu_exclusions |= tests return found_tests -excluded = find_tests_in_spec(BASE) -included = find_tests_in_spec(MAIN) +excluded = find_tests_in_spec(MAIN) #print("--- excluded tests:", " ".join(sorted(excluded))) #print("--- included tests:", " ".join(sorted(included))) -mentioned = excluded | included +mentioned = excluded nonexistent = mentioned - alltests -missing = excluded - included - qemu_exclusions +missing = excluded - qemu_exclusions print("--- the following tests are excluded for QEMU and not tested in python") print("--- (that probably means we don't need to worry about them)") -for test in sorted(qemu_exclusions - included): +for test in sorted(qemu_exclusions - excluded): print(test) -print("--- the following tests might be excluded from python-base but not tested in python:") +print("--- the following tests might be excluded in python:") for test in sorted(missing): print(test)