Package: shiboken Version: 1.1.2-2 Severity: important Tags: experimental patch
shiboken fails to build with python3.3, see the build logs in ubuntu: https://launchpadlibrarian.net/121687606/buildlog_ubuntu-raring-i386.shiboken_1.1.2-2_FAILEDTOBUILD.txt.gz -- Could NOT find Python3Libs (missing: PYTHON3_LIBRARIES PYTHON3_INCLUDE_DIRS) -- Found Python3Interp: /usr/bin/python3 -- Found Python3InterpDbg: /usr/bin/python3-dbg -- Could NOT find Python3Libs (missing: PYTHON3_LIBRARIES PYTHON3_INCLUDE_DIRS) [45938 refs] PYTHON WITH DEBUG: /usr/bin/python3-dbg [45937 refs] [45937 refs] -- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found suitable version "2.9.0", minimum required is "2.6.32") -- Found LibXslt: /usr/lib/x86_64-linux-gnu/libxslt.so (found suitable version "1.1.27", minimum required is "1.1.19") CMake Error at CMakeLists.txt:89 (message): Python debug library not found. Try compile shiboken with -DCMAKE_BUILD_TYPE=Release this is apparently because it hardcodes versions up to python 3.2 in its CMake files. a simple fix is to just add 3.3 to the list, but a better fix would be to remove this check completely. Also it does not deal with multiarch python include directories as present in experimental and the unicode suffix is gone in py3.3. Attached a patch which fixes these issues. The abi suffixes in python3 do not have "u" anymore so debian/shiboken-dbg.install and the makeshlibs override in debian/rules need updating for this when python3.3 goes into unstable in future. Also please note that the sample_modelview test crashes with all python versions in ubuntu. See https://bugs.launchpad.net/ubuntu/+source/shiboken/+bug/1070772 also these tests fail with python3.3: sample_static_nonstatic_methods sample_duck_punching see https://bugreports.qt-project.org/browse/PYSIDE-145
Bug: https://bugreports.qt-project.org/browse/PYSIDE-146 Forwarded: yes --- a/cmake/Modules/FindPython3Libs.cmake +++ b/cmake/Modules/FindPython3Libs.cmake @@ -27,9 +27,9 @@ INCLUDE(CMakeFindFrameworks) # Search for the python framework on Apple. # CMAKE_FIND_FRAMEWORKS(Python) -FOREACH(_CURRENT_VERSION 3.2 3.1 3.0) +FOREACH(_CURRENT_VERSION 3.3 3.2 3.1 3.0) IF(_CURRENT_VERSION GREATER 3.1) - SET(_32FLAGS "m" "u" "mu" "") + SET(_32FLAGS "m" "u" "mu" "dm" "du" "dmu" "") ELSE() SET(_32FLAGS "") ENDIF() @@ -114,11 +114,19 @@ MARK_AS_ADVANCED( PYTHON3_INCLUDE_DIR ) +execute_process( + COMMAND ${PYTHON3_EXECUTABLE} -c "from distutils import sysconfig; \\ + print(sysconfig.get_python_inc(plat_specific=True));" + OUTPUT_VARIABLE PYTHON3_PLAT_INCDIR + OUTPUT_STRIP_TRAILING_WHITESPACE) + +message("PYTHON PLAT INC: ${PYTHON3_PLAT_INCDIR}") + # We use PYTHON3_INCLUDE_DIR, PYTHON3_LIBRARY and PYTHON3_DEBUG_LIBRARY for the # cache entries because they are meant to specify the location of a single # library. We now set the variables listed by the documentation for this # module. -SET(PYTHON3_INCLUDE_DIRS "${PYTHON3_INCLUDE_DIR}") +SET(PYTHON3_INCLUDE_DIRS "${PYTHON3_INCLUDE_DIR}" "${PYTHON3_PLAT_INCDIR}") SET(PYTHON3_LIBRARIES "${PYTHON3_LIBRARY}") SET(PYTHON3_DEBUG_LIBRARIES "${PYTHON3_DEBUG_LIBRARY}")