Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pin coin3d to v4.0.0 until pivy is compatible with v4.0.1. #16

Merged
merged 1 commit into from
Nov 25, 2023

Conversation

oursland
Copy link
Collaborator

coin3d recently pushed out a new release, v4.0.1, which does not have some of the symbols that pivy uses. Consequently, this breaks functionality that depends upon `pivy.

Pinning to version 4.0.0 will permit the builds to be successful until pivy is updated for the new coin3d release.

@looooo
Copy link
Collaborator

looooo commented Nov 23, 2023

@oursland can you give some insights on this. I tested freecad with coin4.0.1 without recompiling pivy on osx-arm64 and had no issues.

@oursland
Copy link
Collaborator Author

@oursland can you give some insights on this. I tested freecad with coin4.0.1 without recompiling pivy on osx-arm64 and had no issues.

The issue is demonstrated by the automated tests in CI. Here's an example error from CI with coin3d==4.0.1

During CMake configure it will fail to find pivy:

-- Found Coin3D: D:/a/FreeCAD/FreeCAD/.conda/freecad/Library/lib/Coin4.lib  
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\site-packages\pivy\__init__.py", line 30, in <module>
    from .coin import SoDB, SoNodeKit, SoInteraction
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\site-packages\pivy\coin.py", line 18, in <module>
    from . import _coin
ImportError: DLL load failed while importing _coin: The specified procedure could not be found.

and

-- pivy:                        -undefined-

However, it will still build just fine.

During automated testing it will error with the following output:

======================================================================
ERROR: TestPathApp (unittest.loader._FailedTest.TestPathApp)
----------------------------------------------------------------------
ImportError: Failed to import test module: TestPathApp
Traceback (most recent call last):
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\unittest\loader.py", line 162, in loadTestsFromName
    module = __import__(module_name)
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\site-packages\shiboken2\files.dir\shibokensupport\feature.py", line 139, in _import
    return original_import(name, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\FreeCAD\FreeCAD\build\release\Mod\Path\TestPathApp.py", line 30, in <module>
    from PathTests.TestPathDressupDogbone import TestDressupDogbone
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\site-packages\shiboken2\files.dir\shibokensupport\feature.py", line 139, in _import
    return original_import(name, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\FreeCAD\FreeCAD\build\release\Mod\Path\PathTests\TestPathDressupDogbone.py", line 25, in <module>
    import Path.Dressup.Gui.Dogbone as PathDressupDogbone
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\site-packages\shiboken2\files.dir\shibokensupport\feature.py", line 139, in _import
    return original_import(name, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\FreeCAD\FreeCAD\build\release\Mod\Path\Path\Dressup\Gui\Dogbone.py", line 31, in <module>
    from pivy import coin
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\site-packages\shiboken2\files.dir\shibokensupport\feature.py", line 139, in _import
    return original_import(name, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\site-packages\pivy\__init__.py", line 30, in <module>
    from .coin import SoDB, SoNodeKit, SoInteraction
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\site-packages\shiboken2\files.dir\shibokensupport\feature.py", line 139, in _import
    return original_import(name, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\site-packages\pivy\coin.py", line 18, in <module>
    from . import _coin
  File "D:\a\FreeCAD\FreeCAD\.conda\freecad\Lib\site-packages\shiboken2\files.dir\shibokensupport\feature.py", line 139, in _import
    return original_import(name, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ImportError: DLL load failed while importing _coin: The specified procedure could not be found.

@adrianinsaval
Copy link
Member

adrianinsaval commented Nov 25, 2023

the latest weekly was built with 4.0.1 and it seems to run fine on linux. I ran the TestPathApp test and it passed without problems. I do see the pivy errors on cmake configure on the build logs however they are also present on the builds with 4.0.0. pivy is a python module so you don't actually need it during build

@adrianinsaval
Copy link
Member

at least one user reporting errors: https://forum.freecad.org/viewtopic.php?p=720754#p720754 so I'll merge and we can unpin once pivy gets updated.
coin3d/pivy#108

@adrianinsaval adrianinsaval merged commit d243145 into FreeCAD:master Nov 25, 2023
5 checks passed
@looooo
Copy link
Collaborator

looooo commented Nov 27, 2023

@adrianinsaval there is a discussion about this here: coin3d/coin#513 Maybe we should set the coin4.0.1 builds to broken on conda-forge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants