conda-forge / dartsim-feedstock

A conda-smithy repository for dartsim.
BSD 3-Clause "New" or "Revised" License
1 stars 6 forks source link

Question: reason for GUI component disabling #26

Closed wbthomason closed 2 months ago

wbthomason commented 2 years ago

Comment:

Hi! I'm looking at using dartsim through conda for a project that uses the osg and imgui components of dart. I noticed in the recipe for this feedstock that the GUI module of dart is explicitly removed. I was wondering why this was/if it would be possible to undo, to allow projects that build against this module to use this feedstock. Thanks!

traversaro commented 2 years ago

Hi @wbthomason, I was the one that originally disabled the gui component. The reason was just that (if I remember correctly):

However, if you are able to enable it and prepare a PR with the necessary modifications, I think it would be welcome.

wbthomason commented 2 years ago

Great, thanks for the info! I'll see if I can get things working.

Also @zkingston.

jslee02 commented 6 months ago

As a note, this should be partially resolved in 6.14 (not released yet), as DART has added an option to use the system ImGui (commit, build log). OpenSceneGraph is also available in conda-forge, so the GUI component can be imported in theory.

traversaro commented 6 months ago

Great, thanks!

traversaro commented 6 months ago

As a note, this should be partially resolved in 6.14 (not released yet), as DART has added an option to use the system ImGui (commit, build log). OpenSceneGraph is also available in conda-forge, so the GUI component can be imported in theory.

Just a note: OpenSceneGraph is available, but it is not compatible with modern version of ffmpeg (5 and 6), see https://github.com/conda-forge/openscenegraph-feedstock/pull/34 and https://github.com/openscenegraph/OpenSceneGraph/issues/1111 . So I am not sure we want to add that as a dependency of the dartsim package. If someone is really interested in this we can look in building two variants, one with OpenSceneGraph and one without.

jslee02 commented 6 months ago

I don't currently have a use case for the dartsim package with OSG, but I am curious about what issues might arise if we build the dartsim package with OSG without a modern version of ffmpeg or even without ffmpeg altogether.

traversaro commented 6 months ago

what issues might arise if we build the dartsim package with OSG without a modern version of ffmpeg

The main problem is that you will not be able to install the latest dartsim in the same environment of the latest version of any other package that depends on ffmpeg. For example, gz-common depends on ffmpeg, and it is build against the latest version of ffmpeg as that is the version pinned by conda-forge (see https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/0c4e0551bbdae9ef616a79a2fc9efc5ea95f8a5d/recipe/conda_build_config.yaml#L342). So, in a nutshell gz-sim would not be able to build against both the latest dartsim and the latest gz-common.

even without ffmpeg altogether.

In that case we would need to modify openscenegraph to produce a variant without ffmpeg enabled. This was mentioned in https://github.com/conda-forge/openscenegraph-feedstock/issues/29#issuecomment-1756129289, but we never looked into that as the main users of openscenegraph in conda-forge until now (the people behind pinocchio/gepetto lab) actualy needed openscenegraph with ffmpeg, but creating a openscenegraph without ffmpeg may be doable (but clearly will require some work and mantainance).

jslee02 commented 3 months ago

Adding an OSG variant that has no ffmpeg dependency: https://github.com/conda-forge/openscenegraph-feedstock/pull/36

traversaro commented 2 months ago

As a note, this should be partially resolved in 6.14 (not released yet), as DART has added an option to use the system ImGui (commit, build log). OpenSceneGraph is also available in conda-forge, so the GUI component can be imported in theory.

Just a note: OpenSceneGraph is available, but it is not compatible with modern version of ffmpeg (5 and 6), see conda-forge/openscenegraph-feedstock#34 and openscenegraph/OpenSceneGraph#1111 . So I am not sure we want to add that as a dependency of the dartsim package. If someone is really interested in this we can look in building two variants, one with OpenSceneGraph and one without.

This problem was solved by https://github.com/conda-forge/openscenegraph-feedstock/pull/42, so we can just add the regular openscenegraph dependency and solve this issue.

jslee02 commented 2 months ago

This should be resolved by https://github.com/conda-forge/dartsim-feedstock/pull/77