Skip to content

vtk: cpython extension name mangling in cmake only applied on x86_64 #60888

@al20ov

Description

@al20ov

I see a pull request was merged recently (#60319) to add cross-compiling capabilities to vtk but can someone clarify why the mangling of CPython extension names is only done for x86_64*?

case "$XBPS_TARGET_MACHINE" in
	x86_64*)
		# Mangle CPython extension names in CMake like xbps-src will do
		vsed -e 's,\(vtkmodules/vtk.*\)\.cpython-.*\.so,\1.so,' \
			-i "${DESTDIR}/usr/lib/cmake/vtk-${version:0:3}/VTKPython-targets-none.cmake"
		;;
esac

I'm seeing build failures on the i686 CI for my freecad-1.1.1 pr and the same thing happens locally with xbps-src -A i686 freecad:

CMake Error at /usr/lib32/cmake/vtk-9.5/VTKPython-targets.cmake:458 (message):
  The imported target "VTK::vtkCommonCorePython" references the file
     "/usr/lib32/python3.14/site-packages/vtkmodules/vtkCommonCore.cpython-314-i386-linux-gnu.so"
  but this file does not exist.  Possible reasons include:
  * The file was deleted, renamed, or moved to another location.
  * An install or uninstall procedure did not complete successfully.
  * The installation package was faulty and contained
     "/usr/lib32/cmake/vtk-9.5/VTKPython-targets.cmake"
  but not all the files it references.

Removing that guard and revbumping vtk before building freecad solves the issue for me.

If I understand correctly, this vsed strips all the cpython-314-arch-* stuff in the name so vtkCommonCore.cpython-314-x86_64-linux-gnu.so becomes just vtkCommonCore.so. But why is this only done for x86_64*?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions