The 0.8.x versions of igraph contain additional bundled libraries not covered by the unbundling patch:
plfit and prpack aren't packaged in Gentoo yet, but the others are.
igraph developer here.
igraph 0.9 support using external versions of dependencies where it makes sense. See the new installation docs on how to do this: https://igraph.org/c/doc/igraph-Installation.html
For the rest (notably: bliss, cliquer, plfit, prpack), do NOT attempt to unbundle them. igraph contains modified versions, with either fixes or adaptations.
plfit is unbundled in the latest igraph (0.10.4 as of this writing). What I wrote above still applies for the rest of the packages, and they cannot be unbundled.
(In reply to Szabolcs Horvát from comment #2)
> plfit is unbundled in the latest igraph (0.10.4 as of this writing). What I
> wrote above still applies for the rest of the packages, and they cannot be
I'm sure you're busy enough as it is, but it would be really helpful to have some notes on what modifications were made to these packages and why.
For example, bliss has made some new releases recently. If you have custom fixes for it, it should be possible to get them merged upstream and into the next release. Similarly, we have a fork of cliquer that we use in SageMath:
If there are bugfixes available, we'd be happy to have them, because the original upstream really is moribund.
"Adaptations" are a trickier problem, but if there's e.g. an API that's missing features you need, the first step to getting it would be to ask the upstream project what they think.
We (your downstreams) could help with some of that but it's difficult without knowing what modifications were made and why.
Generally, adaptations are along the lines of:
- computations should be interactively interruptible
- when errors occur, it should be possible to escape cleanly without terminating the process
- matching integer sizes with what igraph supports natively
Bugfixes are contributed upstream when possible. For prpack, they go here: https://github.com/dgleich/prpack Note that prpack doesn't have a standardized packaging that we can rely on.
Bliss integration in igraph is a work in progress. The recent release was in response igraph's requirements, but I have not had time to make progress on this. Again, bliss doesn't really have a fully standardized way to build it into a library _yet_ that we can rely on, though 0.77 does provide most features igraph needs.
As for Cliquer, the changes we made are now too deep to make unbundling practical. Cliquer's author told me that no new releases are planned. We did not fix any bugs in Cliquer, except for using larger integer types in some places to prevent very rare occurrences of overflow. Are there any fixes in autocliquer, or is it all about packaging?
Thanks, that's helpful. Your first two bullet points align closely with what sage wants from its dependencies.
I have plfit on my rainy day list and it doesn't look like prpack would be too much trouble to package. I know Debian, Fedora, Arch, etc. would prefer to have separate packages where possible, so the lack of a standard prpack package may just be a chicken-and-egg problem (i.e. they don't know about prpack).
The fork of cliquer was mainly to fix the build system and support shared libraries, but SageMath still uses it and everyone involved is still actively working on Sage, so bug reports would be welcome.
The bug has been referenced in the following commit(s):
Author: Michael Orlitzky <firstname.lastname@example.org>
AuthorDate: 2023-05-22 19:47:50 +0000
Commit: Michael Orlitzky <email@example.com>
CommitDate: 2023-05-22 20:05:16 +0000
dev-libs/igraph: new revision to unbundle plfit.
Signed-off-by: Michael Orlitzky <firstname.lastname@example.org>
dev-libs/igraph/igraph-0.10.4-r1.ebuild | 48 +++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)