Opened 4 years ago

Closed 3 years ago

#60381 closed defect (fixed)

vtk @8.2.0_0 +python38 +qt5 +openmpi: failure to build

Reported by: majoc-at-astro (majoc-at-astro) Owned by: stromnov (Andrey Stromnov)
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc: rubendibattista (Ruben Di Battista), mascguy (Christopher Nielsen)
Port: vtk

Description

We're finding vtk @8.2.0_0 +python38 +qt5 +openmpi fails to build from source, for macOS versions 10.13--10.15. Logfile enclosed, but here's what looks like the punchline:

macports.org_macports_release_tarballs_ports_graphics_vtk/vtk/work/VTK-8.2.0/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx:189:3: error: cannot initialize a member subobject of type 'Py_ssize_t' (aka 'long') with an rvalue of type 'nullptr_t'

.... plus an exactly similar type-conflict error lower down for PyVTKReference.cxx in the same directory. This may or may not be related to 60367, qv.

For completeness, the system info for the 10.14 build is:

MacPorts Version: 2.6.2

macOS 10.14.6

  • Build: 18G2022

Xcode 10.3

  • Xcode: Build version 10G8
  • clang: Apple LLVM version 10.0.1 (clang-1001.0.46.4)

Hope this helps. Do please let me know if there's further information you need. Thanks in advance.

Attachments (2)

vtk.log.2020-04-20_10.23.37.gz (69.1 KB) - added by majoc-at-astro (majoc-at-astro) 4 years ago.
patch-python38-compat.diff (8.2 KB) - added by rubendibattista (Ruben Di Battista) 4 years ago.
Patch for Python38 compatibility

Download all attachments as: .zip

Change History (14)

Changed 4 years ago by majoc-at-astro (majoc-at-astro)

comment:1 Changed 4 years ago by rubendibattista (Ruben Di Battista)

Cc: rubendibattista added

comment:2 Changed 4 years ago by rubendibattista (Ruben Di Battista)

It looks like a problem with python38. I can confirm it does not build with the same error if using python38.

I'll try to see if I can fix it.

comment:3 Changed 4 years ago by rubendibattista (Ruben Di Battista)

comment:4 Changed 4 years ago by mf2k (Frank Schima)

Cc: stromnov removed
Owner: set to stromnov
Status: newassigned

comment:5 Changed 4 years ago by rubendibattista (Ruben Di Battista)

I applied the patch in the reported issues... But now I'm getting all these strange linking problems:

CommandLineTools/SDKs/MacOSX10.15.sdk  -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.15 -fPIC   -std=c++11 -o CMakeFiles/vtkCommonCorePythonD.dir/vtkTypeInt8ArrayPython.cxx.o -c /o
pt/local/var/macports/build/_Users_rubendibattista_git_macports-ports_graphics_vtk/vtk/work/build/Wrapping/Python/vtkTypeInt8ArrayPython.cxx
:info:build ld: file not found: @rpath/libvtkCommonSystem-8.2.1.dylib for architecture x86_64

That I can fix, applying patches all over the place, adding the right vtk_module_link_libraries shenanigans, but this looks wrong to me...

I don't get why using pythn38 should change the linking stuff...

Version 0, edited 4 years ago by rubendibattista (Ruben Di Battista) (next)

Changed 4 years ago by rubendibattista (Ruben Di Battista)

Attachment: patch-python38-compat.diff added

Patch for Python38 compatibility

comment:6 Changed 3 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:7 Changed 3 years ago by mascguy (Christopher Nielsen)

I'm seeing this same error for Python 3.9, so perhaps this is something we might want to patch for all Python 3.x variants?

Regardless, this patch can be included with the fix for VTK issue:61840. Thoughts?

comment:8 Changed 3 years ago by mascguy (Christopher Nielsen)

After looking at the vtk portfile, it looks like the patch is already in place for Python 3.8.

I'll test building against Python 3.9 with the patch, along with Python 3.7 without (to see if needed there too).

comment:9 Changed 3 years ago by mascguy (Christopher Nielsen)

The patch fixed the Python 3.9 build, so I'll update the port to patch that variant too.

comment:10 Changed 3 years ago by mascguy (Christopher Nielsen)

Update from Ruben, via list macports-dev:

Yeah, I probably forgot to put the ticket link in order to close it after applying the patch. If I remember correctly, it was building with Python 3.7. Probably the patch is needed with 3.8+.

Thank you sir!

comment:11 Changed 3 years ago by rubendibattista (Ruben Di Battista)

https://github.com/macports/macports-ports/pull/9502

I should have generalized the patch for Python 3.8+.

It also includes: https://trac.macports.org/ticket/61840

comment:12 Changed 3 years ago by rubendibattista (Ruben Di Battista)

Resolution: fixed
Status: assignedclosed

In cd463565a709c262e2dfd5bae04c883f04ec616a/macports-ports (master):

vtk: Apply python38 patch to Python 3.8+

Fix: #60381

Note: See TracTickets for help on using tickets.