conan-io / conan

Conan - The open-source C and C++ package manager
https://conan.io
MIT License
8.31k stars 986 forks source link

[question] Applying patches to indirect dependencies #17170

Closed vithalsm closed 1 month ago

vithalsm commented 1 month ago

What is your question?

Hi,

Would like to know whether it is possible to applying a patch to source code pulled for indirect dependencies. For instance, Conan app - A recipe has dependency over a package 'B ' and package 'B' intern has dependency over 'C'. Assuming, we have some changes made for dependencies B and C and have the patch files.
In such scenarios, is it possible that conan build infra applies patches to B and C dependencies? If yes, any pointers to sample packages would be helpful.

Have you read the CONTRIBUTING guide?

memsharded commented 1 month ago

Hi @vithalsm

It is not possible to patch the sources from upstream dependencies from the consumers. The recommended approach to do this is to edit the dependencies. If using ConanCenter, the recommended approach for using packages in production is in many cases building the packages from a fork, see https://docs.conan.io/2/devops/using_conancenter.html. In that case, applying a patch to any package in ConanCenter is immediate.

vithalsm commented 1 month ago

Thanks @memsharded, that helps.

Well, trying to build Docker (and docker-cli, docker swarm, 'go' language based) source using conan. Are there any plans to add them into conan center index?

memsharded commented 1 month ago

Well, trying to build Docker (and docker-cli, docker swarm, 'go' language based) source using conan. Are there any plans to add them into conan center index?

Not planned at the moment, those are not C/C++ packages, and ConanCenter is intended only for C/C++ packages. For things that might be useful tool_requires we might propose a secondary place, but not ConanCenter, this is still under consideration.

I am interested, why are you using Conan for golang?

vithalsm commented 1 month ago

Well, trying to build Docker (and docker-cli, docker swarm, 'go' language based) source using conan. Are there any plans to add them into conan center index?

Not planned at the moment, those are not C/C++ packages, and ConanCenter is intended only for C/C++ packages. For things that might be useful tool_requires we might propose a secondary place, but not ConanCenter, this is still under consideration.

I am interested, why are you using Conan for golang?

As we have built conan eco system, just exploring the possibility of leveraging the same for building 'docker' source too.

memsharded commented 1 month ago

As we have built conan eco system, just exploring the possibility of leveraging the same for building 'docker' source too.

Sounds doable. We have seen users happy (ab)using Conan for managing other languages, and different artifacts rather than just C/C++ ones.

It is mostly ConanCenter that wouldn't be suitable for this, the load on the system is already too high just with C/C++, so it is not planned to augment it for other languages.

If there are recipes that could be useful for the C/C++ ecosystem in general (like toolchain-like or tools, even if not written in C/C++), they could be a good fit for that secondary repo that we are considering (not there yet)

vithalsm commented 1 month ago

Thanks again @memsharded for the details, will explore further.