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

Horizon does not support OpenCascade 7.8.0 #764

Open
thierry-FreeBSD opened this issue Feb 26, 2024 · 8 comments · May be fixed by #767
Open

Horizon does not support OpenCascade 7.8.0 #764

thierry-FreeBSD opened this issue Feb 26, 2024 · 8 comments · May be fixed by #767

Comments

@thierry-FreeBSD
Copy link

The build fails with the message:

===>   horizon-eda-2.5.0_3 depends on shared library: libTKSTEP.so - not found
*** Error code 1

There is no more libTKSTEP in OpenCascade 7.8.0.

@carrotIndustries
Copy link
Member

None of the distros we have CI for already has opencascade 7.8 Any ideas how to reproduce this?

@bob-u
Copy link

bob-u commented Feb 26, 2024

From release notes (https://dev.opencascade.org/doc/overview/html/occt__upgrade.html):

Reorganized DE TK

DE TK components have been combined or separated based on specific CAD formats to support plug-in ability.

    Components now have a "TKDE" prefix. The available list includes TKDESTEP, TKDEOBJ, TKDEIGES, TKDEGLTF, TKDEVRML, TKDEPLY, TKDESTL.
    The DE DRAW TK has been updated in a similar way: DRAW components now have a "TKXSDRAW" prefix. The available list includes TKXSDRAWSTEP, TKXSDRAWOBJ, TKXSDRAWIGES, TKXSDRAWGLTF, TKXSDRAWVRML, TKXSDRAWPLY, TKXSDRAWSTL.

Migration problems may occur during configuration time or compile time. Ensure that you update your project configuration accordingly.

I think this is a similar issue to this one:
https://gitlab.onelab.info/gmsh/gmsh/-/issues/2744

@thierry-FreeBSD
Copy link
Author

None of the distros we have CI for already has opencascade 7.8 Any ideas how to reproduce this?

I guess that most distros won't upgrade OpenCascade as long as it breaks its consumers - at least this is what we are doing in FreeBSD: see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277294 .

Thus, ATM, you have to compile it yourself.

@frmdstryr
Copy link
Contributor

frmdstryr commented Mar 10, 2024

I'm using a locally built horizon with locally built OCCT 7.8.0 and it works fine here (kde neon)... didn't have to change anything.

$ lddtree .local/bin/horizon-imp
horizon-imp => .local/bin/horizon-imp (interpreter => /lib64/ld-linux-x86-64.so.2)
  ...
    libTKernel.so.7.8 => /home/user/.local/lib/libTKernel.so.7.8
    libTKMath.so.7.8 => /home/user/.local/lib/libTKMath.so.7.8
    libTKG3d.so.7.8 => /home/user/.local/lib/libTKG3d.so.7.8
        libTKG2d.so.7.8 => /home/user/.local/lib/libTKG2d.so.7.8
    libTKGeomBase.so.7.8 => /home/user/.local/lib/libTKGeomBase.so.7.8
    libTKBRep.so.7.8 => /home/user/.local/lib/libTKBRep.so.7.8
    libTKTopAlgo.so.7.8 => /home/user/.local/lib/libTKTopAlgo.so.7.8
        libTKGeomAlgo.so.7.8 => /home/user/.local/lib/libTKGeomAlgo.so.7.8
    libTKPrim.so.7.8 => /home/user/.local/lib/libTKPrim.so.7.8
    libTKBO.so.7.8 => /home/user/.local/lib/libTKBO.so.7.8
    libTKShHealing.so.7.8 => /home/user/.local/lib/libTKShHealing.so.7.8
    libTKHLR.so.7.8 => /home/user/.local/lib/libTKHLR.so.7.8
    libTKMesh.so.7.8 => /home/user/.local/lib/libTKMesh.so.7.8
    libTKCDF.so.7.8 => /home/user/.local/lib/libTKCDF.so.7.8
    libTKLCAF.so.7.8 => /home/user/.local/lib/libTKLCAF.so.7.8
    libTKXSBase.so.7.8 => /home/user/.local/lib/libTKXSBase.so.7.8
    libTKDESTEP.so.7.8 => /home/user/.local/lib/libTKDESTEP.so.7.8
        libTKDE.so.7.8 => /home/user/.local/lib/libTKDE.so.7.8
    libTKXCAF.so.7.8 => /home/user/.local/lib/libTKXCAF.so.7.8
        libTKVCAF.so.7.8 => /home/user/.local/lib/libTKVCAF.so.7.8
        libTKV3d.so.7.8 => /home/user/.local/lib/libTKV3d.so.7.8
        libTKService.so.7.8 => /home/user/.local/lib/libTKService.so.7.8
        libTKCAF.so.7.8 => /home/user/.local/lib/libTKCAF.so.7.8
...

Edit: Are you sure meson / cmake is finding the correct OCCT? I had to uninstall the liboce and libocct packages.

@frmdstryr
Copy link
Contributor

If you patch out https://github.com/horizon-eda/horizon/blob/master/meson.build#L31-L35 does it work then?

@thierry-FreeBSD
Copy link
Author

I have just built it successfully with the attached patch
horizon-2.5.0_Makefile.diff.txt.

But this is for the 2.5.0 release, and it does not contain a meson.build file.

I'd like to provide a patch for meson.build according to the OpenCascade version, but I don't know how to test it with meson. Could you please explain?

@frmdstryr
Copy link
Contributor

Do you mean test the opencascade version or test building with meson?

I haven't used meson much but this seems to work:

assert(opencascade.found(), 'OpenCASCADE or OCE is required')
if opencascade.version() >= '7.8.0'
    message('opencascade is >=7.8.0')
else
    message('opencascade <7.8.0')
endif

@thierry-FreeBSD thierry-FreeBSD linked a pull request Mar 11, 2024 that will close this issue
@thierry-FreeBSD
Copy link
Author

I haven't used meson much but this seems to work:

Yes, that works, thanks!

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 a pull request may close this issue.

4 participants