-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
[question] CCI's area of influence from the perspective of OS architecture #1207
Comments
Hi @Nipheris! Your question is vary valid and we are studying the best approach, there are pros and cons depending the approach. For instance, we can't track system library, it can vary according Linux distro and it's hard to replicate a scenario. We have a discussion about how to deal with system libraries here: #641 It would be great having your thought there. Regards. |
I suppose that we cannot stop the community from trying to compile everything from sources... on the other hand, this |
@jgsogo Thanks for the link, seems Maybe we should add some guidelines in wiki for this? OS userspace API boundaries are important IMO, I think Conan dependency graph edges should not cross such boundaries. For example, it will lead to a problems if some high-level userspace library like |
the situation already happens for xorg/system, as I signaled in #1605 (comment):
|
Yes, that's the big issue with this kind of I can imagine two valid approaches:
|
Hello, Conan Team!
After having some thoughts regarding how many libraries and components of applications and operating system can be packaged and delivered by Conan, and included in CCI, I understood that I have no clear idea where Conan overlords drew a boundary for what should be considered "application-level" libraries and what should be considered "system library", or to be more accurate, "system API".
Let me give an example. Recently I have studied a recipe of openal and the recent fixes in it, and was suprised that it depends on
libalsa
library package (on Linux systems, of course). While it is a correct statement in itself, it is weird to see thatlibalsa
as CCI package at all - because it is considered as OS-provided library API (see https://www.alsa-project.org/alsa-doc/alsa-lib/ ). In other words,libalsa
(orlibasound
) should be insystem_libs
, just likewinmm
orole32
for Windows.So, here we have a question I personally doesn't have an answer to: what should be considered as provided by OS or provided by CCI as a package? There are the options I can propose:
libalsa
package on Linux systems), of course with exclusion of proprietary userspace components likewinmm
on Windows; the dependency tree is single and is not divided by the OS API layers;openal
should NOT depend on such packages, but include the library insystem_libs
instead;openal
depends onlibalsa
) the packages should depend on special API-describing packages like it was done in Vcpkg for OpenGL - such packages should not contain any binaries, only just some "glue" logic in recipe to use system-provided headers and/or libraries.I think it is crucial to make a decision beforehand, to have clean and well-designed dependency trees.
The text was updated successfully, but these errors were encountered: