Skip to content

Fix Java 1.8 requirement caveats#6035

Closed
claui wants to merge 1 commit into
Homebrew:masterfrom
claui:fix-oracle-java8-caveat
Closed

Fix Java 1.8 requirement caveats#6035
claui wants to merge 1 commit into
Homebrew:masterfrom
claui:fix-oracle-java8-caveat

Conversation

@claui

@claui claui commented Apr 18, 2019

Copy link
Copy Markdown
Contributor
  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same change?
  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes? Here's an example. Unable to write and run tests because brew tests keeps returning with the error: Could not find json-2.2.0 in any of the sources
  • Have you successfully run brew style with your changes locally? Returned with error: incompatible library version - /Users/claudia/Documents/dev/brew/Library/Homebrew/vendor/bundle/ruby/2.3.0/gems/jaro_winkler-1.5.2/lib/jaro_winkler/jaro_winkler_ext.bundle
  • Have you successfully run brew tests with your changes locally? See above; I tested all possible branches manually though.

As stated in https://github.com/Homebrew/homebrew-cask-versions/issues/7253, Java 1.8 is no longer freely available from Oracle. Users who wish to continue using Oracle JDK 1.8 will have to download and install it manually from Oracle’s website, which now requires registration.

Alternatively, users can now install AdoptOpenJDK 8, a drop-in replacement for Oracle JDK 1.8. This commit fixes the caveat to reflect those changes.

For compatibility reasons (homebrew-core formulas are largely untested with AdoptOpenJDK), the manual Oracle download will now be listed as the preferred choice.

For the general case, the caveat now says:

ant: Java 1.8+ is required to install this formula.

Install OpenJDK with Homebrew Cask:
  brew cask install java
Or download and install from:
  https://www.oracle.com/technetwork/java/javase/downloads/index.html
Error: An unsatisfied requirement failed this build.

For a formula that requires Java 1.8 or lower, the caveat now says:

bazel: Java 1.8 is required to install this formula.

Download and install Java SE 8 from:
  https://www.oracle.com/technetwork/java/javase/downloads/index.html
Or install AdoptOpenJDK 8 with Homebrew Cask:
  brew cask install homebrew/cask-versions/adoptopenjdk8
Error: An unsatisfied requirement failed this build.

As stated in homebrew-cask-versions#7253 [1], Java 1.8 is no longer
freely available from Oracle. Users who wish to continue using
Oracle JDK 1.8 will have to download and install it manually from
Oracle’s website, which now requires registration.

Alternatively, users can now install AdoptOpenJDK 8, a drop-in
replacement for Oracle JDK 1.8. This commit fixes the caveat to
reflect those changes.

For compatibility reasons (homebrew-core formulas are largely
untested with AdoptOpenJDK), the manual Oracle download will now be
listed as the preferred choice.

[1]: https://github.com/Homebrew/homebrew-cask-versions/issues/7253
@MikeMcQuaid

Copy link
Copy Markdown
Member

What does brew cask install homebrew/cask-versions/java8 do now? I'd like us to update our CI to match whatever we end up recommending to users to do.

@claui

claui commented Apr 19, 2019

Copy link
Copy Markdown
Contributor Author

@MikeMcQuaid That will error out because the java8 cask no longer exists.

We have deleted it to make sure existing installs are left untouched.

@MikeMcQuaid

Copy link
Copy Markdown
Member

@claui Gotcha. In that case I think we can unconditionally recommend AdoptOpenJDK 8 and we'll merge this PR when the CI images are updated to use it instead of brew cask install java8. How's that sound?

@claui

claui commented Apr 19, 2019

Copy link
Copy Markdown
Contributor Author

@MikeMcQuaid Sounds good. Thanks for the pointer!

@MikeMcQuaid

Copy link
Copy Markdown
Member

@claui Oh, also I reckon we switch to the adoptopenjdk cask for Java in general, too. May as well be consistent, favour open-source stuff and avoid future issues.

@claui

claui commented Apr 19, 2019

Copy link
Copy Markdown
Contributor Author

This just emerged from a brief internal discussion among maintainers (thanks @SMillerDev, @MikeMcQuaid, and @fxcoudert):

  • We don’t want to confuse people by endorsing AdoptOpenJDK only for 8 and Oracle’s OpenJDK for the rest.

  • We’d prefer a single OpenJDK vendor that we can endorse consistently across all Java versions.

  • We don’t like Oracle’s disruptive habits that keep breaking formulas.

  • We’re aware that AdoptOpenJDK is not 100 % compatible (even though it’s pretty close). We anticipate that even the occasional breakage is going to hurt less than inconsistent, confusing recommendation messages would.

tl;dr We’re planning to endorse AdoptOpenJDK only.

Closing this PR while I prepare an updated one.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

outdated PR was locked due to age

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants