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

openjdk: 14.0.2 -> 15.0.1 #107547

Merged
merged 1 commit into from
Jan 6, 2021
Merged

openjdk: 14.0.2 -> 15.0.1 #107547

merged 1 commit into from
Jan 6, 2021

Conversation

jerith666
Copy link
Contributor

@jerith666 jerith666 commented Dec 24, 2020

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

I am off work until early January, so won't be able to confirm this survives a few workdays until then. :)

continues from #83116. fixes #98784.

cc @edwtjo @shlevy @NeQuissimus @lopsided98 @xfix @petabyteboy @lopsided98 @bachp

Copy link
Member

@SuperSandro2000 SuperSandro2000 left a comment

Choose a reason for hiding this comment

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

pkgs/development/compilers/openjdk/14.nix Outdated Show resolved Hide resolved
pkgs/development/compilers/openjdk/14.nix Outdated Show resolved Hide resolved
pkgs/development/compilers/openjdk/14.nix Outdated Show resolved Hide resolved
@jerith666
Copy link
Contributor Author

mindustry also uses jdk14 explicitly. Confirmed that it and apache-directory-studio launch cleanly.

@doronbehar
Copy link
Contributor

@jerith666 There are 282 packages that will get affected by this:

curl --silent https://gist.githubusercontent.com/GrahamcOfBorg/01e59afc3364e0b5a5add261f9a92a52/raw/e48220f36edf6cfa96080ddd954debe17228fc74/Changed%2520Paths | awk '{print $2}' | sort -u | wc -l

Unfortunately, this kind of major version updates require a lot of manual testings, especially for jdk, see #89731 . Ideally, we should test each package individually and make sure it launches in runtime, but it's probably a lot of work.. Testing 10% percent of these packages will be persuasive and should help this PR get accepted.

@ghost
Copy link

ghost commented Dec 25, 2020

nix-review output

11 packages marked as broken and skipped:
aldor foo-yc20 jboss junit junixsocket octave-jit openfire pig plm purePackages.faust spark

2 packages failed to build:
graalvm8 jvmci8

251 packages built:
DisnixWebService alchemy alda ammonite ammonite_2_12 apache-directory-studio apache-flex-sdk apktool arduino arduino-core asciidoc-full-with-plugins asciidoctorj aspectj astrolabe-generator atlassian-cli avro-tools aws_mturk_clt awstats axis2 basex bfg-repo-cleaner bftools bitwig-studio bitwig-studio1 bitwig-studio2 bloop boot briss ccemux cfr checkstyle clojure-lsp clooj closurecompiler confluent-platform coursier davmail dbeaver dex2jar ditaa ec2_api_tools emem emscripten epubcheck ergo exhibitor faust faust2alqt faust2alsa faust2csound faust2firefox faust2jack faust2jackrust faust2jaqt faust2ladspa faust2lv2 faustlive flexibee flink flink_1_5 flyway frostwire frostwire-bin gama ganttproject-bin geoipjava gitAndTools.subgit gogui gpsprune graylog gremlin-console groove groovy h2 haskellPackages.hzk haxePackages.hxjava hsqldb html5validator hydraAntLogger imagej ino ipscan jadx jameica jbake jbidwatcher jd-gui jdiskreport jdk jre_headless jedit jflex jicofo jing jitsi-videobridge jmeter jnetmap josm jre_minimal jruby jugglinglab jython kapitonov-plugins-pack key keycloak kodi kodi-gbm kodi-wayland kodiGBM kodiPlain kodiPlainWayland kodiPlugins.inputstream-adaptive kodiPlugins.joystick kodiPlugins.kodi-platform kodiPlugins.pvr-hdhomerun kodiPlugins.pvr-hts kodiPlugins.pvr-iptvsimple kodiPlugins.steam-controller kodiPlugins.vfs-libarchive kodiPlugins.vfs-sftp kotlin ktlint languagetool leiningen leo3-bin liquibase logisim logstash logstash6-oss logstash7 logstash7-oss lumo ma1sd macse makemkv martyr marvin mediathekview metabase metals micronaut mill minc_widgets mindustry mindustry-server minecraft minecraft-server mkgmap mkgmap-splitter mooSpace msgviewer munin mxisd nailgun netlogo nexus octave octaveFull omegat opa open-ecard openapi-generator-cli openapi-generator-cli-unstable openems opengrok openjdk15-bootstrap openjfx15 openjump papermc perl530Packages.NetZooKeeper perl532Packages.NetZooKeeper picard-tools picolisp plantuml plantuml-server portmod prometheus-jmx-httpserver python37Packages.databricks-connect python37Packages.python-csxcad python37Packages.python-openems python37Packages.sphinxcontrib_plantuml python38Packages.databricks-connect python38Packages.python-csxcad python38Packages.python-openems python38Packages.sphinxcontrib_plantuml python39Packages.databricks-connect python39Packages.python-csxcad python39Packages.python-openems python39Packages.sphinxcontrib_plantuml quantomatic rascal riemann runelite saxon saxon-he saxonb saxonb_9_1 sbt sbt-extras sbt-with-scala-native scalafmt schemaspy selendroid selenium-server-standalone seyren shattered-pixel-dungeon signal-cli smc snpeff soapui solr sonar-scanner-cli spring spring-boot-cli springLobby squirrel-sql sshoogr stm32cubemx storm subsonic swagger-codegen swingsane swt tabula tambura teensyduino tessera tomcat-native tomcat_connectors tr-patcher tuxguitar tvbrowser-bin umlet varscan vassal vimPlugins.lens-vim vimPlugins.vim-grammarous visualvm vue vuze weka workcraft xmind xmloscopy yed youtrack yuicompressor zipkin zkfuse zookeeper_mt zxing

graalvm8 and jvmci8 fail with Could not find a JDK >=1.8.0_141 and <1.9 and this is also the case on master, so no new breakage there.


manual testing

Packages that I tested and that worked fine:

  • jd-gui
  • frostwire
  • minecraft
  • minecraft-server
  • mindustry
  • mindustry-server
  • shattered-pixel-dungeon
  • mxisd (via nixos/tests/mxisd.nix)
  • netlogo
  • plantuml
  • spring (kinda, I got into the menu but could not get ingame, same happens on master so it should be fine)
  • selenium-server
  • umlet

Packages that didn't work and work on master:

Packages that didn't work but also didn't work with master either:

  • tuxguitar: SIGSEGV in jre
  • vuze: java.lang.UnsupportedClassVersionError (it's being compiled with jdk14/jdk15 but run with jre/jdk8)
  • tvbrowser-bin: java.lang.ClassNotFoundException

summary

The only packages I found that didn't work here but did work on master were arduino and jitsi-videobridge. There seems to be an update available for arduino so maybe that will fix it. I'm taking care of the GC flags in jitsi videobridge and opened a bug report upstream at jitsi/jitsi-videobridge#1547.

A lot of the affected packages are duplicates, as in multiple derivations used for the same application, for example Kodi and its plugins make up 14 derivations.

@doronbehar
Copy link
Contributor

Packages that didn't work and work on master:

* arduino: Crashes after splash screen, works with jdk14

* jitsi-videobridge (via nixos/tests/jitsi-meet.nix): Unrecognized VM option 'UseConcMarkSweepGC', see [jitsi/jitsi-videobridge#1547](https://github.com/jitsi/jitsi-videobridge/issues/1547)

Thanks for the report. So we should add commits that will pin them to jdk14.

@doronbehar
Copy link
Contributor

@jerith666 if you could please take care of arduino and jitsi-videobridge.

@jerith666
Copy link
Contributor Author

I just tried arduino and it works okay for me locally:

$ git rev-parse HEAD
d9d16e27c8ed6780c8486094ef95e8c0a38fe3ec

$ ls -l arduino-jdk1*
lrwxrwxrwx 1 matt users 58 Dec 25 15:44 arduino-jdk14 -> /nix/store/4hk2g10wxvw641gyvzp2l4pw304s18z8-arduino-1.8.12
lrwxrwxrwx 1 matt users 58 Dec 25 16:11 arduino-jdk15 -> /nix/store/8ajpqj2yaypg7khs3fa08rxlf4pmyckn-arduino-1.8.12

I get past the splash screen and was able to load and compile an example in both of those builds. Here's the output from the one using jdk 15:

$ ./arduino-jdk15/bin/arduino 
Picked up JAVA_TOOL_OPTIONS: 
Set log4j store directory /home/matt/.arduino15

(java:5114): Gtk-WARNING **: 16:16:52.623: Theme parsing error: colors.css:71:44: Invalid number for color value

(java:5114): Gtk-WARNING **: 16:16:52.623: Theme parsing error: colors.css:72:44: Invalid number for color value

(java:5114): Gtk-WARNING **: 16:16:52.623: Theme parsing error: colors.css:74:53: Invalid number for color value

(java:5114): Gtk-WARNING **: 16:16:52.623: Theme parsing error: colors.css:75:53: Invalid number for color value

(java:5114): Gtk-WARNING **: 16:16:52.623: Theme parsing error: colors.css:76:56: Invalid number for color value

(java:5114): Gtk-WARNING **: 16:16:52.623: Theme parsing error: colors.css:77:65: Invalid number for color value
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by processing.app.linux.GTKLookAndFeelFixer (file:/nix/store/8ajpqj2yaypg7khs3fa08rxlf4pmyckn-arduino-1.8.12/share/arduino/lib/arduino-core.jar) to field com.sun.java.swing.plaf.gtk.GTKLookAndFeel.styleFactory
WARNING: Please consider reporting this to the maintainers of processing.app.linux.GTKLookAndFeelFixer
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Sketch uses 1860 bytes (5%) of program storage space. Maximum is 32256 bytes.
Global variables use 188 bytes (9%) of dynamic memory, leaving 1860 bytes for local variables. Maximum is 2048 bytes.

@petabyteboy said "I'm taking care of the GC flags in jitsi videobridge", so I'll wait for that but I'm sure I can figure it out myself if needed. :)

* update two explicit references to jdk14 to just jdk, which no longer
  points at jdk8 after NixOS#89731.

* patch an explicit -XX:+UseConcMarkSweepGC to -XX:UseG1GC, as the
  former now throws an error (after having been deprecated since jdk 9)
@jerith666
Copy link
Contributor Author

Just force-pushed a new commit that includes a patch for jitsi-videobridge. nixos/tests/jitsi-meet.nix passes now.

@ofborg ofborg bot requested review from prusnak, a user, mmilata and ryantm December 26, 2020 17:11
Copy link
Member

@mmilata mmilata left a comment

Choose a reason for hiding this comment

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

Didn't test but Jitsi changes look reasonable.

@prusnak prusnak removed their request for review December 26, 2020 21:01
Copy link
Contributor

@doronbehar doronbehar left a comment

Choose a reason for hiding this comment

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

I too didn't test a thing but all changes look good and I believe the OP has tested what they tested to be functional.

@jerith666
Copy link
Contributor Author

I've got two workdays under my belt with this now (running Eclipse on top of this JDK), and no issues to report. So, removing the WIP label; I think this is ready to merge.

@doronbehar
Copy link
Contributor

OK. We can't wait for such major updates for ever. Let's cook this in unstable :).

@doronbehar doronbehar merged commit 7aed38b into NixOS:master Jan 6, 2021
@bachp bachp mentioned this pull request Jan 6, 2021
10 tasks
@roberth roberth mentioned this pull request Mar 19, 2021
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Request: OpenJDK 15
4 participants