homebrew-core icon indicating copy to clipboard operation
homebrew-core copied to clipboard

openjdk 19

Open cho-m opened this issue 3 years ago • 13 comments

Created with brew bump-formula-pr.

resource blocks may require updates.

cho-m avatar Sep 20 '22 23:09 cho-m

Failing on https://github.com/openjdk/jdk19/blob/jdk-19+36/src/hotspot/share/utilities/compilerWarnings_gcc.hpp#L72-L85 (maybe something with XCode 14? The #if won't be used on older XCode releases)

#if (__GNUC__ >= 10) || (defined(__clang_major__) && (__clang_major__ >= 14))

...

#define FORBID_C_FUNCTION(signature, alternative) \
  extern "C" __attribute__((__warning__(alternative))) signature;
  /private/tmp/openjdk-20220920-99421-1ei2qxf/jdk19u-jdk-19-36/src/hotspot/share/utilities/globalDefinitions.hpp:165:1: error: 'warning' attribute does not appear on the first declaration
  FORBID_C_FUNCTION(void exit(int), "use os::exit");
  ^
  /private/tmp/openjdk-20220920-99421-1ei2qxf/jdk19u-jdk-19-36/src/hotspot/share/utilities/compilerWarnings_gcc.hpp:85:29: note: expanded from macro 'FORBID_C_FUNCTION'
    extern "C" __attribute__((__warning__(alternative))) signature;
                              ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.sdk/usr/include/stdlib.h:145:7: note: previous declaration is here
  void     exit(int) __dead2;
           ^

cho-m avatar Sep 20 '22 23:09 cho-m

Can try apply https://github.com/openjdk/jdk/commit/0599a05f8c7e26d4acae0b2cc805a65bdd6c6f67.

Bo98 avatar Sep 21 '22 00:09 Bo98

Big Sur ARM Failures:

  • [x] brew test --retry --verbose gradle -- Downgrade to JDK 17 in #111296
  • [x] brew test --retry --verbose trino -- #111295
  • [x] brew test --retry --verbose vert.x -- Downgrade to JDK 17 in #111294

Can rebase after these are merged and maybe also #111255.

cho-m avatar Sep 21 '22 01:09 cho-m

It would be good to see if we can stop using some bundled libraries:

  --with-freetype         specify whether to use 'system' or 'bundled'
                          freetype. The selected option applies to both build
                          time and run time. The default behaviour can be
                          platform dependent. If using 'system' and either the
                          include files or libraries cannot be located
                          automatically, then additionally specify both using
                          --with-freetype-include and --with-freetype-lib.
  --with-freetype-include specify directory for the freetype include files
  --with-freetype-lib     specify directory for the freetype library
  --with-alsa             specify prefix directory for the alsa package
                          (expecting the libraries under PATH/lib and the
                          headers under PATH/include)
  --with-alsa-include     specify directory for the alsa include files
  --with-alsa-lib         specify directory for the alsa library
  --with-libffi           specify prefix directory for the libffi package
                          (expecting the libraries under PATH/lib and the
                          headers under PATH/include)
  --with-libffi-include   specify directory for the libffi include files
  --with-libffi-lib       specify directory for the libffi library
  --with-libjpeg          use libjpeg from build system or OpenJDK source
                          (system, bundled) [bundled]
  --with-giflib           use giflib from build system or OpenJDK source
                          (system, bundled) [bundled]
  --with-libpng           use libpng from build system or OpenJDK source
                          (system, bundled) [bundled]
  --with-zlib             use zlib from build system or OpenJDK source
                          (system, bundled) [bundled]
  --with-lcms             use lcms2 from build system or OpenJDK source
                          (system, bundled) [bundled]
  --with-harfbuzz         use harfbuzz from build system or OpenJDK source
                          (system, bundled) [bundled]

carlocab avatar Sep 21 '22 03:09 carlocab

We did build openj9 with system/Homebrew libraries so probably good idea to do so for openjdk too.

  • fontconfig/freetype can only be bundled on macOS.

cho-m avatar Sep 21 '22 03:09 cho-m

Bit annoying OpenSSL dependency tree. I'll probably just add to allowlist:

  couchdb-lucene:
    * couchdb-lucene contains conflicting version recursive dependencies:
        openssl@3, [email protected]
      View these with `brew deps --tree couchdb-lucene`.
  tomcat-native:
    * tomcat-native contains conflicting version recursive dependencies:
        [email protected], openssl@3
      View these with `brew deps --tree tomcat-native`.

cho-m avatar Sep 21 '22 05:09 cho-m

Bit annoying OpenSSL dependency tree. I'll probably just add to allowlist:

  couchdb-lucene:
    * couchdb-lucene contains conflicting version recursive dependencies:
        openssl@3, [email protected]
      View these with `brew deps --tree couchdb-lucene`.
  tomcat-native:
    * tomcat-native contains conflicting version recursive dependencies:
        [email protected], openssl@3
      View these with `brew deps --tree tomcat-native`.

OpenSSL 1.1 and OpenSSL 3 cannot be installed at the same time on Linux yet and OpenSSL 3 cannot currently build on older macOS. I swear I'll get round to fixing OpenSSL 3 soon. 😅

Bo98 avatar Sep 21 '22 13:09 Bo98

OpenSSL 1.1 and OpenSSL 3 cannot be installed at the same time on Linux yet and OpenSSL 3 cannot currently build on older macOS. I swear I'll get round to fixing OpenSSL 3 soon. 😅

Some formulae already try to install both like swtpm and we have migrated 33 formulae to openssl@3 along with 1 via openssl alias (get-flash-videos).

Can we make one of them keg-only on Linux?


For new failures, pig doesn't seem to like JDK 19 so trying to downgrade in #111338. mercury Linux failure is from gcc-5 usage somewhere that fails with GCC migration.


Otherwise, just need to decide if we keep waiting for a GA tag. The code itself should be identical as the tag should be set to same commit as jdk-19+36.

cho-m avatar Sep 21 '22 16:09 cho-m

Can we make one of them keg-only on Linux?

We should make OpenSSL 1.1 keg only, but will require a long PR run which has been hard to fit in recently.

Some formulae already try to install both like swtpm and we have migrated 33 formulae to openssl@3 along with 1 via openssl alias (get-flash-videos).

I think they're all low install count. We've not migrated anything major, nor should have yet. It's quite a large operation to pull off and I should create a tracking issue for it.

Bo98 avatar Sep 21 '22 16:09 Bo98

We should make OpenSSL 1.1 keg only, but will require a long PR run which has been hard to fit in recently.

Actually, openssl@3 was made keg-only in #87023 so should be possible to have both [email protected] and openssl@3 installed on Linux.


For this PR, the only question/blocker is if we want to wait for jdk-19-ga tag. Not sure why there isn't one already.

Based on livecheck failure from my oracle-jdk Cask PR (https://github.com/Homebrew/homebrew-cask/pull/132008), upstream may be planning a quick 19.0.1 release

cho-m avatar Sep 21 '22 18:09 cho-m

Actually, openssl@3 was made keg-only in #87023 so should be possible to have both [email protected] and openssl@3 installed on Linux.

Ah whoops forgot we did that and the second keg-only made it easy to miss. Not sure what the long-term keg-only plan is.

Bo98 avatar Sep 21 '22 23:09 Bo98

Ah whoops forgot we did that and the second keg-only made it easy to miss. Not sure what the long-term keg-only plan is.

I think we want to link openssl@3 and make [email protected] keg only on Linux too.

carlocab avatar Sep 22 '22 09:09 carlocab

Not sure why selenium-server failed on Monterey but it is an all bottle that passed everywhere else.

Should be ready if we decide to merge now or wait for another tag. I checked the repos but still no new v19 tag in https://github.com/openjdk/jdk19u, https://github.com/openjdk/jdk19, or https://github.com/openjdk/jdk

cho-m avatar Sep 22 '22 21:09 cho-m

emscripten linkage with zstd fixed in #111582.

carlocab avatar Sep 24 '22 08:09 carlocab

:shipit: @carlocab has triggered a merge.

BrewTestBot avatar Sep 25 '22 04:09 BrewTestBot