Skip to content
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

[suitesparse] Please split up SuiteSparse into its constituent packages #24252

Open
szhorvat opened this issue Apr 19, 2022 · 6 comments · May be fixed by #39297
Open

[suitesparse] Please split up SuiteSparse into its constituent packages #24252

szhorvat opened this issue Apr 19, 2022 · 6 comments · May be fixed by #39297
Assignees
Labels
category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist

Comments

@szhorvat
Copy link
Contributor

szhorvat commented Apr 19, 2022

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.

@Adela0814 Adela0814 added the category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist label Apr 20, 2022
@szhorvat
Copy link
Contributor Author

szhorvat commented Sep 9, 2022

FWIW, igraph no longer depends on SuiteSparse.

Copy link

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.

@agriyakhetarpal
Copy link

agriyakhetarpal commented Mar 14, 2024

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).

@szhorvat
Copy link
Contributor Author

In particular, building GraphBLAS takes an extremely long time (probably much longer than the rest of the packages combined).

@valgur
Copy link
Contributor

valgur commented Jun 14, 2024

I'll give it a shot. I've already gone through the process for ConanCenter (conan-io/conan-center-index#5763 (comment)) 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.

@valgur valgur linked a pull request Jun 14, 2024 that will close this issue
7 tasks
@szhorvat
Copy link
Contributor Author

If it's helpful, you can also look at how MacPorts does it https://github.com/macports/macports-ports/blob/master/math/SuiteSparse/Portfile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants