Open justinethier opened 4 years ago
It seems most people don't particularly like git submodules, but this to me seems like a good use case for them: libtommath and concurrencykit could be submodules pinned to their respective release versions. The only friction introduced then for source builds is remembering to do git clone --recursive
. Anyway, just an idea.
As libck is licensed under a simplified BSD license, I think we should just port the necessary primitives and remove the dependency.
@arthurmaciel My initial hesitancy here is that if we do that, it will make it difficult to port any changes from libck to our project. However, libck is not under heavy development at the moment and as long as the code is not changed significantly it should would not be difficult to port changes ourselves if necessary.
In any case it would be wonderful if we could remove this dependency. That would make it much easier for new users to get up and running as that is the only external dependency a user is unlikely to have installed on their system.
Let me add this to the roadmap, and make plans to look at it later this year.
Keep in mind though that distributions generally prefer to use the library versions they are packing over vendoring (see #458) and also this Gentoo blog post for the underlying problems with vendoring dependencies.
Thanks @nmeum that's good feedback.
We need to circle back around to #458. I like the idea of bundling our own dependencies to make life easier for people who want to build Cyclone on their own, which historically was necessary as we were (and to a large degree still are) not widely packaged in distros. However, I do see the value in also allowing distros to control these dependencies for their own packages. It is a completely different use case as all the "hard work" of dependency management is done up front whereas when building from source all the work is placed on the end user.
It would be ideal if we could remove any external dependencies on concurrency kit (libck).
This does not necessarily mean we will be rewriting any of our code. It would be sufficient to install libck as part of our installation process so that it does not need to be installed separately, similarly to how we internalized libtommath.
This will reduce friction and make it easier for people new to the project to get Cyclone up and running.