-
-
Notifications
You must be signed in to change notification settings - Fork 13.2k
open-mpi: Fix brew installing Open MPI --with-java.
#27577
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
open-mpi: Fix brew installing Open MPI --with-java.
#27577
Conversation
Formula/open-mpi.rb
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do patch do blocks outside of any SoftwareSpec block apply the patches they pull in to the stable spec? I couldn't remember if that was the case off of the top of my head…
Formula/open-mpi.rb
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think this comment is too long? How would you prefer it be worded?
Formula/open-mpi.rb
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similarly, is this comment too long, and how would you prefer it be worded?
Hmm, it doesn't look from scanning Homebrew Core formulas like any of them with both
and
so I'll just comment them out for now and leave a note about it. Is that all right? |
|
|
|
OK, that should be everything. I'm still testing building |
|
Or not; apparently, running |
|
I'll address the |
|
My local build attempt just finished successfully; I've updated my OP's checklist accordingly. |
|
I've fixed all the audit warnings I could and force-pushed–with–lease a new instance of this PR's only commit to my fork, but there are still a few left. Some will eventually be made moot by later Open MPI releases or might be style nits I could get advice on fixing; one wasn't introduced here. |
|
An issue with one or more of the commits pulled in as patches by this PR has been identified upstream here. Please stand by while I go back and help the maintainers resolve this. |
|
I've submitted upstream PR open-mpi/ompi#5160 to address the issue I relayed in my previous comment on this PR discussion thread. Once it's been approved and merged, I'll have this PR pull it in, too. |
|
OK, I think I've got everything sorted out now. Also testing locally… |
|
Reapplying my commit comments from earlier since they still apply… |
Formula/open-mpi.rb
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do patch do blocks outside of any SoftwareSpec block apply the patches they pull in to the stable spec? I couldn't remember if that was the case off of the top of my head…
Formula/open-mpi.rb
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think this comment is too long? How would you prefer it be worded?
Formula/open-mpi.rb
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similarly, is this comment too long, and how would you prefer it be worded?
Formula/open-mpi.rb
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And how about this one while I'm thinking about it?
Formula/open-mpi.rb
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Additionally, I wonder if I could get rid of this hack and just do something with autoreconf for the stable spec instead, as that would likely be better than running ./autogen.pl --force…looks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Never mind; Open MPI's HACKING guide says, as I might have seen before, the following on lines 206–210:
⋮
5a. You generally need to run autogen.pl whenever the top-level
file "configure.ac" changes, or any files in the config/ or
<project>/config/ directories change (these directories are
where a lot of "include" files for OMPI's configure script
live).
⋮
So, alas, no direct autoreconf for me. (Shrugs.)
|
My local build finished successfully, but CI is still experiencing the problem I described above (namely, that testing OpenCoarrays fails the build.) I don't currently have an OpenCoarrays installation on my machine, but I could make one and use that for a pull request to fix that issue if desired (like I speculated earlier, all that's likely needed to fix this would be a revision bump to |
|
Looks like the revision-bump–blocking build error mentioned for OpenCoarrays starting at #27276 (comment) has some causal link with the test failure I'm seeing here. #26075 may also be related, though that PR has more to do with an OpenCoarrays build failure I'm not seeing here. Paging @fxcoudert, as he handled Homebrew's release of GCC 8.1, and @zbeekman, as he was(/is?) involved in both of the conversations I just referenced above. (I'll also look at the upstream issue linked to in both of those Homebrew issue-processing discussion threads.) |
|
To be more specific, here's what CI's console logs say (copied from those of the OS X v10.11.x 'El Capitan' build-bot configuration, as it uses the same OS X/macOS version I have installed on my machine, but the failure is comparable, modulo thread ordering, across all tested OS versions:) |
|
Unfortunately, OpenCoarrays will remain broken until the 8.2 release as a patch was applied by one of the GFortran developers during the regression freeze (which GFortran is exempted from since it's not considered a critical component) that completely broke some functionality of GFortran with -fcoarray=lib and OpenCoarrays. I am considering just temporarily removing the offending code that triggers the ICE (when building against 8.1) for the next release, which would not fix the problem but would merely hide it until 8.2. (The patch fixing it is in trunk and the 8 branch now...) Simply hiding the problem is probably a bad idea because it will give people false confidence and the breakage is fairly significant. The only realistic alternative is to patch GCC 8.1 for GFortran with the required patch. Otherwise OpenCoarrays will likely stay broken until 8.2. |
So that issue is indeed related to this one, then.
The relevant change doesn't look like it's been reviewed and approved just yet upstream, but yes, I expect this option would be preferred. We'll see what @fxcoudert thinks. |
|
Since GCC v8.1 was merged in without anyone fixing its encounter with this same OpenCoarrays test failure, perhaps could we also just do for Open MPI that here? (GCC's a more widely used and important piece of software, though, so I expect that might have something to do with how its OpenCoarrays test failure was handled.) |
|
What I'm wondering here is whether we really want to apply 2 patches and rework the formula, for a nondefault option. |
To make sure that nobody else bumps into the issues those patches (there are actually three of them now, if you hadn't noticed) solve if they also use said non-default formula option. When an Open MPI release that includes all of those changes by default comes out, the formula can go back to being structured how it was before. |
Apply some upstream patches in order to fix some fatal issues with configuring and building Open MPI's `:optional` Java bindings from source. Follows up on the first of the issues referenced below. Refs: - Homebrew#26009 - open-mpi/ompi#5000
|
Rebased against the latest Open MPI formula changes (and upstream stable release available in Homebrew, naturally.) Note that this and a difference in how my upstream PRs were merged between the v3.0.x and v3.1.x release branches allowed me to simplify this PR somewhat. I unfortunately haven't had the chance to test these changes on my local machine yet, but rest assured that I'll correct that in due course. |
| url "https://www.open-mpi.org/software/ompi/v3.1/downloads/openmpi-3.1.0.tar.bz2" | ||
| sha256 "b25c044124cc859c0b4e6e825574f9439a51683af1950f6acda1951f5ccdf06c" | ||
|
|
||
| stable do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do patch do blocks outside of any SoftwareSpec block apply the patches they pull in to the stable spec? I couldn't remember if that was the case off of the top of my head…
| # | ||
| # From the result of https://github.com/open-mpi/ompi/pull/5015 and | ||
| # https://github.com/open-mpi/ompi/pull/5160 as backported to Open MPI v3.1.x by | ||
| # https://github.com/open-mpi/ompi/pull/5118: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think this comment is too long? How would you prefer it be worded?
|
Reapplied those commit comments that still apply. |
|
Updated my OP's list of outstanding questions. |
|
I've now tested building Open MPI with the current iteration of this PR on my local machine, and it works exactly as expected. Bear in mind, however, that, again, my local testing doesn't cover the OpenCoarrays issue picked up by CI, as I don't use that dependent package myself. |
|
Hi @RandomDSdevel, thanks for the patches and pull request. This is a lot of patching and extra dependencies (which we will have to remove next release) for something that affects so very few users: exactly one in the last 30 days: I am going to decline the pull request and leave it as is, and wait for 3.1.1 to fix it. But many thanks again for your work on the issue! |
|
Fair enough, and no problem. Looking at Open MPI's 'v3.1.1' milestone, it appears that release is imminent (the projected landing date is June 2nd, to be precise.) |
brew install --build-from-source <formula>, where<formula>is the name of the formula you're submitting?brew audit --strict <formula>(after doingbrew install <formula>)?Follows up on #26009.
Outstanding Questions:
rebuilds or formularevisions toopen-mpi.rbor any of the formulas that depend on it? (Unlikely, I suspect, since this PR fixes a non-default option's build semantics, but I just thought I'd double-check and make sure…)What should I do here about regenerating Open MPI's makefiles after having this PR's changes make(Already resolved.)brewapply the patches it pulls in to them? (If one doesn't account for this, building--with-javacurrently still fails even though it should work with said patches.) I'll look around and see if any other formula currently has to deal with any situation of this sort, but maybe somebody could let me know here before I get too lost digging…? (Will likely involve copying whathead-spec builds do in some way, but I'm not quite sure what the best way to do that would be at the moment…)