java-17-openjdk 17.0.0.35-1 (x86_64;aarch64;znver1) 2021-14136
0

Status rejected
Submitter cris [@T] beebames.com
Platform rolling
Repository main
URL https://abf.openmandriva.org/build_lists/91469
Packages
java-17-openjdk-17.0.0.35-1.x86_64.source
java-17-openjdk-17.0.0.35-1.x86_64.binary
java-17-openjdk-debug-17.0.0.35-1.x86_64.binary
java-17-openjdk-debug-debuginfo-17.0.0.35-1.x86_64.debuginfo
java-17-openjdk-debuginfo-17.0.0.35-1.x86_64.debuginfo
java-17-openjdk-debugsource-17.0.0.35-1.x86_64.binary
java-17-openjdk-demo-17.0.0.35-1.x86_64.binary
java-17-openjdk-devel-17.0.0.35-1.x86_64.binary
java-17-openjdk-devel-debuginfo-17.0.0.35-1.x86_64.debuginfo
java-17-openjdk-gui-17.0.0.35-1.x86_64.binary
java-17-openjdk-gui-debuginfo-17.0.0.35-1.x86_64.debuginfo
java-17-openjdk-module-java.compiler-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.datatransfer-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.instrument-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.logging-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.management-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.management.rmi-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.naming-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.net.http-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.prefs-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.rmi-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.scripting-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.se-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.security.jgss-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.security.sasl-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.smartcardio-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.sql-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.sql.rowset-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.transaction.xa-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.xml-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-java.xml.crypto-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.accessibility-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.attach-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.charsets-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.compiler-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.crypto.cryptoki-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.crypto.ec-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.dynalink-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.editpad-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.hotspot.agent-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.httpserver-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.incubator.foreign-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.incubator.vector-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jartool-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.javadoc-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jcmd-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jconsole-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jdeps-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jdi-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jdwp.agent-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jfr-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jlink-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jpackage-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jshell-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jsobject-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.jstatd-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.localedata-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.management-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.management.agent-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.management.jfr-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.naming.dns-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.naming.rmi-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.net-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.nio.mapmode-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.random-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.sctp-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.security.auth-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.security.jgss-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.unsupported-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.unsupported.desktop-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.xml.dom-17.0.0.35-1.x86_64.binary
java-17-openjdk-module-jdk.zipfs-17.0.0.35-1.x86_64.binary
java-17-openjdk-source-17.0.0.35-1.x86_64.binary
java-17-openjdk-17.0.0.35-1.aarch64.source
java-17-openjdk-17.0.0.35-1.aarch64.binary
java-17-openjdk-debug-17.0.0.35-1.aarch64.binary
java-17-openjdk-debug-debuginfo-17.0.0.35-1.aarch64.debuginfo
java-17-openjdk-debuginfo-17.0.0.35-1.aarch64.debuginfo
java-17-openjdk-debugsource-17.0.0.35-1.aarch64.binary
java-17-openjdk-demo-17.0.0.35-1.aarch64.binary
java-17-openjdk-devel-17.0.0.35-1.aarch64.binary
java-17-openjdk-devel-debuginfo-17.0.0.35-1.aarch64.debuginfo
java-17-openjdk-gui-17.0.0.35-1.aarch64.binary
java-17-openjdk-gui-debuginfo-17.0.0.35-1.aarch64.debuginfo
java-17-openjdk-module-java.compiler-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.datatransfer-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.instrument-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.logging-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.management-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.management.rmi-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.naming-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.net.http-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.prefs-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.rmi-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.scripting-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.se-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.security.jgss-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.security.sasl-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.smartcardio-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.sql-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.sql.rowset-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.transaction.xa-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.xml-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-java.xml.crypto-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.accessibility-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.attach-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.charsets-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.compiler-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.crypto.cryptoki-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.crypto.ec-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.dynalink-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.editpad-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.hotspot.agent-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.httpserver-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.incubator.foreign-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.incubator.vector-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jartool-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.javadoc-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jcmd-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jconsole-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jdeps-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jdi-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jdwp.agent-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jfr-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jlink-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jpackage-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jshell-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jsobject-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.jstatd-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.localedata-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.management-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.management.agent-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.management.jfr-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.naming.dns-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.naming.rmi-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.net-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.nio.mapmode-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.random-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.sctp-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.security.auth-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.security.jgss-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.unsupported-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.unsupported.desktop-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.xml.dom-17.0.0.35-1.aarch64.binary
java-17-openjdk-module-jdk.zipfs-17.0.0.35-1.aarch64.binary
java-17-openjdk-source-17.0.0.35-1.aarch64.binary
java-17-openjdk-17.0.0.35-1.znver1.source
java-17-openjdk-17.0.0.35-1.znver1.binary
java-17-openjdk-debug-17.0.0.35-1.znver1.binary
java-17-openjdk-debug-debuginfo-17.0.0.35-1.znver1.debuginfo
java-17-openjdk-debuginfo-17.0.0.35-1.znver1.debuginfo
java-17-openjdk-debugsource-17.0.0.35-1.znver1.binary
java-17-openjdk-demo-17.0.0.35-1.znver1.binary
java-17-openjdk-devel-17.0.0.35-1.znver1.binary
java-17-openjdk-devel-debuginfo-17.0.0.35-1.znver1.debuginfo
java-17-openjdk-gui-17.0.0.35-1.znver1.binary
java-17-openjdk-gui-debuginfo-17.0.0.35-1.znver1.debuginfo
java-17-openjdk-module-java.compiler-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.datatransfer-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.instrument-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.logging-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.management-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.management.rmi-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.naming-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.net.http-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.prefs-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.rmi-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.scripting-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.se-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.security.jgss-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.security.sasl-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.smartcardio-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.sql-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.sql.rowset-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.transaction.xa-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.xml-17.0.0.35-1.znver1.binary
java-17-openjdk-module-java.xml.crypto-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.accessibility-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.attach-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.charsets-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.compiler-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.crypto.cryptoki-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.crypto.ec-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.dynalink-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.editpad-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.hotspot.agent-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.httpserver-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.incubator.foreign-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.incubator.vector-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jartool-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.javadoc-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jcmd-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jconsole-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jdeps-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jdi-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jdwp.agent-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jfr-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jlink-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jpackage-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jshell-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jsobject-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.jstatd-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.localedata-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.management-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.management.agent-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.management.jfr-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.naming.dns-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.naming.rmi-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.net-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.nio.mapmode-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.random-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.sctp-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.security.auth-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.security.jgss-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.unsupported-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.unsupported.desktop-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.xml.dom-17.0.0.35-1.znver1.binary
java-17-openjdk-module-jdk.zipfs-17.0.0.35-1.znver1.binary
java-17-openjdk-source-17.0.0.35-1.znver1.binary
Build Date 2021-09-04 18:56:52 +0000 UTC
Last Updated 2021-11-26 21:33:07.080842111 +0000 UTC
$ git show --format=fuller --patch-with-stat --summary a4f04eab276362b9a1721ad279036ad0e87bf867

commit a4f04eab276362b9a1721ad279036ad0e87bf867
Author:     Crispin Boylan <crisb@mandriva.org>
AuthorDate: Fri Sep 3 23:22:45 2021 +0100
Commit:     Crispin Boylan <crisb@mandriva.org>
CommitDate: Fri Sep 3 23:22:45 2021 +0100

    17.0.0.35 (rc)
---
 .abf.yml                                           |   2 +
 TestCryptoLevel.java                               |  72 +++
 TestECDSA.java                                     |  49 ++
 java-12-buildfix.patch                             |  16 +
 java-12-compile.patch                              |  14 +
 java-17-openjdk.spec                               | 602 +++++++++++++++++++++
 openjdk-13-fix-build.patch                         |  12 +
 openjdk-15-nss-3.57.patch                          |  24 +
 openjdk-16-glibc-2.34.patch                        |  14 +
 ...-support_fedora_rhel_system_crypto_policy.patch |  88 +++
 ...accessible_toolkit_crash_do_not_break_jvm.patch |  16 +
 ...ted_out_nss_cfg_provider_to_java_security.patch |  11 +
 ...44-java_access_bridge_privileged_security.patch |  20 +
 ...libjpeg_turbo_1_4_compat_for_jdk10_and_up.patch |  19 +
 14 files changed, 959 insertions(+)
 create mode 100644 .abf.yml
 create mode 100644 TestCryptoLevel.java
 create mode 100644 TestECDSA.java
 create mode 100644 java-12-buildfix.patch
 create mode 100644 java-12-compile.patch
 create mode 100644 java-17-openjdk.spec
 create mode 100644 openjdk-13-fix-build.patch
 create mode 100644 openjdk-15-nss-3.57.patch
 create mode 100644 openjdk-16-glibc-2.34.patch
 create mode 100644 pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
 create mode 100644 rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
 create mode 100644 rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
 create mode 100644 rh1648644-java_access_bridge_privileged_security.patch
 create mode 100644 rh649512-remove_uses_of_far_in_jpeg_libjpeg_turbo_1_4_compat_for_jdk10_and_up.patch

diff --git a/.abf.yml b/.abf.yml
new file mode 100644
index 0000000..417dea5
--- /dev/null
+++ b/.abf.yml
@@ -0,0 +1,2 @@
+sources:
+  jdk-17.0.0+35.tar.gz: c3ebde044be72b48d0534ed47a8fbb1ef9aa8918
diff --git a/TestCryptoLevel.java b/TestCryptoLevel.java
new file mode 100644
index 0000000..b32b7ae
--- /dev/null
+++ b/TestCryptoLevel.java
@@ -0,0 +1,72 @@
+/* TestCryptoLevel -- Ensure unlimited crypto policy is in use.
+   Copyright (C) 2012 Red Hat, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
+
+import java.security.Permission;
+import java.security.PermissionCollection;
+
+public class TestCryptoLevel
+{
+  public static void main(String[] args)
+    throws NoSuchFieldException, ClassNotFoundException,
+           IllegalAccessException, InvocationTargetException
+  {
+    Class<?> cls = null;
+    Method def = null, exempt = null;
+
+    try
+      {
+        cls = Class.forName("javax.crypto.JceSecurity");
+      }
+    catch (ClassNotFoundException ex)
+      {
+        System.err.println("Running a non-Sun JDK.");
+        System.exit(0);
+      }
+    try
+      {
+        def = cls.getDeclaredMethod("getDefaultPolicy");
+        exempt = cls.getDeclaredMethod("getExemptPolicy");
+      }
+    catch (NoSuchMethodException ex)
+      {
+        System.err.println("Running IcedTea with the original crypto patch.");
+        System.exit(0);
+      }
+    def.setAccessible(true);
+    exempt.setAccessible(true);
+    PermissionCollection defPerms = (PermissionCollection) def.invoke(null);
+    PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null);
+    Class<?> apCls = Class.forName("javax.crypto.CryptoAllPermission");
+    Field apField = apCls.getDeclaredField("INSTANCE");
+    apField.setAccessible(true);
+    Permission allPerms = (Permission) apField.get(null);
+    if (defPerms.implies(allPerms) && (exemptPerms == null || exemptPerms.implies(allPerms)))
+      {
+        System.err.println("Running with the unlimited policy.");
+        System.exit(0);
+      }
+    else
+      {
+        System.err.println("WARNING: Running with a restricted crypto policy.");
+        System.exit(-1);
+      }
+  }
+}
diff --git a/TestECDSA.java b/TestECDSA.java
new file mode 100644
index 0000000..6eb9cb2
--- /dev/null
+++ b/TestECDSA.java
@@ -0,0 +1,49 @@
+/* TestECDSA -- Ensure ECDSA signatures are working.
+   Copyright (C) 2016 Red Hat, Inc.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+import java.math.BigInteger;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.Signature;
+
+/**
+ * @test
+ */
+public class TestECDSA {
+
+    public static void main(String[] args) throws Exception {
+        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
+        KeyPair key = keyGen.generateKeyPair();
+        
+        byte[] data = "This is a string to sign".getBytes("UTF-8");
+        
+        Signature dsa = Signature.getInstance("NONEwithECDSA");
+        dsa.initSign(key.getPrivate());
+        dsa.update(data);
+        byte[] sig = dsa.sign();
+        System.out.println("Signature: " + new BigInteger(1, sig).toString(16));
+        
+        Signature dsaCheck = Signature.getInstance("NONEwithECDSA");
+        dsaCheck.initVerify(key.getPublic());
+        dsaCheck.update(data);
+        boolean success = dsaCheck.verify(sig);
+        if (!success) {
+            throw new RuntimeException("Test failed. Signature verification error");
+        }
+        System.out.println("Test passed.");
+    }
+}
diff --git a/java-12-buildfix.patch b/java-12-buildfix.patch
new file mode 100644
index 0000000..fd0d392
--- /dev/null
+++ b/java-12-buildfix.patch
@@ -0,0 +1,16 @@
+diff -up openjdk/src/hotspot/share/gc/g1/g1CodeBlobClosure.cpp.omv~ openjdk/src/hotspot/share/gc/g1/g1CodeBlobClosure.cpp
+--- openjdk/src/hotspot/share/gc/g1/g1CodeBlobClosure.cpp.omv~	2019-02-15 23:07:42.313110651 +0100
++++ openjdk/src/hotspot/share/gc/g1/g1CodeBlobClosure.cpp	2019-02-15 23:07:56.346351166 +0100
+@@ -26,6 +26,7 @@
+ #include "code/nmethod.hpp"
+ #include "gc/g1/g1CodeBlobClosure.hpp"
+ #include "gc/g1/g1CollectedHeap.inline.hpp"
++#include "gc/g1/g1OopClosures.inline.hpp"
+ #include "gc/g1/heapRegion.hpp"
+ #include "gc/g1/heapRegionRemSet.hpp"
+ #include "oops/access.inline.hpp"
+@@ -62,4 +63,3 @@ void G1CodeBlobClosure::do_code_blob(Cod
+     }
+   }
+ }
+-
diff --git a/java-12-compile.patch b/java-12-compile.patch
new file mode 100644
index 0000000..4e9f697
--- /dev/null
+++ b/java-12-compile.patch
@@ -0,0 +1,14 @@
+diff -up openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h.omv~ openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h
+--- openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h.omv~	2019-02-14 18:47:55.481557046 +0100
++++ openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h	2019-02-14 18:49:42.450345463 +0100
+@@ -170,8 +170,8 @@
+ #define min(a, b)       (((a) < (b)) ? (a) : (b))
+ #endif
+ 
+-#define ckBBoolToJBoolean(x) ((x == TRUE) ? JNI_TRUE : JNI_FALSE);
+-#define jBooleanToCKBBool(x) ((x == JNI_TRUE) ? TRUE : FALSE);
++#define ckBBoolToJBoolean(x) ((x) ? JNI_TRUE : JNI_FALSE);
++#define jBooleanToCKBBool(x) ((x == JNI_TRUE) ? 1 : 0);
+ 
+ #define ckByteToJByte(x) ((jbyte) x)
+ #define jByteToCKByte(x) ((CK_BYTE) x)
diff --git a/java-17-openjdk.spec b/java-17-openjdk.spec
new file mode 100644
index 0000000..addb40c
--- /dev/null
+++ b/java-17-openjdk.spec
@@ -0,0 +1,602 @@
+# Use gcc instead of clang
+%bcond_without gcc
+%bcond_with system_jdk
+# Without bootstrap, the package BuildRequires
+# rpm-javamacros (which in turn requires this package)
+# so jmod(*) and java(*) Provides: can be generated correctly.
+%bcond_without bootstrap
+# Using rpm's debug package splitter is suboptimal because OpenJDK
+# packages various shared library files inside zip (jmod) packages.
+# Those aren't seen by the splitter and therefore get insanely large.
+# Better to use OpenJDK's own debuginfo splitter here even if it
+# results in somewhat nonstandard locations for debuginfo files.
+# This results in partially empty debug packages (debugsource from
+# rpm, *.debug files from OpenJDK build system)
+%global _empty_manifest_terminate_build 0
+
+# OpenJDK builds a lot of underlinked libraries and tools...
+%global _disable_ld_no_undefined 1
+%global _jvmdir %{_prefix}/lib/jvm
+
+%define major %(echo %{version} |cut -d. -f1)
+%define ver %(echo %{version} |rev |cut -d. -f2- |rev)
+%define minor 35
+#For non-GA releases: %(echo %{version} |rev |cut -d. -f1 |rev)
+# OpenJDK X requires OpenJDK >= X-1 to build -- so we need
+# to determine the previous version to get build dependencies
+# right
+%define oldmajor %(echo $((%{major}-1)))
+
+Name:		java-17-openjdk
+Version:	17.0.0.%{minor}
+Release:	1
+Summary:	Java Runtime Environment (JRE) %{major}
+Group:		Development/Languages
+License:	GPLv2, ASL 1.1, ASL 2.0, LGPLv2.1
+URL:		http://openjdk.java.net/
+Source0:	https://github.com/openjdk/jdk17u/archive/refs/tags/jdk-%{ver}+%{minor}.tar.gz
+# Extra tests
+Source50:	TestCryptoLevel.java
+Source51:	TestECDSA.java
+# Patches from Fedora
+Patch0:		https://src.fedoraproject.org/rpms/java-openjdk/raw/master/f/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
+Patch1:		https://src.fedoraproject.org/rpms/java-openjdk/raw/master/f/rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
+Patch2:		https://src.fedoraproject.org/rpms/java-openjdk/raw/master/f/rh1648644-java_access_bridge_privileged_security.patch
+Patch3:		https://src.fedoraproject.org/rpms/java-openjdk/raw/master/f/rh649512-remove_uses_of_far_in_jpeg_libjpeg_turbo_1_4_compat_for_jdk10_and_up.patch
+Patch4:		https://src.fedoraproject.org/rpms/java-openjdk/raw/master/f/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
+# Patches from OpenMandriva
+Patch1002:	java-12-compile.patch
+Patch1003:	openjdk-15-nss-3.57.patch
+Patch1004:	openjdk-16-glibc-2.34.patch
+#Patch1005:	openjdk-13-fix-build.patch
+BuildRequires:	autoconf
+BuildRequires:	automake
+BuildRequires:	binutils
+BuildRequires:	cups-devel
+BuildRequires:	desktop-file-utils
+BuildRequires:	fontconfig
+BuildRequires:	xsltproc
+BuildRequires:	zip
+BuildRequires:	pkgconfig(freetype2)
+BuildRequires:	giflib-devel
+BuildRequires:	pkgconfig(alsa)
+BuildRequires:	pkgconfig(gtk+-2.0)
+BuildRequires:	pkgconfig(nss)
+BuildRequires:	pkgconfig(lcms2)
+BuildRequires:	pkgconfig(libjpeg)
+BuildRequires:	pkgconfig(libpng)
+BuildRequires:	pkgconfig(x11)
+BuildRequires:	pkgconfig(xext)
+BuildRequires:	pkgconfig(xi)
+BuildRequires:	pkgconfig(xcomposite)
+BuildRequires:	pkgconfig(xinerama)
+BuildRequires:	pkgconfig(xrandr)
+BuildRequires:	pkgconfig(xrender)
+BuildRequires:	pkgconfig(xt)
+BuildRequires:	pkgconfig(xtst)
+BuildRequires:	pkgconfig(xproto)
+# For testing
+BuildRequires:	gdb
+# For freebl
+BuildRequires:	nss-static-devel
+# Zero-assembler build requirement.
+%ifnarch %{jit_arches}
+BuildRequires:	pkgconfig(libffi)
+%endif
+
+# cacerts build requirement.
+BuildRequires:	openssl
+
+%if %{with system_jdk}
+Provides:	jre-current = %{EVRD}
+Provides:	java-current = %{EVRD}
+%endif
+%if %{with bootstrap}
+# In a bootstrap build, we can't have jmod(*) dependencies
+# because openjdk 12's jmod has no idea how to read openjdk
+# 13's module files.
+BuildRequires:	java-%{oldmajor}-openjdk-devel
+# Let's provide some basics...
+Provides:	jmod(java.base) = %{EVRD}
+%else
+BuildRequires:	rpm-javamacros
+BuildRequires:	java-%{major}-openjdk-devel
+%endif
+
+# For compatibility with JPackage/Fedora/Mageia packaging
+Provides:	java-%{major}-openjdk-headless = 1:%{version}-%{release}
+Provides:	java-openjdk-headless = 1:%{version}-%{release}
+Provides:	java-headless = 1:%{version}-%{release}
+
+%description
+OpenJDK Java runtime and development environment
+
+# Macro for packaging individual jmod files
+%define modpackage()\
+%%package module-%{1}\
+Summary: The Java %{1} module, provided by OpenJDK\
+Group: Development/Languages\
+%%description module-%{1}\
+The Java %{1} module, provided by OpenJDK\
+%%files module-%{1}\
+%{_jvmdir}/java-%{major}-openjdk/jmods/%{1}.jmod \
+%optional %doc %{_jvmdir}/java-%{major}-openjdk/legal/%{1}
+
+%package gui
+Summary:	Graphical user interface libraries for OpenJDK %{major}
+Group:		Development/Languages
+%if %{with system_jdk}
+Provides:	jre-gui-current = %{EVRD}
+Provides:	java-gui-current = %{EVRD}
+%endif
+# We really need to require %{name} = %{EVRD}, but this gets
+# messed up by the compatibility provides below
+# (java-%{major}-openjdk == %{name})
+# So we have to require one of the compatibility provides of
+# the main package instead.
+Requires:	java-%{major}-openjdk-headless = 1:%{version}-%{release}
+# For compatibility with JPackage/Fedora/Mageia packaging
+Provides:	java-%{major}-openjdk = %{EVRD}
+Provides:	java-openjdk = %{EVRD}
+Provides:	java = %{EVRD}
+
+%description gui
+Graphical user interface libraries for OpenJDK %{major}
+
+%package devel
+Summary:	Java Development Kit (JDK) %{major}
+Group:		Development/Languages
+%if %{with system_jdk}
+Provides:	jdk-current = %{EVRD}
+Provides:	java-current-devel = %{EVRD}
+%endif
+Requires:	rpm-javamacros
+Requires:	%{name} = %{EVRD}
+Suggests:	%{name}-gui = %{EVRD}
+# For compatibility with JPackage/Fedora/Mageia packaging
+Provides:	java-openjdk-devel = %{EVRD}
+Provides:	java-devel = %{EVRD}
+
+%description devel
+Java Development Kit (JDK) %{major}
+
+%package source
+Summary:	Source files for the Java class library
+Group:		Development/Languages
+Recommends:	%{name} = %{EVRD}
+
+%description source
+Source files for the Java class library
+
+%package demo
+Summary:	Demo/Example applications for OpenJDK
+Group:		Development/Languages
+
+%description demo
+Demo/Example applications for OpenJDK
+
+%package debug
+Summary:	Debug information for package %{name}
+Group:		Development/Debug
+
+%description debug
+Debug information for package %{name}
+
+%prep
+%autosetup -p1 -n jdk17u-jdk-17-%{minor}
+
+EXTRA_CFLAGS="$(echo %{optflags} -fuse-ld=bfd -Wno-error -fno-delete-null-pointer-checks -Wformat -Wno-cpp |sed -r -e 's|-O[0-9sz]*||;s|-Werror=format-security||g')"
+EXTRA_CXXFLAGS="$EXTRA_CFLAGS"
+%if %{with gcc}
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-lifetime-dse"
+EXTRA_CXXFLAGS="$EXTRA_CFLAGS -fno-lifetime-dse"
+%ifarch %{ix86}
+# https://bugs.openjdk.java.net/browse/JDK-8199936
+EXTRA_CFLAGS="$EXTRA_CFLAGS -mincoming-stack-boundary=2"
+EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -mincoming-stack-boundary=2"
+%endif
+export CC=gcc
+export CXX=g++
+%else
+%ifarch %{ix86}
+# https://bugs.openjdk.java.net/browse/JDK-8199936
+EXTRA_CFLAGS="$EXTRA_CFLAGS -mstack-alignment=16"
+EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -mstack-alignment=16"
+%endif
+%endif
+
+NUM_PROC="$(getconf _NPROCESSORS_ONLN)"
+[ -z "$NUM_PROC" ] && NUM_PROC=8
+
+mkdir build
+cd build
+
+%if %{with gcc}
+export NM=gcc-nm
+export AR=gcc-ar
+%else
+export NM=llvm-nm
+export AR=llvm-ar
+%endif
+
+if ! bash ../configure \
+	--prefix=%{_prefix} \
+	--libdir=%{_libdir} \
+	--sysconfdir=%{_sysconfdir} \
+	--mandir=%{_mandir} \
+%if %{with gcc}
+	--with-toolchain-type=gcc \
+%else
+	--with-toolchain-type=clang \
+%endif
+	--with-boot-jdk=$(ls -d %{_jvmdir}/java-%{oldmajor}-openjdk-* |head -n1) \
+	--with-vendor-name="OpenMandriva" \
+	--with-vendor-url="http://openmandriva.org/" \
+	--with-vendor-version-string="OpenMandriva-%{version}-%{release}" \
+	--with-debug-level=release \
+	--with-native-debug-symbols=external \
+	--enable-unlimited-crypto \
+	--with-freetype=system \
+	--with-zlib=system \
+	--with-giflib=system \
+	--with-harfbuzz=system \
+	--with-libjpeg=system \
+	--with-libpng=system \
+	--with-lcms=system \
+	--with-stdc++lib=dynamic \
+	--with-extra-cflags="$EXTRA_CFLAGS" \
+	--with-extra-cxxflags="$EXTRA_CXXFLAGS" \
+	--with-extra-ldflags="%{ldflags}" \
+	--with-num-cores="$NUM_PROC" \
+	--with-jobs="$NUM_PROC" \
+%ifarch %{x86_64}
+	--with-jvm-features=zgc \
+%endif
+	--disable-warnings-as-errors; then
+		echo "Configure failed -- see config.log:"
+		cat config.log
+		exit 1
+fi
+
+
+%build
+# YYYYYYYUUUUUCCCCCCCKKKKKK! The build process really needs more than
+# 1024 files open at the same time!
+ulimit -Sn 65536
+
+# With LTO enabled, /tmp (tmpfs) tends to run out of space.
+# Temporary LTO files for openjdk 12 easily take 50+ GB.
+# Hopefully the build directory has more free space.
+mkdir -p compilertemp
+export TMPDIR="$(pwd)/compilertemp"
+
+cd build
+# We intentionally don't use %%make_build - OpenJDK doesn't like -j at all
+make -j1 bootcycle-images all docs
+
+%install
+mkdir -p %{buildroot}%{_jvmdir}
+cp -a build/images/jdk %{buildroot}%{_jvmdir}/java-%{major}-openjdk
+ln -s java-%{major}-openjdk %{buildroot}%{_jvmdir}/jre-%{major}-openjdk
+
+%if %{with system_jdk}
+ln -s java-%{major}-openjdk %{buildroot}%{_jvmdir}/java-openjdk
+ln -s java-%{major}-openjdk %{buildroot}%{_jvmdir}/java
+ln -s java-%{major}-openjdk %{buildroot}%{_jvmdir}/jre-openjdk
+ln -s java-%{major}-openjdk %{buildroot}%{_jvmdir}/jre
+
+mkdir -p %{buildroot}%{_mandir}
+mv %{buildroot}%{_jvmdir}/java-%{major}-openjdk/man/* %{buildroot}%{_mandir}
+rmdir %{buildroot}%{_jvmdir}/java-%{major}-openjdk/man
+
+mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
+echo %{_jvmdir}/java-%{major}-openjdk/lib >%{buildroot}%{_sysconfdir}/ld.so.conf.d/java.conf
+
+mkdir -p %{buildroot}%{_sysconfdir}/profile.d
+cat >%{buildroot}%{_sysconfdir}/profile.d/90java.sh <<'EOF'
+export JAVA_HOME=%{_jvmdir}/java-%{major}-openjdk
+export PATH=$PATH:$JAVA_HOME/bin
+EOF
+cat >%{buildroot}%{_sysconfdir}/profile.d/90java.csh <<'EOF'
+setenv JAVA_HOME %{_jvmdir}/java-%{major}-openjdk
+setenv PATH ${PATH}:${JAVA_HOME}/bin
+EOF
+chmod +x %{buildroot}%{_sysconfdir}/profile.d/*.*sh
+%endif
+
+%files
+%if %{with system_jdk}
+%dir %{_jvmdir}
+%{_jvmdir}/java
+%{_jvmdir}/java-openjdk
+%{_jvmdir}/jre
+%{_jvmdir}/jre-openjdk
+%endif
+%dir %{_jvmdir}/java-%{major}-openjdk/bin
+%dir %{_jvmdir}/java-%{major}-openjdk/conf
+%dir %{_jvmdir}/java-%{major}-openjdk/jmods
+%{_jvmdir}/java-%{major}-openjdk/jmods/java.base.jmod
+%dir %{_jvmdir}/java-%{major}-openjdk/legal
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/java.base
+%dir %{_jvmdir}/java-%{major}-openjdk/lib
+%config(noreplace) %{_jvmdir}/java-%{major}-openjdk/conf/*
+%{_jvmdir}/java-%{major}-openjdk/release
+%{_jvmdir}/java-%{major}-openjdk/bin/java
+%{_jvmdir}/java-%{major}-openjdk/bin/jpackage
+%{_jvmdir}/java-%{major}-openjdk/bin/keytool
+%{_jvmdir}/java-%{major}-openjdk/bin/rmiregistry
+%{_jvmdir}/java-%{major}-openjdk/lib/classlist
+%{_jvmdir}/java-%{major}-openjdk/lib/ct.sym
+%{_jvmdir}/java-%{major}-openjdk/lib/jexec
+%{_jvmdir}/java-%{major}-openjdk/lib/jfr
+%{_jvmdir}/java-%{major}-openjdk/lib/jrt-fs.jar
+%{_jvmdir}/java-%{major}-openjdk/lib/jspawnhelper
+%{_jvmdir}/java-%{major}-openjdk/lib/jvm.cfg
+%{_jvmdir}/java-%{major}-openjdk/lib/libattach.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libawt.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libawt_headless.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libdt_socket.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libextnet.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libfontmanager.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libinstrument.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libj2gss.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libj2pcsc.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libj2pkcs11.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libjaas.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libjavajpeg.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libjava.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libjdwp.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libjimage.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libjli.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libjsig.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libjsound.so
+%{_jvmdir}/java-%{major}-openjdk/lib/liblcms.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libmanagement_agent.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libmanagement_ext.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libmanagement.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libmlib_image.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libnet.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libnio.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libprefs.so
+%{_jvmdir}/java-%{major}-openjdk/lib/librmi.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libsaproc.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libsctp.so
+%ifarch %{x86_64}
+%{_jvmdir}/java-%{major}-openjdk/lib/libsvml.so
+%endif
+%{_jvmdir}/java-%{major}-openjdk/lib/libsyslookup.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libverify.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libzip.so
+%{_jvmdir}/java-%{major}-openjdk/lib/modules
+%{_jvmdir}/java-%{major}-openjdk/lib/psfontj2d.properties
+%{_jvmdir}/java-%{major}-openjdk/lib/psfont.properties.ja
+%{_jvmdir}/java-%{major}-openjdk/lib/security
+%{_jvmdir}/java-%{major}-openjdk/lib/server
+%{_jvmdir}/java-%{major}-openjdk/lib/tzdb.dat
+%{_jvmdir}/jre-%{major}-openjdk
+%if %{with system_jdk}
+%{_mandir}/man1/java.1*
+%{_mandir}/man1/jpackage.1*
+%{_mandir}/man1/keytool.1*
+%{_mandir}/man1/rmiregistry.1*
+%{_mandir}/man1/jdeprscan.1*
+%{_mandir}/man1/jfr.1*
+%{_mandir}/man1/jhsdb.1*
+%{_mandir}/man1/jlink.1*
+%{_mandir}/man1/jmod.1*
+%{_mandir}/man1/jshell.1*
+%{_sysconfdir}/profile.d/*
+%{_sysconfdir}/ld.so.conf.d/java.conf
+%else
+%dir %{_jvmdir}/java-%{major}-openjdk/man
+%dir %{_jvmdir}/java-%{major}-openjdk/man/man1
+%{_jvmdir}/java-%{major}-openjdk/man/man1/java.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jpackage.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/keytool.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/rmiregistry.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jdeprscan.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jfr.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jhsdb.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jlink.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jmod.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jshell.1*
+%endif
+
+%files gui
+%{_jvmdir}/java-%{major}-openjdk/lib/libawt_xawt.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libjawt.so
+%{_jvmdir}/java-%{major}-openjdk/lib/libsplashscreen.so
+%{_jvmdir}/java-%{major}-openjdk/jmods/java.desktop.jmod
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/java.desktop
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.unsupported.desktop
+
+%files devel
+%{_jvmdir}/java-%{major}-openjdk/include
+%{_jvmdir}/java-%{major}-openjdk/jmods/jdk.internal.ed.jmod
+%{_jvmdir}/java-%{major}-openjdk/jmods/jdk.internal.jvmstat.jmod
+%{_jvmdir}/java-%{major}-openjdk/jmods/jdk.internal.le.jmod
+%{_jvmdir}/java-%{major}-openjdk/jmods/jdk.internal.opt.jmod
+%{_jvmdir}/java-%{major}-openjdk/jmods/jdk.internal.vm.ci.jmod
+%{_jvmdir}/java-%{major}-openjdk/jmods/jdk.internal.vm.compiler.jmod
+%{_jvmdir}/java-%{major}-openjdk/jmods/jdk.internal.vm.compiler.management.jmod
+%{_jvmdir}/java-%{major}-openjdk/jmods/jdk.internal.jvmstat.jmod
+%{_jvmdir}/java-%{major}-openjdk/bin/jar
+%{_jvmdir}/java-%{major}-openjdk/bin/jarsigner
+%{_jvmdir}/java-%{major}-openjdk/bin/javac
+%{_jvmdir}/java-%{major}-openjdk/bin/javadoc
+%{_jvmdir}/java-%{major}-openjdk/bin/javap
+%{_jvmdir}/java-%{major}-openjdk/bin/jcmd
+%{_jvmdir}/java-%{major}-openjdk/bin/jconsole
+%{_jvmdir}/java-%{major}-openjdk/bin/jdb
+%{_jvmdir}/java-%{major}-openjdk/bin/jdeprscan
+%{_jvmdir}/java-%{major}-openjdk/bin/jdeps
+%{_jvmdir}/java-%{major}-openjdk/bin/jfr
+%{_jvmdir}/java-%{major}-openjdk/bin/jhsdb
+%{_jvmdir}/java-%{major}-openjdk/bin/jimage
+%{_jvmdir}/java-%{major}-openjdk/bin/jinfo
+%{_jvmdir}/java-%{major}-openjdk/bin/jlink
+%{_jvmdir}/java-%{major}-openjdk/bin/jmap
+%{_jvmdir}/java-%{major}-openjdk/bin/jmod
+%{_jvmdir}/java-%{major}-openjdk/bin/jps
+%{_jvmdir}/java-%{major}-openjdk/bin/jrunscript
+%{_jvmdir}/java-%{major}-openjdk/bin/jshell
+%{_jvmdir}/java-%{major}-openjdk/bin/jstack
+%{_jvmdir}/java-%{major}-openjdk/bin/jstat
+%{_jvmdir}/java-%{major}-openjdk/bin/jstatd
+%{_jvmdir}/java-%{major}-openjdk/bin/serialver
+%if %{with system_jdk}
+%{_mandir}/man1/jar.1*
+%{_mandir}/man1/jarsigner.1*
+%{_mandir}/man1/javac.1*
+%{_mandir}/man1/javadoc.1*
+%{_mandir}/man1/javap.1*
+%{_mandir}/man1/jcmd.1*
+%{_mandir}/man1/jconsole.1*
+%{_mandir}/man1/jdb.1*
+%{_mandir}/man1/jdeps.1*
+%{_mandir}/man1/jinfo.1*
+%{_mandir}/man1/jmap.1*
+%{_mandir}/man1/jps.1*
+%{_mandir}/man1/jrunscript.1*
+%{_mandir}/man1/jstack.1*
+%{_mandir}/man1/jstat.1*
+%{_mandir}/man1/jstatd.1*
+%{_mandir}/man1/serialver.1*
+%else
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jar.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jarsigner.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/javac.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/javadoc.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/javap.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jcmd.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jconsole.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jdb.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jdeps.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jinfo.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jmap.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jps.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jrunscript.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jstack.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jstat.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/jstatd.1*
+%{_jvmdir}/java-%{major}-openjdk/man/man1/serialver.1*
+%endif
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.accessibility
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.attach
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.charsets
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.compiler
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.crypto.cryptoki
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.crypto.ec
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.dynalink
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.editpad
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.hotspot.agent
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.httpserver
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.incubator.foreign
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.internal.ed
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.internal.jvmstat
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.internal.le
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.internal.opt
+%ifnarch %{ix86} %{arm}
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.internal.vm.ci
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.internal.vm.compiler.management
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.internal.vm.compiler
+%endif
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jartool
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.javadoc
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jcmd
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jconsole
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jdeps
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jdi
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jdwp.agent
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jfr
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jlink
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jshell
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jsobject
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.jstatd
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.localedata
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.management.agent
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.management.jfr
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.management
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.naming.dns
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.naming.rmi
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.net
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.nio.mapmode
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.sctp
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.security.auth
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.security.jgss
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.unsupported
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.xml.dom
+%doc %{_jvmdir}/java-%{major}-openjdk/legal/jdk.zipfs
+
+%files demo
+%{_jvmdir}/java-%{major}-openjdk/demo
+
+%files source
+%{_jvmdir}/java-%{major}-openjdk/lib/src.zip
+
+%files debug
+%{_jvmdir}/java-%{major}-openjdk/bin/*.debuginfo
+%{_jvmdir}/java-%{major}-openjdk/lib/*.debuginfo
+
+%modpackage java.compiler
+%modpackage java.datatransfer
+%modpackage java.instrument
+%modpackage java.logging
+%modpackage java.management
+%modpackage java.management.rmi
+%modpackage java.naming
+%modpackage java.net.http
+%modpackage java.prefs
+%modpackage java.rmi
+%modpackage java.scripting
+%modpackage java.se
+%modpackage java.security.jgss
+%modpackage java.security.sasl
+%modpackage java.smartcardio
+%modpackage java.sql
+%modpackage java.sql.rowset
+%modpackage java.transaction.xa
+%modpackage java.xml
+%modpackage java.xml.crypto
+
+%modpackage jdk.accessibility
+%modpackage jdk.attach
+%modpackage jdk.charsets
+%modpackage jdk.compiler
+%modpackage jdk.crypto.cryptoki
+%modpackage jdk.crypto.ec
+%modpackage jdk.dynalink
+%modpackage jdk.editpad
+%modpackage jdk.hotspot.agent
+%modpackage jdk.httpserver
+%modpackage jdk.incubator.foreign
+%modpackage jdk.incubator.vector
+%modpackage jdk.jartool
+%modpackage jdk.javadoc
+%modpackage jdk.jcmd
+%modpackage jdk.jconsole
+%modpackage jdk.jdeps
+%modpackage jdk.jdi
+%modpackage jdk.jdwp.agent
+%modpackage jdk.jfr
+%modpackage jdk.jlink
+%modpackage jdk.jpackage
+%modpackage jdk.jshell
+%modpackage jdk.jsobject
+%modpackage jdk.jstatd
+%modpackage jdk.localedata
+%modpackage jdk.management.agent
+%modpackage jdk.management.jfr
+%modpackage jdk.management
+%modpackage jdk.naming.dns
+%modpackage jdk.naming.rmi
+%modpackage jdk.net
+%modpackage jdk.nio.mapmode
+%modpackage jdk.random
+%modpackage jdk.sctp
+%modpackage jdk.security.auth
+%modpackage jdk.security.jgss
+%modpackage jdk.unsupported.desktop
+%modpackage jdk.unsupported
+%modpackage jdk.xml.dom
+%modpackage jdk.zipfs
diff --git a/openjdk-13-fix-build.patch b/openjdk-13-fix-build.patch
new file mode 100644
index 0000000..41c1188
--- /dev/null
+++ b/openjdk-13-fix-build.patch
@@ -0,0 +1,12 @@
+diff -up openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c.omv~ openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c
+--- openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c.omv~	2019-09-21 10:36:54.069646376 +0200
++++ openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c	2019-09-21 10:37:15.900024315 +0200
+@@ -1438,7 +1438,7 @@ CK_VOID_PTR jMechParamToCKMechParamPtrSl
+                     (CK_X9_42_DH2_DERIVE_PARAMS_PTR) ckpParamPtr);
+             break;
+         // defined by pkcs11.h but we don't support
+-        case CKM_KEA_DERIVE: // CK_KEA_DERIVE_PARAMS
++        case CKM_KEA_KEY_DERIVE: // CK_KEA_DERIVE_PARAMS
+         case CKM_RC2_CBC: // CK_RC2_CBC_PARAMS
+         case CKM_RC2_MAC_GENERAL: // CK_RC2_MAC_GENERAL_PARAMS
+         case CKM_RC5_ECB: // CK_RC5_PARAMS
diff --git a/openjdk-15-nss-3.57.patch b/openjdk-15-nss-3.57.patch
new file mode 100644
index 0000000..bc9d5e6
--- /dev/null
+++ b/openjdk-15-nss-3.57.patch
@@ -0,0 +1,24 @@
+diff -up openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c.omv~ openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c
+--- openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c.omv~	2020-10-19 16:01:54.532719666 +0200
++++ openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c	2020-10-19 16:02:06.560871871 +0200
+@@ -1471,7 +1471,7 @@ CK_VOID_PTR jMechParamToCKMechParamPtrSl
+             ckpParamPtr = jX942Dh2DeriveParamToCKX942Dh2DeriveParamPtr(env, jParam, ckpLength);
+             break;
+         // defined by pkcs11.h but we don't support
+-        case CKM_KEA_DERIVE: // CK_KEA_DERIVE_PARAMS
++        case CKM_KEA_KEY_DERIVE: // CK_KEA_DERIVE_PARAMS
+         case CKM_RC2_CBC: // CK_RC2_CBC_PARAMS
+         case CKM_RC2_MAC_GENERAL: // CK_RC2_MAC_GENERAL_PARAMS
+         case CKM_RC5_ECB: // CK_RC5_PARAMS
+diff -up openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c.omv~ openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c
+--- openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c.omv~	2020-10-19 16:02:41.622315525 +0200
++++ openjdk/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c	2020-10-19 16:06:38.215308758 +0200
+@@ -381,7 +381,7 @@ void freeCKMechanismPtr(CK_MECHANISM_PTR
+                  case CKM_TLS_MAC:
+                  case CKM_AES_CTR:
+                  case CKM_RSA_PKCS_PSS:
+-                 case CKM_CAMELLIA_CTR:
++                 //case CKM_CAMELLIA_CTR: // FIXME gone in nss 3.56 -- does anything replace this?
+                      // params do not contain pointers
+                      break;
+                  default:
diff --git a/openjdk-16-glibc-2.34.patch b/openjdk-16-glibc-2.34.patch
new file mode 100644
index 0000000..b7c4f3c
--- /dev/null
+++ b/openjdk-16-glibc-2.34.patch
@@ -0,0 +1,14 @@
+diff -up openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c.8~ openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c
+--- openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c.8~	2021-08-25 22:18:29.985273769 +0200
++++ openjdk/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c	2021-08-25 22:19:22.321395441 +0200
+@@ -68,7 +68,9 @@ static void handler(int sig, siginfo_t *
+ }
+ 
+ void set_signal_handler() {
+-  static char altstack[SIGSTKSZ];
++  static char *altstack=(char*)NULL;
++
++  if(!altstack) altstack=(char*)malloc(SIGSTKSZ);
+ 
+   stack_t ss = {
+     .ss_size = SIGSTKSZ,
diff --git a/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch b/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
new file mode 100644
index 0000000..4efbe9a
--- /dev/null
+++ b/pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
@@ -0,0 +1,88 @@
+
+# HG changeset patch
+# User andrew
+# Date 1478057514 0
+# Node ID 1c4d5cb2096ae55106111da200b0bcad304f650c
+# Parent  3d53f19b48384e5252f4ec8891f7a3a82d77af2a
+PR3183: Support Fedora/RHEL system crypto policy
+diff -r 3d53f19b4838 -r 1c4d5cb2096a src/java.base/share/classes/java/security/Security.java
+--- a/src/java.base/share/classes/java/security/Security.java	Wed Oct 26 03:51:39 2016 +0100
++++ b/src/java.base/share/classes/java/security/Security.java	Wed Nov 02 03:31:54 2016 +0000
+@@ -43,6 +43,9 @@
+  * implementation-specific location, which is typically the properties file
+  * {@code conf/security/java.security} in the Java installation directory.
+  *
++ * <p>Additional default values of security properties are read from a
++ * system-specific location, if available.</p>
++ *
+  * @author Benjamin Renaud
+  * @since 1.1
+  */
+@@ -52,6 +55,10 @@
+     private static final Debug sdebug =
+                         Debug.getInstance("properties");
+ 
++    /* System property file*/
++    private static final String SYSTEM_PROPERTIES =
++        "/etc/crypto-policies/back-ends/java.config";
++
+     /* The java.security properties */
+     private static Properties props;
+ 
+@@ -93,6 +100,7 @@
+                 if (sdebug != null) {
+                     sdebug.println("reading security properties file: " +
+                                 propFile);
++                    sdebug.println(props.toString());
+                 }
+             } catch (IOException e) {
+                 if (sdebug != null) {
+@@ -114,6 +122,31 @@
+         }
+ 
+         if ("true".equalsIgnoreCase(props.getProperty
++                ("security.useSystemPropertiesFile"))) {
++
++            // now load the system file, if it exists, so its values
++            // will win if they conflict with the earlier values
++            try (BufferedInputStream bis =
++                 new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
++                props.load(bis);
++                loadedProps = true;
++
++                if (sdebug != null) {
++                    sdebug.println("reading system security properties file " +
++                                   SYSTEM_PROPERTIES);
++                    sdebug.println(props.toString());
++                }
++            } catch (IOException e) {
++                if (sdebug != null) {
++                    sdebug.println
++                        ("unable to load security properties from " +
++                         SYSTEM_PROPERTIES);
++                    e.printStackTrace();
++                }
++            }
++        }
++
++        if ("true".equalsIgnoreCase(props.getProperty
+                 ("security.overridePropertiesFile"))) {
+ 
+             String extraPropFile = System.getProperty
+diff -r 3d53f19b4838 -r 1c4d5cb2096a src/java.base/share/conf/security/java.security
+--- a/src/java.base/share/conf/security/java.security	Wed Oct 26 03:51:39 2016 +0100
++++ b/src/java.base/share/conf/security/java.security	Wed Nov 02 03:31:54 2016 +0000
+@@ -276,6 +276,13 @@
+ security.overridePropertiesFile=true
+ 
+ #
++# Determines whether this properties file will be appended to
++# using the system properties file stored at
++# /etc/crypto-policies/back-ends/java.config
++#
++security.useSystemPropertiesFile=true
++
++#
+ # Determines the default key and trust manager factory algorithms for
+ # the javax.net.ssl package.
+ #
diff --git a/rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch b/rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
new file mode 100644
index 0000000..3042186
--- /dev/null
+++ b/rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
@@ -0,0 +1,16 @@
+diff -r 618ad1237e73 src/java.desktop/share/classes/java/awt/Toolkit.java
+--- a/src/java.desktop/share/classes/java/awt/Toolkit.java	Thu Jun 13 19:37:49 2019 +0200
++++ b/src/java.desktop/share/classes/java/awt/Toolkit.java	Thu Jul 04 10:35:42 2019 +0200
+@@ -595,7 +595,11 @@
+                 toolkit = new HeadlessToolkit(toolkit);
+             }
+             if (!GraphicsEnvironment.isHeadless()) {
+-                loadAssistiveTechnologies();
++                try {
++                    loadAssistiveTechnologies();
++                } catch (AWTError error) {
++                    // ignore silently
++                }
+             }
+         }
+         return toolkit;
diff --git a/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch b/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
new file mode 100644
index 0000000..5ae3b00
--- /dev/null
+++ b/rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
@@ -0,0 +1,11 @@
+diff -up openjdk/src/java.base/share/conf/security/java.security.1~ openjdk/src/java.base/share/conf/security/java.security
+--- openjdk/src/java.base/share/conf/security/java.security.1~	2020-10-19 10:54:38.224370673 +0200
++++ openjdk/src/java.base/share/conf/security/java.security	2020-10-19 10:56:08.598815470 +0200
+@@ -78,6 +78,7 @@ security.provider.tbd=SunMSCAPI
+ security.provider.tbd=Apple
+ #endif
+ security.provider.tbd=SunPKCS11
++#security.provider.tbd=SunPKCS11 ${java.home}/lib/security/nss.cfg
+ 
+ #
+ # A list of preferred providers for specific algorithms. These providers will
diff --git a/rh1648644-java_access_bridge_privileged_security.patch b/rh1648644-java_access_bridge_privileged_security.patch
new file mode 100644
index 0000000..53026ad
--- /dev/null
+++ b/rh1648644-java_access_bridge_privileged_security.patch
@@ -0,0 +1,20 @@
+--- openjdk/src/java.base/share/conf/security/java.security
++++ openjdk/src/java.base/share/conf/security/java.security
+@@ -304,6 +304,8 @@
+ #
+ package.access=sun.misc.,\
+                sun.reflect.,\
++               org.GNOME.Accessibility.,\
++               org.GNOME.Bonobo.,\
+ 
+ #
+ # List of comma-separated packages that start with or equal this string
+@@ -316,6 +318,8 @@
+ #
+ package.definition=sun.misc.,\
+                    sun.reflect.,\
++                   org.GNOME.Accessibility.,\
++                   org.GNOME.Bonobo.,\
+ 
+ #
+ # Determines whether this properties file can be appended to
diff --git a/rh649512-remove_uses_of_far_in_jpeg_libjpeg_turbo_1_4_compat_for_jdk10_and_up.patch b/rh649512-remove_uses_of_far_in_jpeg_libjpeg_turbo_1_4_compat_for_jdk10_and_up.patch
new file mode 100644
index 0000000..1b706a1
--- /dev/null
+++ b/rh649512-remove_uses_of_far_in_jpeg_libjpeg_turbo_1_4_compat_for_jdk10_and_up.patch
@@ -0,0 +1,19 @@
+Remove uses of FAR in jpeg code
+
+Upstream libjpeg-trubo removed the (empty) FAR macro:
+http://sourceforge.net/p/libjpeg-turbo/code/1312/
+
+Adjust our code to not use the undefined FAR macro anymore.
+
+diff --git a/jdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c b/jdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
+--- openjdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
++++ openjdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
+@@ -1385,7 +1385,7 @@
+     /* and fill it in */
+     dst_ptr = icc_data;
+     for (seq_no = first; seq_no < last; seq_no++) {
+-        JOCTET FAR *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
++        JOCTET *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
+         unsigned int length =
+             icc_markers[seq_no]->data_length - ICC_OVERHEAD_LEN;
+ 
Not Available

robxu9 [@T] gmail.comclearing (potentially) old builds1093d 17hrs