Open szhorvat opened 2 years ago
FWIW, igraph no longer depends on SuiteSparse.
This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 180 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment.
Thank you for removing the "stale" label on this issue. We would be very interested in seeing this being driven forward (especially with a major version update to v6 and v7) – it would resolve a lot of issues for Windows, where installing all of the SuiteSparse components is quite slow (we are in the requirement of just KLU and its sub-dependencies, i.e., AMD, COLAMD, and BTF).
In particular, building GraphBLAS takes an extremely long time (probably much longer than the rest of the packages combined).
I'll give it a shot. I've already gone through the process for ConanCenter (https://github.com/conan-io/conan-center-index/issues/5763#issuecomment-2056267818) and it was relatively straightforward, requiring almost no patching at all.
Also, the GraphBLAS package can be built in a much more reasonable time frame if JIT compilation of kernels is enabled instead of precompiling all of them.
If it's helpful, you can also look at how MacPorts does it https://github.com/macports/macports-ports/blob/master/math/SuiteSparse/Portfile
This is s request to split up SuiteSparse to its constituent packages. SuiteSparse is a collection of more-or-less independent packages that do not always depend on each other. Most ports will depend not on the entire SuiteSparse collection but only a small subset, sometimes just one package. CXSparse and CSparse in particular are very commonly used independently from the rest of SuiteSparse (e.g. by the
igraph
port), as they provide a sparse matrix representation and do not depend on anything else within the SuiteSparse collection.Many other package managers break up SuiteSparse, as can be seen here: https://repology.org/project/suitesparse/related (see e.g. https://repology.org/project/suitesparse-cxsparse/versions and https://repology.org/project/cxsparse/versions for an incomplete list; Debian also breaks it up).
Is your feature request related to a problem? Please describe.
Any port that depends on a single constituent package of SuiteSparse, such as CXSparse, will bring in a large number of unneeded and slow-to-install dependencies, including gfortran/MinGW.
Proposed solution
Break up SuiteSparse into its constituent packages, so only the necessary parts can be installed.
Describe alternatives you've considered
Not aware of any current way to avoid installing all unnecessary sub-packages.
To be clear, this improvement would provide a convenience: much faster installation of only the needed subpackages.
Additional context
Several major package systems / distros, such as Debian, Gentoo, FreeBSD, MacPorts, etc. provide parts of SuiteSparse separately.