I would like to know how would the igraph community feel about dropping vendored library dependencies from the igraph source tree.
Right now igraph depends on lots of third-party libraries, some of which are essential (and their source is vendored in the igraph source tree), while others provide optional extra functionality that gets compiled only if the corresponding third-party library is detected at compilation time. An example of a vendored library is CXSparse, which is used for sparse matrix operations. The igraph source tree also contains a vendored copy of BLAS / LAPACK / ARPACK, converted from Fortran using
f2c (which also means that we need to vendor
f2c itself). This is getting harder and harder to maintain, and since most people use igraph from higher-level interfaces where a precompiled package is already provided (this is the case for Python for sure), I’m leaning more and more towards saying that we should drop the vendored libraries from the source tree and rely on the user to install them before compiling igraph. This is not too complicated on Linux systems as the third-party dependencies are packaged in all major Linux distributions; however, it could be a problem for Windows, and I have zero experience in C programming in Windows so I have no idea whether it is indeed a huge barrier on Windows or not.
What are your thoughts / opinions about this?