Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Part of SuiteSparse fails to build with --with-metis #15537

Closed
dpo opened this Issue · 20 comments

5 participants

@dpo

The SuiteSparse README file says

 Some codes optionally use METIS 4.0.1

By default, Homebrew pulls METIS 5.0.2. When building suite-sparse with --with-metis, the CHOLMOD package fails to build with errors like

../Partition/cholmod_metis.c:164:21: error: use of undeclared identifier 'idxtype'
    if (s * sizeof (idxtype) >= ((double) Size_max))

and many more undeclared identifiers. This results in at least one missing library (libcholmod.a.)

I know of other scientific libraries that optionally rely on METIS, but it's never METIS 5 which has shown lesser performance in benchmarks and has a different API than METIS 4.

Is there a strong argument to not stick with METIS 4 in Homebrew?

And shouldn't those formulae be in Homebrew-Science?

@adamv
Owner

@mistydemeo @Sharpie any thoughts?

@adamv
Owner

Need a domain expert to answer this question; if these should move to homebrew-science that should happen too; homebrew-science could vend both metis and metis5.

@dpo

I use this kind of software daily. I was just asking whether there was a strong reason to favor METIS 5. I'd be happy to improve the Homebrew formula. I'll have a shot at it in the coming days.

@adamv
Owner

Honestly I don't think there was any particular reason to update to 5; only that it was "newer" and someone opened a pull request. I'd suggest doing what you think is correct in this case and I'll pull accordingly. Thanks.

@dpo dpo referenced this issue in Homebrew/homebrew-science
Closed

Metis and SuiteSparse #79

@dpo

I'm proposing Homebrew/homebrew-science#79. Does it look reasonable to you?

@samueljohn

YES to moving metis and suite-sparse to homebrew-science (I grep-ed through all formulae and there seem to be no other formulae using these two).

I am in favor of adding a metis4 formula which is keg_only to homebrew-science and suite-sparse then uses that one. Eventually (when suite-sparse moves on to metis 5.x) we might move metis4 to versions.

@samueljohn samueljohn referenced this issue in Homebrew/homebrew-science
Closed

A few stragglers left in Homebrew-core #43

47 of 48 tasks complete
@Sharpie
Collaborator

YES to moving metis and suite-sparse to homebrew-science (I grep-ed through all formulae and there seem to be no other formulae using these two).

Octave is a big one that uses suite-sparse.

@samueljohn
@Sharpie
Collaborator

Octave is definitely a "science" formula, but it has a broad dependency tree of non-science formulae. It also has quite a few users compared to other science packages. Because of this, I'm not sure moving it to Homebrew-science would be the best move as there is some stability advantage to explicitly keeping Octave on the radar in the main repository so that updates to its dependencies are checked for breakage.

@dpo

Those are good points. octave also depends on glpk which also appears on the list of formulae to move to homebrew/science. Currently though, octave may be broken because suite-sparse is broken if you use metis (which is what you do if you want performance). I'm not a big octave user but I'll bet it relies on suite-sparse's Cholesky factorization module (the libcholmod that's broken).

My feeling is also that someone who knows about homebrew/science will definitely look for octave over there. My two cents.

@samueljohn

I think a formula in a homebrew tap that depends_on a core formula is fine. The other way around perhaps less.
Why will a formula in homebrew-scince be "under the radar", if we care about homebrew-science as much (and even more in my case) as in homebrew core? Adamv is doing a heroic job in homrebrew core and the best way to keep this all up and going is to distribute the work one some shoulders...

@mikemcquaid
Owner

I think optionally depending on a tap is fine but not by default for core formulae.

@mikemcquaid
Owner

I think @mxcl wants the long term (Homebrew 2.0 ish) goal to push everything even slightly niche or e.g. GUI stuff to taps.

@samueljohn

I agree with that.

I think optionally depending on a tap is fine but not by default for core formulae.

Only flann depends optionally on octave.

@Sharpie
Collaborator

Why will a formula in homebrew-scince be "under the radar",

Because someone who runs, for example, brew uses fltk will not see octave unless they happen to have Homebrew-science tapped.

@dpo

If anything even slightly niche should go to taps then I'd stay octave's home is homebrew/science. My understanding as an outsider is that that's the point of taps. As far as I can see nothing else in Hombrew-core depends on suite-sparse. As @samueljohn mentioned, only flann depends on octave and it's an optional dependency.

@samueljohn

I have pulled metis4 in homebrew/science. It's now a nice and warm place for suite-sparce.

We can't on the one side advertise taps and on the other hand say formulae in official Homebrew taps are "under the radar".

In related, perhaps brew uses should report usage from fromulae in taps, too? (I mean tapped taps)

@mikemcquaid
Owner

Yeh, seems reasonable for brew uses. I think long term we want taps to have all the same support normal formulas do and move to either entirely taps or 99% in taps for Homebrew 2.

@adamv
Owner

What's the status here? Is the original issue still being discussed or has a workaround been posted?

@peteb4ker peteb4ker referenced this issue in Homebrew/homebrew-science
Closed

Fail to compile Octave on 10.8.3 #128

@adamv
Owner

This software is now in Homebrew-Science and should be tracked over there: https://github.com/Homebrew/homebrew-science/issues

@adamv adamv closed this
@khenriks khenriks referenced this issue from a commit in khenriks/homebrew-science
@dpo dpo metis4: Formula for METIS v4.
METIS v4 used to be in Homebrew-Core and disappeared in
favor of METIS v5. However, certain libraries, such as SuiteSparse,
do not compile properly with METIS v5.

See also Homebrew/homebrew#15537.
7ce04c7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.