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

Add *-devel output to conda-forge packages that require them #65

Open
traversaro opened this issue Dec 21, 2024 · 2 comments
Open

Add *-devel output to conda-forge packages that require them #65

traversaro opened this issue Dec 21, 2024 · 2 comments

Comments

@traversaro
Copy link
Member

A common failure point in robostack is that we have conda-forge C++ libraries packages that do not have an output that can be installed to ensure that all the dependencies required to build a downstream C++ project. This is not an issue if a C++ package already include its headers and only use as public dependencies in its headers conda-forge libraries that also ship their headers in the main package, but as soon a dependency uses in its headers a dependency that ships its headers in a separate *-devel package, we need to have a *-devel output also for that package, or it needs to adds the *-devel package to its run dependencies, but some mantainer may be against this as it goes around the point of splitting *-devel packages.

Problematic packages:

  • qt-main : Depends on libgl-devel, but at runtime it only requires libgl
  • vtk : Depends on qt-main, i.e. inheriting the libgl-devel problem
  • pcl: Depends on qt-main, i.e. inheriting the libgl-devel problem
  • libspnav : Depends on xorg-xorgproto, as @Tobias-Fischer is the maintainer and the package is quite simple probably we can avoid the libspnav-devel output and just add xorg-xorgproto as run dependency.
@Tobias-Fischer
Copy link
Contributor

Can't we just add libgl-devel to the mapping of e.g. pcl etc. in the robostack.yaml?

@traversaro
Copy link
Member Author

Sorry, I guess the context is not clear, as I forgot to press submit on this message: RoboStack/ros-humble#229 (comment) . Another important piece of context is that the issue is definitely not robostack-specific but rather conda-forge, I just opened the issue here as I got a clear idea regarding that while working on the ros humble rebuild and to avoid forgetting about it.

Can't we just add libgl-devel to the mapping of e.g. pcl etc. in the robostack.yaml?

Sure, that is what we have done until now (also as the situation was much more complex, as there were cdt involved, so we had REQUIRE_GL and REQUIRE_OPENGL).

We can add libgl-devel to each package that inclue Qt headers in its public headers as we did until now, but I see the following downside:

  • libgl-devel is required (and available) only on Linux, so we would need to split in platform specific sections all the affected dependencies (that is the main reason for now I kept REQUIRE_GL and REQUIRE_OPENGL in linux-64 - rebuild Christmas 2024 - switch to rattler-build ros-humble#229 for now)
  • The problem is not robostack-specific, so personally I think I have at least other ~30 places (superbuild, individual packages CI, conda environments, conda-forge recipes) in which I need to manually add libgl-devel as I depend on qt-main, vtk or pcl. If there was a qt-main-devel, I could just add it and the semantics of what I am trying to do would be clear.

Anyhow, I realize this is mostly OT here, so if you prefer I can close the issue here.

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

No branches or pull requests

2 participants