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

[workspace] Build IPOPT from source on Ubuntu #19388

Merged

Conversation

jwnimmer-tri
Copy link
Collaborator

@jwnimmer-tri jwnimmer-tri commented May 9, 2023

Towards #17231.

Also timely because we aspire to improve our IpoptSolver wrapper, so having the newest (and same) version on Ubuntu and macOS might aid that project.


This change is Reviewable

@jwnimmer-tri
Copy link
Collaborator Author

@drake-jenkins-bot mac-arm-monterey-clang-bazel-experimental-debug please
@drake-jenkins-bot mac-arm-monterey-clang-bazel-experimental-everything-address-sanitizer please
@drake-jenkins-bot mac-arm-monterey-clang-bazel-experimental-everything-release please
@drake-jenkins-bot mac-arm-monterey-clang-bazel-experimental-release please
@drake-jenkins-bot mac-x86-monterey-clang-bazel-experimental-everything-debug please
@drake-jenkins-bot mac-x86-monterey-clang-bazel-experimental-release please

@jwnimmer-tri
Copy link
Collaborator Author

@drake-jenkins-bot linux-focal-unprovisioned-gcc-wheel-experimental-release please
@drake-jenkins-bot mac-arm-monterey-unprovisioned-clang-wheel-experimental-release please
@drake-jenkins-bot mac-x86-monterey-unprovisioned-clang-wheel-experimental-release please

@jwnimmer-tri
Copy link
Collaborator Author

@drake-jenkins-bot mac-arm-monterey-unprovisioned-clang-wheel-experimental-release please
@drake-jenkins-bot mac-x86-monterey-unprovisioned-clang-wheel-experimental-release please

@jwnimmer-tri
Copy link
Collaborator Author

@drake-jenkins-bot mac-arm-monterey-unprovisioned-clang-wheel-experimental-release please

@jwnimmer-tri
Copy link
Collaborator Author

@drake-jenkins-bot mac-x86-monterey-unprovisioned-clang-wheel-experimental-release please

@jwnimmer-tri jwnimmer-tri marked this pull request as ready for review May 10, 2023 14:06
@jwnimmer-tri
Copy link
Collaborator Author

@drake-jenkins-bot linux-focal-unprovisioned-gcc-bazel-experimental-release please
@drake-jenkins-bot linux-jammy-unprovisioned-gcc-bazel-experimental-release please

Copy link
Collaborator Author

@jwnimmer-tri jwnimmer-tri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+@rpoyner-tri for feature review, please.

Reviewable status: 1 unresolved discussion, LGTM missing from assignee rpoyner-tri(platform), needs at least two assigned reviewers, labeled "do not merge" (waiting on @jwnimmer-tri and @rpoyner-tri)

a discussion (no related file):
Working

The macOS wheel builds are failing (because IPOPT is broken at runtime there). I suspect the problem is due to the version upgrade, probably due to a missing build-config setting whose default changed. I'll investigate.

In the meantime, the bulk of the changes here (Ubuntu, non-Wheel) should be ready for review.



tools/workspace/ipopt_internal_pkgconfig/repository.bzl line 1 at r3 (raw file):

load(

FYI This file is renamed and lightly edited from the original tools/workspace/ipopt/repository.bzl on master.

Copy link
Collaborator Author

@jwnimmer-tri jwnimmer-tri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 1 unresolved discussion, LGTM missing from assignee rpoyner-tri(platform), needs at least two assigned reviewers, labeled "do not merge" (waiting on @jwnimmer-tri and @rpoyner-tri)

a discussion (no related file):

Previously, jwnimmer-tri (Jeremy Nimmer) wrote…

Working

The macOS wheel builds are failing (because IPOPT is broken at runtime there). I suspect the problem is due to the version upgrade, probably due to a missing build-config setting whose default changed. I'll investigate.

In the meantime, the bulk of the changes here (Ubuntu, non-Wheel) should be ready for review.

Aha:

[6:50:10 AM]  configure: WARNING: unrecognized options: --with-mumps-lib, --with-mumps-incdir

Maybe fixed now in r5.


@jwnimmer-tri
Copy link
Collaborator Author

@drake-jenkins-bot mac-arm-monterey-unprovisioned-clang-wheel-experimental-release please

@jwnimmer-tri
Copy link
Collaborator Author

@drake-jenkins-bot mac-x86-monterey-unprovisioned-clang-wheel-experimental-release please

Copy link
Collaborator Author

@jwnimmer-tri jwnimmer-tri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: LGTM missing from assignee rpoyner-tri(platform), needs at least two assigned reviewers, labeled "do not merge" (waiting on @jwnimmer-tri and @rpoyner-tri)

a discussion (no related file):

Previously, jwnimmer-tri (Jeremy Nimmer) wrote…

Aha:

[6:50:10 AM]  configure: WARNING: unrecognized options: --with-mumps-lib, --with-mumps-incdir

Maybe fixed now in r5.

Done. The arm build passed. I assume x86 will as well.


Copy link
Contributor

@rpoyner-tri rpoyner-tri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

Reviewed 16 of 23 files at r1, 7 of 7 files at r4, 1 of 1 files at r5, all commit messages.
Reviewable status: needs at least two assigned reviewers, labeled "do not merge" (waiting on @jwnimmer-tri)

@jwnimmer-tri
Copy link
Collaborator Author

+@sammy-tri for platform review per schedule, please.

Copy link
Contributor

@sammy-tri sammy-tri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

Reviewed 16 of 23 files at r1, 7 of 7 files at r4, 1 of 1 files at r5, all commit messages.
Reviewable status: labeled "do not merge" (waiting on @jwnimmer-tri)

On Ubuntu, this is an upgrade from 3.11.9 to 3.14.12.

On Ubuntu, we can now remove ipopt from the prereqs setup and skip it during
wheel builds. It's licensed as EPL-2.0 so we can statically link it but we do
need to distribute a patch file with our changes. We also teach vendor_cxx
about gentler option for vendoring, where we only hide the symbols without
prefixing them with "drake_vendor".

On macOS, Homebrew usually tracks the newest upstream version so the urgency of
rebuilding from source is reduced. Building from source would still help with
linker issues, but since there is no MUMPS package in Homebrew the work to make
it happen is not yet worth the time investment.
@jwnimmer-tri
Copy link
Collaborator Author

@drake-jenkins-bot mac-arm-monterey-clang-bazel-experimental-release please
@drake-jenkins-bot mac-arm-monterey-clang-bazel-experimental-everything-address-sanitizer please

@drake-jenkins-bot mac-arm-monterey-unprovisioned-clang-wheel-experimental-release please
@drake-jenkins-bot mac-x86-monterey-unprovisioned-clang-wheel-experimental-release please

@drake-jenkins-bot linux-focal-unprovisioned-gcc-wheel-experimental-release please

@jwnimmer-tri
Copy link
Collaborator Author

Locally in a venv I did a final test of running the NLP tutorials notebook edited to use IPOPT, and it was fine. That's a final smoke test, so I'll plan to merge once CI wraps up.

@jwnimmer-tri jwnimmer-tri merged commit 8775f5e into RobotLocomotion:master May 11, 2023
@jwnimmer-tri jwnimmer-tri deleted the workspace-ipopt-internal branch May 11, 2023 23:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: low release notes: fix This pull request contains fixes (no new features)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants