#1092083 mayavi2 ftbfs with Python 3.13 as the default

Package:
src:mayavi2
Source:
src:mayavi2
Submitter:
Matthias Klose
Date:
2025-09-01 15:09:03 UTC
Severity:
normal
Tags:
#1092083#5
Date:
2025-01-04 11:36:21 UTC
From:
To:
mayavi2 ftbfs with Python 3.13 as the default

[...]
  debian/rules binary
dh binary --buildsystem=pybuild
    dh_update_autotools_config -O--buildsystem=pybuild
    dh_autoreconf -O--buildsystem=pybuild
    dh_auto_configure -O--buildsystem=pybuild
	pybuild --configure -i python{version} -p 3.13
I: pybuild base:311: python3.13 setup.py config
running config
    debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
find /<<PKGBUILDDIR>>/* -name '*.pyx' -exec cython3 '{}' ';'
LD_PRELOAD=libgomp.so.1 xvfb-run --auto-servernum --server-args="-screen
0 1024x768x24" dh_auto_build
	pybuild --build -i python{version} -p 3.13
I: pybuild base:311: /usr/bin/python3 setup.py build
running build
running build_py
Segmentation fault (core dumped)
E: pybuild pybuild:389: build: plugin distutils failed with: exit
code=139: /usr/bin/python3 setup.py build
dh_auto_build: error: pybuild --build -i python{version} -p 3.13
returned exit code 13
make[1]: *** [debian/rules:22: override_dh_auto_build] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:14: binary] Error 2

#1092083#10
Date:
2025-01-07 15:35:10 UTC
From:
To:
Control: clone -1 -2
Control: reassign -2 python3-vtk9
Control: retitle -2 python3-vtk9: segfault on Python 3.13
Control: tags -2 patch

Most of this is due to vtk9.  I've attached a patch cherry-picked from
upstream which fixes this.

There's one remaining problem after this, which I haven't been able to
figure out myself so far.  Here's the test log:

     dh_auto_test -O--buildsystem=pybuild
          pybuild --test -i python{version} -p 3.13
  I: pybuild base:311: cd /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build; cd /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build ; LD_PRELOAD=libgomp.so.1 xvfb-run --auto-servernum --server-args="-screen 0 1024x768x24" python3.13 -m pytest -k 'not test_array2vtk'
  ============================= test session starts ==============================
  platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
  rootdir: /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build
  configfile: setup.cfg
  plugins: typeguard-4.4.1
  collected 444 items / 1 deselected / 443 selected

  mayavi/tests/test_array_source.py .........                              [  2%]
  mayavi/tests/test_builtin_image.py ...                                   [  2%]
  mayavi/tests/test_builtin_surface.py ...                                 [  3%]
  mayavi/tests/test_composite_data.py ....                                 [  4%]
  mayavi/tests/test_contour.py ....                                        [  5%]
  mayavi/tests/test_core_common.py ........                                [  6%]
  mayavi/tests/test_core_utils.py ...                                      [  7%]
  mayavi/tests/test_csv_sniff.py .....................                     [ 12%]
  mayavi/tests/test_customize.py .                                         [ 12%]
  mayavi/tests/test_cut_plane.py ..                                        [ 13%]
  mayavi/tests/test_dataset_manager.py ........                            [ 14%]
  mayavi/tests/test_engine_manager.py .........                            [ 16%]
  mayavi/tests/test_extract_grid_filter.py ss                              [ 17%]
  mayavi/tests/test_file_timestep.py ......                                [ 18%]
  mayavi/tests/test_filters.py .                                           [ 18%]
  mayavi/tests/test_garbage_collection.py ......                           [ 20%]
  mayavi/tests/test_glyph.py ......                                        [ 21%]
  mayavi/tests/test_grid_plane.py ...                                      [ 22%]
  mayavi/tests/test_image_data_probe.py ...                                [ 23%]
  mayavi/tests/test_image_data_reader.py ......                            [ 24%]
  mayavi/tests/test_image_plane_widget.py ....                             [ 25%]
  mayavi/tests/test_ipw_multiple_scalars.py .                              [ 25%]
  mayavi/tests/test_mayavi_traits.py .......                               [ 27%]
  mayavi/tests/test_mlab_integration.py .............................      [ 33%]
  mayavi/tests/test_mlab_null_engine.py ..                                 [ 34%]
  mayavi/tests/test_mlab_scene_model.py .                                  [ 34%]
  mayavi/tests/test_mlab_source.py ....................................... [ 43%]
                                                                           [ 43%]
  mayavi/tests/test_mlab_source_integration.py .......                     [ 44%]
  mayavi/tests/test_mouse_pick_dispatcher.py .                             [ 44%]
  mayavi/tests/test_no_ui_toolkit.py .                                     [ 45%]
  mayavi/tests/test_optional_collection.py ...                             [ 45%]
  mayavi/tests/test_pipeline_info.py ..                                    [ 46%]
  mayavi/tests/test_plot3d_mb_reader.py ...                                [ 46%]
  mayavi/tests/test_poly_data_reader.py ...........................        [ 53%]
  mayavi/tests/test_preferences_mirror.py ....                             [ 53%]
  mayavi/tests/test_pylab_luts.py s                                        [ 54%]
  mayavi/tests/test_recorder.py .............                              [ 57%]
  mayavi/tests/test_registry.py .....                                      [ 58%]
  mayavi/tests/test_script_recording.py .                                  [ 58%]
  mayavi/tests/test_set_active_attribute.py ...                            [ 59%]
  mayavi/tests/test_sources.py .                                           [ 59%]
  mayavi/tests/test_streamline.py ....                                     [ 60%]
  mayavi/tests/test_text3d.py ...                                          [ 60%]
  mayavi/tests/test_threshold_filter.py ....                               [ 61%]
  mayavi/tests/test_unstructured_data_reader.py ...s...                    [ 63%]
  mayavi/tests/test_user_defined.py ...                                    [ 64%]
  mayavi/tests/test_volume.py .                                            [ 64%]
  mayavi/tests/test_vtk_data_source.py .........                           [ 66%]
  mayavi/tests/test_vtk_file_reader.py ......                              [ 67%]
  mayavi/tests/test_vtk_object_source.py .....                             [ 68%]
  mayavi/tests/test_vtk_xml_reader.py ...                                  [ 69%]
  tvtk/tests/test_array_ext.py ..                                          [ 69%]
  tvtk/tests/test_array_handler.py .........                               [ 72%]
  tvtk/tests/test_browser.py ......                                        [ 73%]
  tvtk/tests/test_class_tree.py ......                                     [ 74%]
  tvtk/tests/test_ctf_util.py X.                                           [ 75%]
  tvtk/tests/test_garbage_collection.py ...F                               [ 76%]
  tvtk/tests/test_indenter.py .........                                    [ 78%]
  tvtk/tests/test_messenger.py .....                                       [ 79%]
  tvtk/tests/test_misc.py .....                                            [ 80%]
  tvtk/tests/test_movie_maker.py ....                                      [ 81%]
  tvtk/tests/test_pyface_utils.py ..                                       [ 81%]
  tvtk/tests/test_tvtk.py .........s..............s.....................   [ 92%]
  tvtk/tests/test_tvtk_base.py .............                               [ 95%]
  tvtk/tests/test_tvtk_scene.py .                                          [ 95%]
  tvtk/tests/test_visual.py ..........                                     [ 97%]
  tvtk/tests/test_vtk_parser.py ........                                   [ 99%]
  tvtk/tests/test_wrapper_gen.py ...                                       [100%]

  =================================== FAILURES ===================================
  __________________ TestTVTKGarbageCollection.test_tvtk_scene ___________________
  tvtk/tests/test_garbage_collection.py:50: in test_tvtk_scene
      self.check_object_garbage_collected(create_fn, close_fn)
  tvtk/tests/common.py:61: in check_object_garbage_collected
      self.assertTrue(object_collected[0])
  E   IndexError: list index out of range
  =============================== warnings summary ===============================
  ../../../../../../usr/lib/python3/dist-packages/traits/observation/_generated_parser.py:258
    /usr/lib/python3/dist-packages/traits/observation/_generated_parser.py:258: DeprecationWarning: module 'sre_parse' is deprecated
      import sre_parse

  ../../../../../../usr/lib/python3/dist-packages/traits/observation/_generated_parser.py:259
    /usr/lib/python3/dist-packages/traits/observation/_generated_parser.py:259: DeprecationWarning: module 'sre_constants' is deprecated
      import sre_constants

  mayavi/tests/test_composite_data.py: 1 warning
  mayavi/tests/test_contour.py: 34 warnings
  mayavi/tests/test_image_data_probe.py: 16 warnings
  mayavi/tests/test_mlab_integration.py: 4 warnings
  mayavi/tests/test_mlab_null_engine.py: 1 warning
  mayavi/tests/test_optional_collection.py: 6 warnings
  mayavi/tests/test_script_recording.py: 2 warnings
  mayavi/tests/test_set_active_attribute.py: 6 warnings
  mayavi/tests/test_vtk_data_source.py: 31 warnings
  mayavi/tests/test_vtk_xml_reader.py: 21 warnings
    /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build/mayavi/components/contour.py:222: DeprecationWarning: In the future, lists will no longer be accepted by the Tuple trait type. Lists should be converted to tuples prior to validation.
      self._current_range = rng

  mayavi/tests/test_mlab_integration.py::TestMlabNullEngineMisc::test_user_defined_filter
    /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build/tvtk/tools/tvtk_doc.py:77: DeprecationWarning: Call to deprecated class vtkOutputWindowCleanup. (`vtkOutputWindowCleanup` is no longer necessary) -- Deprecated since version 9.3.0.
      c = klass()

  mayavi/tests/test_mlab_integration.py::TestMlabModules::test_volume
  mayavi/tests/test_mlab_integration.py::TestMlabModules::test_volume
  mayavi/tests/test_mlab_integration.py::TestMlabModules::test_volume
  mayavi/tests/test_mlab_integration.py::TestMlabModules::test_volume
  mayavi/tests/test_mlab_integration.py::TestMlabModules::test_volume
  mayavi/tests/test_volume.py::TestVolumeWorksWithProbe::test_volume_works_with_probe
    /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build/mayavi/modules/volume.py:469: DeprecationWarning: In the future, lists will no longer be accepted by the Tuple trait type. Lists should be converted to tuples prior to validation.
      self.current_range = rng

  tvtk/tests/test_array_handler.py::TestArrayHandler::test_arr2cell_array
  tvtk/tests/test_array_handler.py::TestArrayHandler::test_arr2cell_array
    /usr/lib/python3.13/unittest/case.py:606: DeprecationWarning: `alltrue` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `all` instead.
      if method() is not None:

  tvtk/tests/test_tvtk.py::TestTVTKModule::test_all_instantiable
  tvtk/tests/test_tvtk.py::TestTVTKModule::test_all_traits_can_be_obtained
  tvtk/tests/test_tvtk.py::TestTVTKModule::test_no_trait_has_ptr_address_as_value
  tvtk/tests/test_tvtk.py::TestTVTKModule::test_trait_with_range
    /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build/tvtk/tvtk_base.py:575: DeprecationWarning: Call to deprecated method GetPreserveInputEntityGroups. (PreserveInputEntityGroups is no longer needed.) -- Deprecated since version 9.3.0.
      val = getattr(vtk_obj, getter)()

  tvtk/tests/test_tvtk.py::TestTVTKModule::test_all_instantiable
  tvtk/tests/test_tvtk.py::TestTVTKModule::test_all_traits_can_be_obtained
  tvtk/tests/test_tvtk.py::TestTVTKModule::test_no_trait_has_ptr_address_as_value
  tvtk/tests/test_tvtk.py::TestTVTKModule::test_trait_with_range
    /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build/tvtk/tvtk_base.py:575: DeprecationWarning: Call to deprecated method GetOptimizeForRealInput. (Function has been renamed GetReturnOnesided) -- Deprecated since version 9.3.0.
      val = getattr(vtk_obj, getter)()

  tvtk/tests/test_tvtk.py::TestTVTKModule::test_all_instantiable
  tvtk/tests/test_tvtk.py::TestTVTKModule::test_all_traits_can_be_obtained
  tvtk/tests/test_tvtk.py::TestTVTKModule::test_no_trait_has_ptr_address_as_value
  tvtk/tests/test_tvtk.py::TestTVTKModule::test_trait_with_range
    /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build/tvtk/tvtk_base.py:575: DeprecationWarning: Call to deprecated method GetNumberOfBlock. (Block behavior is not controlled using BlockSize and BlockOverlap properties.) -- Deprecated since version 9.3.0.
      val = getattr(vtk_obj, getter)()

  tvtk/tests/test_vtk_parser.py::TestVTKParser::test_parse_all
    /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build/tvtk/vtk_parser.py:536: DeprecationWarning: Call to deprecated method GetPreserveInputEntityGroups. (PreserveInputEntityGroups is no longer needed.) -- Deprecated since version 9.3.0.
      tm[key] = getattr(obj, 'Get%s'%key)()

  tvtk/tests/test_vtk_parser.py::TestVTKParser::test_parse_all
    /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build/tvtk/vtk_parser.py:536: DeprecationWarning: Call to deprecated method GetOptimizeForRealInput. (Function has been renamed GetReturnOnesided) -- Deprecated since version 9.3.0.
      tm[key] = getattr(obj, 'Get%s'%key)()

  tvtk/tests/test_vtk_parser.py::TestVTKParser::test_parse_all
    /build/reproducible-path/mayavi2-4.8.2/.pybuild/cpython3_3.13/build/tvtk/vtk_parser.py:713: DeprecationWarning: Call to deprecated method GetNumberOfBlock. (Block behavior is not controlled using BlockSize and BlockOverlap properties.) -- Deprecated since version 9.3.0.
      default = getattr(obj, 'Get%s' % key)()

#1092083#24
Date:
2025-01-12 15:06:13 UTC
From:
To:
I tried the combination of all of these (with minor adjustments to
PR#1329 to get it to apply) and I'm afraid I get the same test failure.

#1092083#33
Date:
2025-09-01 14:57:37 UTC
From:
To:
Hello,

Bug #1092083 in mayavi2 reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/python-team/packages/mayavi2/-/commit/60953b9899be45273b837a5cd208e63a04d34864

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1092083

#1092083#40
Date:
2025-09-01 15:07:09 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
mayavi2, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1092083@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Michael R. Crusoe <crusoe@debian.org> (supplier of updated mayavi2 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Mon, 01 Sep 2025 14:58:52 +0200
Source: mayavi2
Architecture: source
Version: 4.8.3-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+python@tracker.debian.org>
Changed-By: Michael R. Crusoe <crusoe@debian.org>
Closes: 1045730 1092083
Changes:
 mayavi2 (4.8.3-1) unstable; urgency=medium
 .
   * Team upload.
   * New upstream version. Closes: #1092083, #1045730
   * Standards-Version: 4.7.2 (routine-update)
   * Refreshed patches, removing several that were applied upstream.
   * Add missing build dependency on python3-numpy-dev for command dh_numpy3.
   * d/rules: skip flaky test
Checksums-Sha1:
 3aa54a33fa7cc238939224583b95c69f0271bda4 2326 mayavi2_4.8.3-1.dsc
 f7b8f67e7233403b3e0c63d1d459a781f6c06095 7103564 mayavi2_4.8.3.orig.tar.gz
 887c906159360f4a0eb5b57bddfa6d5fb707d63d 366828 mayavi2_4.8.3-1.debian.tar.xz
 214d804279db66a5d9d2f3b4c847925e52567611 9730 mayavi2_4.8.3-1_source.buildinfo
Checksums-Sha256:
 866a26c65f583496f3888d0b4906700c6cfc92350fbd51dc5baae69b7acf171a 2326 mayavi2_4.8.3-1.dsc
 ef69ccbdf58f20f1b394930d5e3a16dda4b1a39adcbc76f79abd26483d29acf5 7103564 mayavi2_4.8.3.orig.tar.gz
 3c509cce369c167a4c1534330d6bda36882ef992b49e3332451115590e4095f1 366828 mayavi2_4.8.3-1.debian.tar.xz
 8949975b99f5e5b0dea1cbdf80cc23f800e05a3adaaf26386d5e21903681adc5 9730 mayavi2_4.8.3-1_source.buildinfo
Files:
 acbf93e9a49a133e1a0873578e9f5c9f 2326 science optional mayavi2_4.8.3-1.dsc
 624fe41ffeded889a868c70673fc605f 7103564 science optional mayavi2_4.8.3.orig.tar.gz
 b0fa41a787d20f7461689dfd91c9e1d2 366828 science optional mayavi2_4.8.3-1.debian.tar.xz
 47f063bdcda25b2f8d9a907744420498 9730 science optional mayavi2_4.8.3-1_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJGBAEBCgAwFiEEck1gkzcRPHEFUNdHPCZ2P2xn5uIFAmi1sx8SHGNydXNvZUBk
ZWJpYW4ub3JnAAoJEDwmdj9sZ+bi1jwQAI51SkF0YkDtSrJyPGSAavNJDwTVhHXm
jdoZVD8FoPvG4onuay5ShOCCvjonblmGOUgMouUKNRgnYLQiKpcPYd7Fhj4/sM/K
j4gGVOHeP95jFBei+Fl9M4+niajOVGBA/KKau5SONZpEg7I3ktO5ybHsEu/lk/dV
un64W7zIHkpn9qHY1gBA8gPvi66azK0kkIGgx8GLKdt4VvncxXRhP4wk9z0PSmJW
Z3h6B2fzmTrcf8zs6QTgAXgs9zADpc929QHxhKNOigDqy8M58Ic8QuF+eOLrCAY1
REMeTKiupQK4D9JyKD81DpiNNmnSRw2/LP9zIPcAB7Wn/B7XRa4bu2CvxJab4/Ks
pANLuyLLCttQ+WdeMBr5oImp/frTh78TRgwLa/tYpBgShKEFQW8ThdM6WrHTuZ7H
GbFIDxOS2z2jWhrZRggLuRzsvUE/FV+Lk4ymdJOdI3bfFiIY89lcz0fPCc+F24xg
QUi6hrgpwQExi8R4pg2R0mo6S9BD8Ie9VQpKsOVWrtRw4B6fmcqbhBERRhy4EvrL
8QQ7f8biQWVwsPmwjRwNi27nkNrX/+SeRek1CpK3TEOQJKzhCqUTg7EH8Hme1fGq
CpC3x0jOQs8Tlor3BRcD7o+3142vSMfOZiv7dAf97VSa+eO9VWMuEZKk9ugxm8hT
6K+9LxsVPPqx
=dfWP
-----END PGP SIGNATURE-----