public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/java-latest-openjdk-portable] epel9: Merge branch 'rawhide' into epel10
@ 2026-07-24 16:25 Jiri Vanek
  0 siblings, 0 replies; only message in thread
From: Jiri Vanek @ 2026-07-24 16:25 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/java-latest-openjdk-portable
Branch : epel9
Commit : dcfe79fb52801f605c8071959c221af65eec47ce
Author : Jiri Vanek <jvanek@redhat.com>
Date   : 2026-07-24T18:22:02+02:00
Stats  : +365/-313 in 7 file(s)
URL    : https://src.fedoraproject.org/rpms/java-latest-openjdk-portable/c/dcfe79fb52801f605c8071959c221af65eec47ce?branch=epel9

Log:
Merge branch 'rawhide' into epel10

---
diff --git a/.gitignore b/.gitignore
index 24ccc69..be527d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -62,3 +62,4 @@
 /openjdk-26+32-ea.tar.xz
 /openjdk-26+35.tar.xz
 /openjdk-26.0.1+8.tar.xz
+/openjdk-26.0.2+10.tar.xz

diff --git a/NEWS b/NEWS
index f1a56a6..c1c40a9 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,197 @@ JDK-X  - https://bugs.openjdk.java.net/browse/JDK-X
 CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
 JEP-XYZ: https://openjdk.org/jeps/XYZ
 
+New in release OpenJDK 26.0.2 (2026-07-21):
+===========================================
+* CVEs
+  - CVE-2026-46968
+  - CVE-2026-46917
+  - CVE-2026-47010
+  - CVE-2026-47021
+  - CVE-2026-47027
+  - CVE-2026-60147
+  - CVE-2026-47059
+  - CVE-2026-47063
+  - CVE-2026-41254
+* Changes
+  - JDK-8068378: [TEST_BUG]The java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java instruction need to update
+  - JDK-8170896: TEST_BUG: java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval.java failed with unreferenced() not invoked after 20.0 seconds
+  - JDK-8278102: containers/docker/TestJcmd.java failed with "RuntimeException: Could not find specified process"
+  - JDK-8279196: Test: jdk/jfr/event/gc/stacktrace/TestG1OldAllocationPendingStackTrace.java timed out
+  - JDK-8286258: [Accessibility,macOS,VoiceOver] VoiceOver reads the spinner value wrong and sometime partially
+  - JDK-8297191: [macos] Printing a page range with starting page > 1 results in missing pages
+  - JDK-8319326: GC: Make TestParallelRefProc use createTestJavaProcessBuilder
+  - JDK-8323792: ThreadSnapshot::initialize can cause assert in Thread::check_for_dangling_thread_pointer (possibility of dangling Thread pointer)
+  - JDK-8344345: test/hotspot/gtest/x86/x86-asmtest.py has trailing whitespaces
+  - JDK-8346154: [XWayland] Some tests fail intermittently in the CI, but not locally
+  - JDK-8347938: Add Support for the Latest ML-KEM and ML-DSA Private Key Encodings
+  - JDK-8359433: The final modifier on Windows L&F internal UI classes prevents extending them in apps
+  - JDK-8360160: ubuntu-22-04 machine is failing client tests
+  - JDK-8364373: Transform Affine transformations
+  - JDK-8366138: Parse::jump_switch_ranges() could cause stack overflow when compiling huge switch statement
+  - JDK-8367463: Improved Arena allocations
+  - JDK-8367994: test/jdk/sun/security/pkcs11/Signature/ tests pass when they should skip
+  - JDK-8368041: Enhance TLS certificate handling
+  - JDK-8368524: Tests are skipped and shown as passed in test/jdk/sun/security/pkcs11/Cipher/KeyWrap
+  - JDK-8368977: Provide clear naming for AVX10 identifiers
+  - JDK-8369561: sun/java2d/OpenGL/DrawBitmaskImage.java#id0: Incorrect color for first pixel (actual=ff000000)
+  - JDK-8369950: TLS connection to IPv6 address fails with BCJSSE due to IllegalArgumentException
+  - JDK-8370502: C2: segfault while adding node to IGVN worklist
+  - JDK-8370995: Enhance ZipFile usage
+  - JDK-8371420: Still sporadic failures of gc/TestAlwaysPreTouchBehavior.java#<gcname> on Linux after JDK-8359104
+  - JDK-8371503: RETAIN_IMAGE_AFTER_TEST do not work for some tests
+  - JDK-8372351: Add 2 WISeKey roots
+  - JDK-8372377: Test java/io/File/GetXSpace.java failed: The system cannot find the path specified
+  - JDK-8372661: Add a null-safe static factory method to "jdk.test.lib.net.SimpleSSLContext"
+  - JDK-8373021: aarch64: MacroAssembler::arrays_equals reads out of bounds
+  - JDK-8373101: JdkClient and JdkServer test classes ignore namedGroups field
+  - JDK-8373120: Virtual thread stuck in BLOCKED state
+  - JDK-8373239: Test java/awt/print/PrinterJob/PageRanges.java fails with incorrect selection of printed pages
+  - JDK-8373275: Improve DTLS handshaking
+  - JDK-8373290: Update FreeType to 2.14.1
+  - JDK-8373362: Http3TestServer should not log an exception stack trace when it is stopping normally
+  - JDK-8373537: Migrate "test/jdk/com/sun/net/httpserver/" to null-safe "SimpleSSLContext" methods
+  - JDK-8373623: Refactor Serialization tests for Records to JUnit
+  - JDK-8373650: Test "javax/swing/JMenuItem/6458123/ManualBug6458123.java" fails because the check icons are not aligned properly as expected
+  - JDK-8373690: Unexpected Keystore message using jdk.crypto.disabledAlgorithms
+  - JDK-8373704: Improve "SocketException: Protocol family unavailable" message
+  - JDK-8373716: Refactor further java/util tests from TestNG to JUnit
+  - JDK-8373718: jdk/internal/misc/VM/RuntimeArguments.java test fails in Virtual threads mode
+  - JDK-8373796: Refactor java/net/httpclient/ThrowingPublishers*.java tests to use JUnit5
+  - JDK-8373808: Refactor java/net/httpclient qpack and hpack tests to use JUnit
+  - JDK-8373829: Refactor test/jdk/java/time/tck tests to use JUnit over TestNG
+  - JDK-8373830: Refactor test/jdk/java/time/test tests to use JUnit over TestNG
+  - JDK-8373847: Test javax/swing/JMenuItem/MenuItemTest/bug6197830.java failed because The test case automatically fails when clicking any items in the “Nothing” menu in all four windows (Left-to-right)-Menu Item Test and (Right-to-left)-Menu Item Test
+  - JDK-8373866: Refactor java/net/httpclient/ThrowingSubscribers*.java tests to use JUnit5
+  - JDK-8373869: Refactor java/net/httpclient/ThrowingPushPromises*.java tests to use JUnit5
+  - JDK-8373893: Refactor networking http server tests to use JUnit
+  - JDK-8373913: Refactor serialization tests to use JUnit
+  - JDK-8373928: 4 Dangling pointer defect groups in java.c
+  - JDK-8373931: Test javax/sound/sampled/Clip/AutoCloseTimeCheck.java timed out
+  - JDK-8373944: ObjectMonitor::ExitOnSuspend can call java_lang_VirtualThread::set_onWaitingList() while in safepoint
+  - JDK-8374043: C2:  assert(_base >= VectorMask && _base <= VectorZ) failed: Not a Vector
+  - JDK-8374051: Incorrect parameterized testing of exceptions in AbstractDateTimeTest.java
+  - JDK-8374056: RISC-V: Fix argument passing for the RiscvFlushIcache::flush
+  - JDK-8374058: Enhance JPEG handling
+  - JDK-8374178: Missing include in systemDictionary.cpp after JDK-8365526
+  - JDK-8374304: MultiResolutionSplashTest.java fails in CI: "Image with wrong resolution is used for splash screen!"
+  - JDK-8374322: TestMemoryWithSubgroups.java fails Permission denied
+  - JDK-8374343: Fix SIGSEGV when lib/modules is unreadable
+  - JDK-8374371: Failed assertion in G1HeapRegion gtest
+  - JDK-8374506: Incorrect positioning of arrow icon in parent JMenu in Windows L&F
+  - JDK-8374557: Enhance TLS connection handling
+  - JDK-8374711: Hotspot runtime/CommandLine/OptionsValidation/TestOptionsWithRanges fails without printing the option name
+  - JDK-8374727: Audio configuration Platform class - use nio for getting endianness of the underlying platform
+  - JDK-8374744: Enable dumping of APX EGPRs (R16–R31) in JVM fatal error logs
+  - JDK-8374769: PPC: MASM::pop_cont_fastpath() should reset _cont_fastpath if SP == _cont_fastpath
+  - JDK-8374888: Implement internal test cache to help UserIterCount test performance
+  - JDK-8374903: C2 VectorAPI: assert(vbox->as_Phi()->region() == vect->as_Phi()->region()) failed
+  - JDK-8374998: Failing os::write - remove bad file
+  - JDK-8375010: C2 VectorAPI: assert(vbox->is_CheckCastPP()) failed: should be expanded
+  - JDK-8375057: Update HarfBuzz to 12.3.2
+  - JDK-8375065: Update LCMS to 2.18
+  - JDK-8375231: Refactor util/ServiceLoader tests to use JUnit
+  - JDK-8375232: Refactor util/StringJoiner tests to use JUnit
+  - JDK-8375233: Refactor util/Vector tests to use JUnit
+  - JDK-8375294: (fs) Files.copy can fail with EOPNOTSUPP when copy_file_range not supported
+  - JDK-8375311: Some builds are missing debug helpers
+  - JDK-8375598: VM crashes with "assert((labs(val) & 0xFFFFFFFF00000000) == 0 || dest == (address)-1) failed: must be 32bit offset or -1" when using too high value for NonNMethodCodeHeapSize
+  - JDK-8375742: Test java/lang/invoke/MethodHandleProxies/Driver.java does not run Unnamed.java
+  - JDK-8375999: com/sun/jndi/ldap/LdapPoolTimeoutTest.java fails sporadically on Windows
+  - JDK-8376031: HttpsURLConnection.getServerCertificates() throws "java.lang.IllegalStateException: connection not yet open" for the HEAD method
+  - JDK-8376104: C2 crashes in PhiNode::Ideal(PhaseGVN*, bool) accessing NULL pointer
+  - JDK-8376151: Test javax/swing/JFileChooser/4966171/bug4966171.java is failing with OOME
+  - JDK-8376152: Test javax/sound/sampled/Clip/bug5070081.java timed out then completed
+  - JDK-8376185: NoSuchFieldError thrown after a record with type annotation retransformed
+  - JDK-8376233: Clean up code in Desktop native peer
+  - JDK-8376308: java/net/httpclient/CancelRequestTest.java fails intermittently with "Expected CancellationException not received"
+  - JDK-8376402: Dependencies::print_statistics() and AbstractClassHierarchyWalker::print_statistics() are not called from PRODUCT code
+  - JDK-8376479: Http3 test server thread deadlock in ThrowingPublishersInRequest
+  - JDK-8376485: Update the release version and date for OpenJDK 26u
+  - JDK-8376684: Compile OpenJDK in headless mode without required X11 libraries
+  - JDK-8376688: Gtest os.attempt_reserve_memory_between_small_range_fill_hole_vm fails on AIX 7.3
+  - JDK-8376889: Enhance JfrRecorder::on_create_vm_3() assert output
+  - JDK-8376956: Add JVMTI phase entering/setting to hserr event log
+  - JDK-8377158: Enhance XBM image support
+  - JDK-8377167: javax/imageio/ReadAbortTest.java throw NPE when x11 unavailable
+  - JDK-8377334: Test framework used by langtools regression tests can produce false positives
+  - JDK-8377347: jdk/jfr/event/gc/detailed/TestZAllocationStallEvent.java intermittent OOME
+  - JDK-8377461: Add ZipFile test for incorrect number of entries reported in ENDTOT
+  - JDK-8377498: Improve HttpServer handling
+  - JDK-8377509: Add licenses for gcc 14.2.0
+  - JDK-8377512: AOT cache creation fails with invalid native pointer
+  - JDK-8377526: Update Libpng to 1.6.55
+  - JDK-8377534: Test java/awt/print/PrinterJob/PrintNullString.java fails with FAILURE: No IAE for empty iterator, int
+  - JDK-8377602: Create automated test for PageRange
+  - JDK-8377727: Ghost caret and focus appear in non‑editable text fields
+  - JDK-8377777: Improve logging when rejecting assets from the AOT archive
+  - JDK-8377833: Enhance Jar file processing
+  - JDK-8377898: Hotspot build on AIX with unused-functions warning reports some unused functions
+  - JDK-8377905: gcc.md included with every build
+  - JDK-8377910: Minor cleanup of java/io/FileDescriptor/Sharing.java
+  - JDK-8377932: AOT cache is not rejected when JAR file has changed
+  - JDK-8377944: LowMemoryTest2.java#id1 intermittent fails OOME: Metaspace
+  - JDK-8377949: TestZRelocationSetEvent.java intermittent fails OOME
+  - JDK-8378113: Add sun/java2d/OpenGL/ScaleParamsOOB.java to the ProblemList.txt file
+  - JDK-8378201: [OGL] glXMakeContextCurrent() drops the buffers of the unbound drawable
+  - JDK-8378218: MSYS2 reports cygwin triplet causing bash configure failure
+  - JDK-8378353: [PPC64] StringCoding.countPositives causes errors when the length is not a proper 32 bit int
+  - JDK-8378417: Printing All pages results in NPE for 1.1 PrintJob
+  - JDK-8378561: Mark gc/shenandoah/compiler/TestLinkToNativeRBP.java as /native
+  - JDK-8378623: Use unique font names in FormatCharAdvanceTest
+  - JDK-8378631: Update Zlib Data Compression Library to Version 1.3.2
+  - JDK-8378687: Improve delegation of HttpURLConnection
+  - JDK-8378713: C2: performance regression due to missing constant folding for Math.pow()
+  - JDK-8378727: [macOS] Missing dispatch_release for semaphores in CDesktopPeer
+  - JDK-8378764: fileStream::fileSize() fails for >2GB files on Windows
+  - JDK-8378823: AIX build fails after zlib updated by JDK-8378631
+  - JDK-8378836: Enable linktime-gc by default on Linux ppc64le
+  - JDK-8378871: CPU feature flags are not properly set in vm_version_windows_aarch64.cpp
+  - JDK-8378878: Refactor java/nio/channels/AsynchronousSocketChannel test to use JUnit
+  - JDK-8379035: (tz) Update Timezone Data to 2026a
+  - JDK-8379158: Update FreeType to 2.14.2
+  - JDK-8379202: Support linktime-gc on Linux with clang
+  - JDK-8379256: Update GIFlib to 6.1.1
+  - JDK-8379416: AIX build fails if system (not GNU) date tool is in PATH
+  - JDK-8379425: Windows and macOS should not allow unsupported headless-only build
+  - JDK-8379457: Test EATests.java#id0 ERROR: monitor list errors: error_cnt=1
+  - JDK-8379499: [AIX] headless-only build of libjawt.so fails
+  - JDK-8379516: Adjust JVM debug helper exports
+  - JDK-8379952: Revert JDK-8365711: Restore protected visibility of menuBarHeight and hotTrackingOn
+  - JDK-8379967: (process) Improve ProcessBuilder error reporting
+  - JDK-8380011: Path-to-gcroots search should not trigger stack overflows
+  - JDK-8380078: Update GIFlib to 6.1.2
+  - JDK-8380222: Refactor test/jdk/java/lang/Character TestNG tests to JUnit
+  - JDK-8380409: JVM crashes when -XX:AOTMode=create uses app.aotconf generated with JVMTI agent
+  - JDK-8380474: Crash SEGV in ThreadIdTable::lazy_initialize  after JDK-8323792
+  - JDK-8380565: PPC64: deoptimization stub should save vector registers
+  - JDK-8380663: Update jcmd man page to include AOT.end_recording diagnostic command
+  - JDK-8380672: Improve certification checking
+  - JDK-8380947: Add pull request template
+  - JDK-8380959: Update Libpng to 1.6.56
+  - JDK-8381039: Enhance AWT ImagingLib
+  - JDK-8381049: Enhance Jar handling
+  - JDK-8381205: GHA: Upgrade Node.js 20 to 24
+  - JDK-8381315: compiler/vectorapi/TestVectorReallocation.java fails with -XX:UseAVX=1 after JDK-8380565
+  - JDK-8381519: Enhance Der Value Handling
+  - JDK-8381596: Adjust checks which use supports_ht() on x86 for hybrid CPUs
+  - JDK-8381670: Revert the changes to GZIPInputStream related to InputStream.available() usage
+  - JDK-8381745: Ensure Modal/FileDialog tests explicitly reference Asserts class
+  - JDK-8381796: Enhance Certificate parsing
+  - JDK-8381937: Make exceptions in Java_sun_security_mscapi_CKeyPairGenerator generateCKeyPair more specific
+  - JDK-8382020: Time Zone Abbreviation Not Localized for Non-English Locales
+  - JDK-8382047: Update Libpng to 1.6.57
+  - JDK-8382204: Revert EA option for build promotion
+  - JDK-8382242: JFR: Metadata reconstruction invalidates ConstantMap for java.lang.String
+  - JDK-8382516: Change milestone to fcs for all releases
+  - JDK-8382740: JFR: Disable jdk.OldObjectSample event for generational ZGC
+  - JDK-8383175: (tz) Update Timezone Data to 2026b
+  - JDK-8383354: Update LCMS to 2.19.1
+  - JDK-8383473: Follow on from tzdata2026b time change to include temporary hack BC time change
+  - JDK-8383867: File.getCanonicalPath drops backslash from UNC path with directory junctions
+  - JDK-8385076: Follow-on fix for Improve certification checking
+  - JDK-8385665: Address possible oversized errors in Math.pow
+
 New in release OpenJDK 26.0.1 (2026-04-21):
 ===========================================
 * Changes

diff --git a/TestTranslations.java b/TestTranslations.java
index 1b02c06..9e4002a 100644
--- a/TestTranslations.java
+++ b/TestTranslations.java
@@ -1,5 +1,5 @@
 /* TestTranslations -- Ensure translations are available for new timezones
-   Copyright (C) 2022 Red Hat, Inc.
+   Copyright (C) 2026 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
@@ -50,25 +50,38 @@ public class TestTranslations {
                                           "Mountain Daylight Time", "MDT", "MDT",
                                           "Mountain Time", "MT", "MT"});
         map.put(Locale.FRANCE, new String[] { "heure normale des Rocheuses", "UTC\u221207:00", "MST",
-                                              "heure d\u2019\u00e9t\u00e9 des Rocheuses", "UTC\u221206:00", "MST",
-                                              "heure des Rocheuses", "UTC\u221207:00", "MST"});
+                                              "heure d\u2019\u00e9t\u00e9 des Rocheuses", "UTC\u221206:00", "MDT",
+                                              "heure des Rocheuses", "UTC\u221207:00", "MT"});
         map.put(Locale.GERMANY, new String[] { "Rocky-Mountains-Normalzeit", "GMT-07:00", "MST",
-                                               "Rocky-Mountains-Sommerzeit", "GMT-06:00", "MST",
-                                               "Rocky-Mountains-Zeit", "GMT-07:00", "MST"});
+                                               "Rocky-Mountains-Sommerzeit", "GMT-06:00", "MDT",
+                                               "Rocky-Mountains-Zeit", "GMT-07:00", "MT"});
         CIUDAD_JUAREZ = Collections.unmodifiableMap(map);
     }
 
 
     public static void main(String[] args) {
-        if (args.length < 1) {
-            System.err.println("Test must be started with the name of the locale provider.");
-            System.exit(1);
+        boolean debug = false;
+
+        if (args.length > 0) {
+            debug = Boolean.parseBoolean(args[0]);
         }
 
+        System.err.printf("Debugging: %s\n", debug);
+
+        testZoneStrings(debug);
+
+        testZone(KYIV,
+                 new String[] { "Europe/Kiev", "Europe/Kyiv", "Europe/Uzhgorod", "Europe/Zaporozhye" });
+        testZone(CIUDAD_JUAREZ,
+                 new String[] { "America/Cambridge_Bay", "America/Ciudad_Juarez" });
+    }
+
+    private static void testZoneStrings(final boolean debug) {
         System.out.println("Checking sanity of full zone string set...");
         boolean invalid = Arrays.stream(Locale.getAvailableLocales())
-            .peek(l -> System.out.println("Locale: " + l))
+            .peek(l -> System.out.printf(debug ? "Locale: %s\n" : "", l))
             .map(l -> DateFormatSymbols.getInstance(l).getZoneStrings())
+            .peek(df -> System.out.printf(debug ? "Zone string size: %s\n" : "", df.length))
             .flatMap(zs -> Arrays.stream(zs))
             .flatMap(names -> Arrays.stream(names))
             .filter(name -> Objects.isNull(name) || name.isEmpty())
@@ -78,15 +91,9 @@ public class TestTranslations {
             System.err.println("Zone string for a locale returned null or empty string");
             System.exit(2);
         }
-
-        String localeProvider = args[0];
-        testZone(localeProvider, KYIV,
-                 new String[] { "Europe/Kiev", "Europe/Kyiv", "Europe/Uzhgorod", "Europe/Zaporozhye" });
-        testZone(localeProvider, CIUDAD_JUAREZ,
-                 new String[] { "America/Cambridge_Bay", "America/Ciudad_Juarez" });
     }
 
-    private static void testZone(String localeProvider, Map<Locale,String[]> exp, String[] ids) {
+    private static void testZone(Map<Locale,String[]> exp, String[] ids) {
         for (Locale l : exp.keySet()) {
             String[] expected = exp.get(l);
             System.out.printf("Expected values for %s are %s\n", l, Arrays.toString(expected));
@@ -97,16 +104,11 @@ public class TestTranslations {
 
                 System.out.printf("Checking locale %s for %s...\n", l, id);
 
-                if ("JRE".equals(localeProvider) || "CLDR".equals(localeProvider)) {
-                    expectedShortStd = expected[2];
-                    expectedShortDST = expected[5];
-                    expectedShortGen = expected[8];
-                } else {
-                    System.err.printf("Invalid locale provider %s\n", localeProvider);
-                    System.exit(3);
-                }
-                System.out.printf("Locale Provider is %s, using short values %s, %s and %s\n",
-                                  localeProvider, expectedShortStd, expectedShortDST, expectedShortGen);
+                expectedShortStd = expected[2];
+                expectedShortDST = expected[5];
+                expectedShortGen = expected[8];
+                System.out.printf("Using short values %s, %s and %s\n",
+                                  expectedShortStd, expectedShortDST, expectedShortGen);
 
                 String longStd = TimeZone.getTimeZone(id).getDisplayName(false, TimeZone.LONG, l);
                 String shortStd = TimeZone.getTimeZone(id).getDisplayName(false, TimeZone.SHORT, l);

diff --git a/java-latest-openjdk-portable.spec b/java-latest-openjdk-portable.spec
index 63775dc..181be70 100644
--- a/java-latest-openjdk-portable.spec
+++ b/java-latest-openjdk-portable.spec
@@ -1,4 +1,101 @@
-# debug_package %%{nil} is portable-jdks specific
+# New Version-String scheme-style defines
+%global featurever 26
+%global interimver 0
+%global updatever 2
+%global patchver 0
+%global buildver        10
+%global portablerelease 2
+%global rpmrelease 0
+
+# Define IcedTea version used for SystemTap tapsets and desktop file
+%global icedteaver      6.0.0pre00-c848b93a8598
+# Define current Git revision for the FIPS support patches
+%global fipsver 57722aab802
+# Define JDK versions
+%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver}
+%global javaver         %{featurever}
+# Strip up to 6 trailing zeros in newjavaver, as the JDK does, to get the correct version used in filenames
+%global filever %(svn=%{newjavaver}; for i in 1 2 3 4 5 6 ; do svn=${svn%%.0} ; done; echo ${svn})
+# The tag used to create the OpenJDK tarball
+%global vcstag jdk-%{filever}+%{buildver}%{?tagsuffix:-%{tagsuffix}}
+
+# Standard JPackage naming and versioning defines
+%global origin          openjdk
+%global origin_nice     OpenJDK
+%global top_level_dir_name   %{vcstag}
+%global top_level_dir_name_backup %{top_level_dir_name}-backup
+# Define an optional suffix for the OS this package is built on
+%if 0%{?rhel} == 7
+%global pkgos rhel7
+%endif
+
+# Define milestone (EA for pre-releases, GA for releases)
+# Release will be (where N is usually a number starting at 1):
+# - 0.N.ea<dist> for EA releases,
+# - N<dist> for GA releases
+%global is_ga           1
+%if %{is_ga}
+%global build_type GA
+%global ea_designator ""
+%global ea_designator_zip %{nil}
+%global extraver %{nil}
+%global eaprefix %{nil}
+%else
+%global build_type EA
+%global ea_designator ea
+%global ea_designator_zip -%{ea_designator}
+%global extraver .%{ea_designator}
+%global eaprefix 0.
+%endif
+
+%global compatiblename  java-%{javaver}-%{origin}
+
+Name:    java-latest-%{origin}-portable%{?pkgos:-%{pkgos}}
+Version: %{newjavaver}.%{buildver}
+# This package needs `.rolling` as part of Release so as to not conflict on install with
+# java-X-openjdk. I.e. when latest rolling release is also an LTS release packaged as
+# java-X-openjdk. See: https://bugzilla.redhat.com/show_bug.cgi?id=1647298
+Release: %{?eaprefix}%{rpmrelease}%{?extraver}.rolling%{?dist}
+
+%global fullversion     %{compatiblename}-%{version}-%{release}
+
+# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
+# and this change was brought into RHEL-4. java-1.5.0-ibm packages
+# also included the epoch in their virtual provides. This created a
+# situation where in-the-wild java-1.5.0-ibm packages provided "java =
+# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is
+# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be
+# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in
+# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual
+# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
+Epoch:   1
+Summary: %{origin_nice} %{featurever} Runtime Environment portable edition
+# Groups are only used up to RHEL 8 and on Fedora versions prior to F30
+%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
+Group:   Development/Languages
+%endif
+
+# HotSpot code is licensed under GPLv2
+# JDK library code is licensed under GPLv2 with the Classpath exception
+# The Apache license is used in code taken from Apache projects (primarily xalan & xerces)
+# DOM levels 2 & 3 and the XML digital signature schemas are licensed under the W3C Software License
+# The JSR166 concurrency code is in the public domain
+# The BSD and MIT licenses are used for a number of third-party libraries (see ADDITIONAL_LICENSE_INFO)
+# The OpenJDK source tree includes:
+# - JPEG library (IJG), zlib & libpng (zlib), giflib (MIT), harfbuzz (ISC),
+# - freetype (FTL), jline (BSD) and LCMS (MIT)
+# - jquery (MIT), jdk.crypto.cryptoki PKCS 11 wrapper (RSA)
+# - public_suffix_list.dat from publicsuffix.org (MPLv2.0)
+# The test code includes copies of NSS under the Mozilla Public License v2.0
+# The PCSClite headers are under a BSD with advertising license
+# The elliptic curve cryptography (ECC) source code is licensed under the LGPLv2.1 or any later version
+# Automatically converted from old format: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C and zlib and ISC and FTL and RSA - review is highly recommended.
+License:  Apache-1.1 AND Apache-2.0 AND LicenseRef-Callaway-BSD AND LicenseRef-Callaway-BSD-with-advertising AND GPL-1.0-or-later AND GPL-2.0-only AND LicenseRef-Callaway-GPLv2-with-exceptions AND IJG AND LicenseRef-Callaway-LGPLv2+ AND LicenseRef-Callaway-MIT AND MPL-2.0 AND LicenseRef-Callaway-Public-Domain AND W3C AND Zlib AND ISC AND FTL AND LicenseRef-RSA
+URL:      http://openjdk.java.net/
+
+# We are producing RPMs containing only tarballs
+# and checksums so there are no binaries outside
+# the tarballs to be processed for debuginfo
 %define debug_package %{nil}
 
 # RPM conditionals so as to be able to dynamically produce
@@ -15,7 +112,6 @@
 #
 # Only produce a release build on x86_64:
 # $ fedpkg mockbuild --without slowdebug --without fastdebug
-
 # Enable fastdebug builds by default on relevant arches.
 %bcond_without fastdebug
 # Enable slowdebug builds by default on relevant arches.
@@ -24,8 +120,6 @@
 %bcond_without release
 # Enable static library builds by default.
 %bcond_without staticlibs
-# Remove build artifacts by default
-%bcond_with artifacts
 # Build a fresh libjvm.so for use in a copy of the bootstrap JDK
 %bcond_without fresh_libjvm
 # Build with system libraries
@@ -99,25 +193,6 @@
 %global normal_build %{nil}
 %endif
 
-# We have hardcoded list of files, which  is appearing in alternatives, and in files
-# in alternatives those are slaves and master, very often triplicated by man pages
-# in files all masters and slaves are ghosted
-# the ghosts are here to allow installation via query like `dnf install /usr/bin/java`
-# you can list those files, with appropriate sections: cat *.spec | grep -e --install -e --slave -e post_ -e alternatives
-# TODO - fix those hardcoded lists via single list
-# Those files must *NOT* be ghosted for *slowdebug* packages
-# FIXME - if you are moving jshell or jlink or similar, always modify all three sections
-# you can check via headless and devels:
-#    rpm -ql --noghost java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm  | grep bin
-# == rpm -ql           java-11-openjdk-headless-slowdebug-11.0.1.13-8.fc29.x86_64.rpm  | grep bin
-# != rpm -ql           java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm  | grep bin
-# similarly for other %%{_jvmdir}/{jre,java} and %%{_javadocdir}/{java,java-zip}
-%define is_release_build() %( if [ "%{?1}" == "%{debug_suffix_unquoted}" -o "%{?1}" == "%{fastdebug_suffix_unquoted}" ]; then echo "0" ; else echo "1"; fi )
-
-# while JDK is a techpreview(is_system_jdk=0), some provides are turned off. Once jdk stops to be an techpreview, move it to 1
-# as sytem JDK, we mean any JDK which can run whole system java stack without issues (like bytecode issues, module issues, dependencies...)
-%global is_system_jdk 0
-
 %global aarch64         aarch64 arm64 armv8
 # we need to distinguish between big and little endian PPC64
 %global ppc64le         ppc64le
@@ -403,17 +478,13 @@ exit 1
 %global with_systemtap 0
 %endif
 
-# New Version-String scheme-style defines
-%global featurever 26
-%global interimver 0
-%global updatever 1
-%global patchver 0
-# buildjdkver is usually same as %%{featurever},
-# but in time of bootstrap of next jdk, it is featurever-1,
+
+# buildjdkver is usually same as featurever,
+# but at the time of bootstrap of the next jdk, it is featurever-1,
 # and this it is better to change it here, on single place
 %global buildjdkver 26
 # We don't add any LTS designator for STS packages (Fedora and EPEL).
-# We need to explicitly exclude EPEL as it would have the %%{rhel} macro defined.
+# We need to explicitly exclude EPEL as it has the rhel macro defined.
 %if 0%{?rhel} && !0%{?epel}
   %global lts_designator "LTS"
   %global lts_designator_zip -%{lts_designator}
@@ -425,7 +496,8 @@ exit 1
 # Define vendor information used by OpenJDK
 %global oj_vendor Red Hat, Inc.
 %global oj_vendor_url https://www.redhat.com/
-# Define what url should JVM offer in case of a crash report
+
+# Define what url the JVM should offer in case of a crash report
 # order may be important, epel may have rhel declared
 %if 0%{?epel}
 %global oj_vendor_bug_url  https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&component=%{component}&version=epel%{epel}
@@ -441,67 +513,13 @@ exit 1
 %endif
 %endif
 %endif
-%global oj_vendor_version (Red_Hat-%{version}-%{rpmrelease})
+%global oj_vendor_version (Red_Hat-%{version}-%{portablerelease})
 
-# Define IcedTea version used for SystemTap tapsets and desktop file
-%global icedteaver      6.0.0pre00-c848b93a8598
-# Define current Git revision for the FIPS support patches
-%global fipsver 57722aab802
-# Define JDK versions
-%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver}
-%global javaver         %{featurever}
-# Strip up to 6 trailing zeros in newjavaver, as the JDK does, to get the correct version used in filenames
-%global filever %(svn=%{newjavaver}; for i in 1 2 3 4 5 6 ; do svn=${svn%%.0} ; done; echo ${svn})
-# The tag used to create the OpenJDK tarball
-%global vcstag jdk-%{filever}+%{buildver}%{?tagsuffix:-%{tagsuffix}}
-
-# Standard JPackage naming and versioning defines
-%global origin          openjdk
-%global origin_nice     OpenJDK
-%global top_level_dir_name   %{vcstag}
-%global top_level_dir_name_backup %{top_level_dir_name}-backup
-%global buildver        8
-%global rpmrelease      1
-#%%global tagsuffix     %%{nil}
-# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
-%if %is_system_jdk
-# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions
-# It is very unlikely we will ever have a patch version > 4 or a build version > 20, so we combine as (patch * 20) + build.
-# This means 11.0.9.0+11 would have had a priority of 11000911 as before
-# A 11.0.9.1+1 would have had a priority of 11000921 (20 * 1 + 1), thus ensuring it is bigger than 11.0.9.0+11
-%global combiver $( expr 20 '*' %{patchver} + %{buildver} )
-%global priority %( printf '%02d%02d%02d%02d' %{featurever} %{interimver} %{updatever} %{combiver} )
-%else
-# for techpreview, using 1, so slowdebugs can have 0
-%global priority %( printf '%08d' 1 )
-%endif
-
-# Define milestone (EA for pre-releases, GA for releases)
-# Release will be (where N is usually a number starting at 1):
-# - 0.N%%{?extraver}%%{?dist} for EA releases,
-# - N%%{?extraver}{?dist} for GA releases
-%global is_ga           1
-%if %{is_ga}
-%global build_type GA
-%global ea_designator ""
-%global ea_designator_zip %{nil}
-%global extraver %{nil}
-%global eaprefix %{nil}
-%else
-%global build_type EA
-%global ea_designator ea
-%global ea_designator_zip -%{ea_designator}
-%global extraver .%{ea_designator}
-%global eaprefix 0.
-%endif
-
-# parametrized macros are order-sensitive
-%global compatiblename  java-%{featurever}-%{origin}
-%global fullversion     %{compatiblename}-%{version}-%{release}
 # images directories from upstream build
 %global jdkimage                jdk
 %global static_libs_image       static-libs-graal
 # output dir stub
+# Parameterised macros are order-sensitive
 %define buildoutputdir() %{expand:build/jdk%{featurever}.build%{?1}}
 %define installoutputdir() %{expand:install/jdk%{featurever}.install%{?1}}
 %global miscinstalloutputdir install
@@ -522,31 +540,33 @@ exit 1
 %define jdkportablenameimpl() %(echo %{uniquesuffix ""} | sed "s;%{regexBase};\\0.portable%{1}.jdk;g" | sed "s;openjdkportable;el;g")
 %define jdkportablesourcesnameimpl() %(echo %{uniquesuffix ""} | sed "s;%{regexBase};\\0.portable%{1}.sources;g" | sed "s;openjdkportable;el;g" | sed "s;.%{_arch};.noarch;g")
 %define staticlibsportablenameimpl() %(echo %{uniquesuffix ""} | sed "s;%{regexBase};\\0.portable%{1}.static-libs;g" | sed "s;openjdkportable;el;g")
+
+# RPM 4.19 no longer accept our double percentaged %%{nil} passed to %%{1}
+# so we have to pass in "" but evaluate it, otherwise files will include it
 %define jmodsportablenameimpl() %(echo %{uniquesuffix ""} | sed "s;%{regexBase};\\0.portable%{1}.jmods;g" | sed "s;openjdkportable;el;g")
 %define jreportablearchive()  %{expand:%{jreportablenameimpl -- %%{1}}.tar.xz}
+%define jreportablearchive_for_files()  %(echo %{jreportablearchive -- ""})
 %define jdkportablearchive()  %{expand:%{jdkportablenameimpl -- %%{1}}.tar.xz}
-%define jdkportablesourcesarchive()  %{expand:%{jdkportablesourcesnameimpl -- %%{1}}.tar.xz}
+%define jdkportablearchive_for_files()  %(echo %{jdkportablearchive -- ""})
 %define staticlibsportablearchive()  %{expand:%{staticlibsportablenameimpl -- %%{1}}.tar.xz}
+%define staticlibsportablearchive_for_files()  %(echo %{staticlibsportablearchive -- ""})
+%define jdkportablesourcesarchive()  %{expand:%{jdkportablesourcesnameimpl -- %%{1}}.tar.xz}
+%define jdkportablesourcesname()     %{expand:%{jdkportablesourcesnameimpl -- %%{1}}}
+%define jdkportablesourcesarchive_for_files()  %(echo %{jdkportablesourcesarchive -- ""})
 %define jmodsportablearchive()  %{expand:%{jmodsportablenameimpl -- %%{1}}.tar.xz}
+%define jmodsportablearchive_for_files()  %(echo %{jmodsportablearchive -- ""})
 %define jreportablename()     %{expand:%{jreportablenameimpl -- %%{1}}}
 %define jdkportablename()     %{expand:%{jdkportablenameimpl -- %%{1}}}
-%define jdkportablesourcesname()     %{expand:%{jdkportablesourcesnameimpl -- %%{1}}}
-# Intentionally use jdkportablenameimpl here since we want to have static-libs files overlayed on
-# top of the JDK archive
+# We intentionally use jdkportablenameimpl here since we want to have
+# static-libs files overlayed on top of the JDK archive
 %define staticlibsportablename()     %{expand:%{jdkportablenameimpl -- %%{1}}}
+
+# These macros are not parameterised as the same is shared by all builds
 %define docportablename() %(echo %{uniquesuffix ""} | sed "s;%{regexBase};\\0.portable.docs;g" | sed "s;openjdkportable;el;g")
 %define docportablearchive()  %{docportablename}.tar.xz
 %define miscportablename() %(echo %{uniquesuffix ""} | sed "s;%{regexBase};\\0.portable.misc;g" | sed "s;openjdkportable;el;g")
 %define miscportablearchive()  %{miscportablename}.tar.xz
 
-# RPM 4.19 no longer accept our double percentaged %%{nil} passed to %%{1}
-# so we have to pass in "" but evaluate it, otherwise files record will include it
-%define jreportablearchiveForFiles()  %(echo %{jreportablearchive -- ""})
-%define jdkportablearchiveForFiles()  %(echo %{jdkportablearchive -- ""})
-%define jdkportablesourcesarchiveForFiles()  %(echo %{jdkportablesourcesarchive -- ""})
-%define staticlibsportablearchiveForFiles()  %(echo %{staticlibsportablearchive -- ""})
-%define jmodsportablearchiveForFiles()  %(echo %{jmodsportablearchive -- ""})
-
 # JDK to use for bootstrapping
 %ifarch %{fastdebug_arches}
 %global bootdebugpkg fastdebug
@@ -570,26 +590,6 @@ exit 1
 %global build_hotspot_first 0
 %endif
 
-#################################################################
-# fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349
-#         https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14
-#         https://bugzilla.redhat.com/show_bug.cgi?id=1655938
-%global _privatelibs libsplashscreen[.]so.*|libawt_xawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libextnet[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjimage[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmanagement_agent[.]so.*|libmanagement_ext[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libprefs[.]so.*|librmi[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsystemconf[.]so.*|libzip[.]so.*%{freetype_lib}
-%global _publiclibs libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.*
-%if %is_system_jdk
-%global __provides_exclude ^(%{_privatelibs})$
-%global __requires_exclude ^(%{_privatelibs})$
-# Never generate lib-style provides/requires for any debug packages
-%global __provides_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$
-%global __requires_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$
-%global __provides_exclude_from ^.*/%{uniquesuffix -- %{fastdebug_suffix_unquoted}}/.*$
-%global __requires_exclude_from ^.*/%{uniquesuffix -- %{fastdebug_suffix_unquoted}}/.*$
-%else
-# Don't generate provides/requires for JDK provided shared libraries at all.
-%global __provides_exclude ^(%{_privatelibs}|%{_publiclibs})$
-%global __requires_exclude ^(%{_privatelibs}|%{_publiclibs})$
-%endif
-
 # VM variant being built
 %ifarch %{zero_arches}
 %global vm_variant zero
@@ -597,28 +597,11 @@ exit 1
 %global vm_variant server
 %endif
 
-%global etcjavasubdir     %{_sysconfdir}/java/java-%{javaver}-%{origin}
-%define etcjavadir()      %{expand:%{etcjavasubdir}/%{uniquesuffix -- %{?1}}}
-# Standard JPackage directories and symbolic links.
-%define sdkdir()        %{expand:%{uniquesuffix -- %{?1}}}
-%define jrelnk()        %{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%{?1}}
-
-%define sdkbindir()     %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
-%define jrebindir()     %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
-
 %global alt_java_name     alt-java
 %global generated_sources_name     generated_sources
 
 %global rpm_state_dir %{_localstatedir}/lib/rpm-state/
 
-# For flatpack builds hard-code /usr/sbin/alternatives,
-# otherwise use %%{_sbindir} relative path.
-%if 0%{?flatpak}
-%global alternatives_requires /usr/sbin/alternatives
-%else
-%global alternatives_requires %{_sbindir}/alternatives
-%endif
-
 # Portables have no repo (requires/provides), but these are awesome for orientation in spec
 # Also scriptlets are happily missing and files are handled old fashion
 # not-duplicated requires/provides/obsoletes for normal/debug packages
@@ -653,54 +636,13 @@ ExcludeArch: %{ix86}
 ExclusiveArch:  %{exclusive_arches}
 %endif
 
-Name:    java-latest-%{origin}-portable%{?pkgos:-%{pkgos}}
-Version: %{newjavaver}.%{buildver}
-# This package needs `.rolling` as part of Release so as to not conflict on install with
-# java-X-openjdk. I.e. when latest rolling release is also an LTS release packaged as
-# java-X-openjdk. See: https://bugzilla.redhat.com/show_bug.cgi?id=1647298
-Release: %{?eaprefix}%{rpmrelease}%{?extraver}.rolling%{?dist}
-# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
-# and this change was brought into RHEL-4. java-1.5.0-ibm packages
-# also included the epoch in their virtual provides. This created a
-# situation where in-the-wild java-1.5.0-ibm packages provided "java =
-# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is
-# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be
-# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in
-# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual
-# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
-
-Epoch:   1
-Summary: %{origin_nice} %{featurever} Runtime Environment portable edition
-# Groups are only used up to RHEL 8 and on Fedora versions prior to F30
-%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
-Group:   Development/Languages
-%endif
-
-# HotSpot code is licensed under GPLv2
-# JDK library code is licensed under GPLv2 with the Classpath exception
-# The Apache license is used in code taken from Apache projects (primarily xalan & xerces)
-# DOM levels 2 & 3 and the XML digital signature schemas are licensed under the W3C Software License
-# The JSR166 concurrency code is in the public domain
-# The BSD and MIT licenses are used for a number of third-party libraries (see ADDITIONAL_LICENSE_INFO)
-# The OpenJDK source tree includes:
-# - JPEG library (IJG), zlib & libpng (zlib), giflib (MIT), harfbuzz (ISC),
-# - freetype (FTL), jline (BSD) and LCMS (MIT)
-# - jquery (MIT), jdk.crypto.cryptoki PKCS 11 wrapper (RSA)
-# - public_suffix_list.dat from publicsuffix.org (MPLv2.0)
-# The test code includes copies of NSS under the Mozilla Public License v2.0
-# The PCSClite headers are under a BSD with advertising license
-# The elliptic curve cryptography (ECC) source code is licensed under the LGPLv2.1 or any later version
-# Automatically converted from old format: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C and zlib and ISC and FTL and RSA - review is highly recommended.
-License:  Apache-1.1 AND Apache-2.0 AND LicenseRef-Callaway-BSD AND LicenseRef-Callaway-BSD-with-advertising AND GPL-1.0-or-later AND GPL-2.0-only AND LicenseRef-Callaway-GPLv2-with-exceptions AND IJG AND LicenseRef-Callaway-LGPLv2+ AND LicenseRef-Callaway-MIT AND MPL-2.0 AND LicenseRef-Callaway-Public-Domain AND W3C AND Zlib AND ISC AND FTL AND LicenseRef-RSA
-URL:      http://openjdk.java.net/
-
 # The source tarball, generated using generate_source_tarball.sh
 Source0: https://openjdk-sources.osci.io/openjdk%{featurever}/open%{vcstag}%{ea_designator_zip}.tar.xz
 
 # Use 'icedtea_sync.sh' to update the following
 # They are based on code contained in the IcedTea project (6.x).
 # Systemtap tapsets. Zipped up to keep it small.
-# Disabled in portables
+# Disabled in fedora portables (applied in fedora rpms)
 #Source8: tapsets-icedtea-%%{icedteaver}.tar.xz
 
 # Desktop files. Adapted from IcedTea
@@ -736,12 +678,13 @@ Source18: TestTranslations.java
 # RPM/distribution specific patches
 #
 ############################################
+
 # Crypto policy and FIPS support patches
+
 # Patch is generated from the fips-25u tree at https://github.com/rh-openjdk/jdk/tree/fips-25u
-# as follows: git diff %%{vcstag} src make test > fips-25u-$(git show -s --format=%h HEAD).patch
+# as follows: git diff <vcstag> src make test > fips-25u-$(git show -s --format=%h HEAD).patch
 # Diff is limited to src and make subdirectories to exclude .github changes
-# The following list is generated by:
-# git log %%{vcstag}.. --no-merges --format=%s --reverse:
+
 # Fixes currently included:
 # OPENJDK-2108: Internal __redhat_fips__ property
 # OPENJDK-2123: Algorithms lockdown
@@ -754,8 +697,7 @@ Patch1001: fips-25u-%{fipsver}.patch
 #
 #############################################
 
-# JDK-8375294: (fs) Files.copy can fail with EOPNOTSUPP when copy_file_range not supported
-Patch2001: jdk8375294-handle-EOPNOTSUPP-in-copying.patch
+# Currently empty
 
 #############################################
 #
@@ -763,8 +705,6 @@ Patch2001: jdk8375294-handle-EOPNOTSUPP-in-copying.patch
 #
 #############################################
 
-# Currently empty
-
 #############################################
 #
 # Portable build specific patches
@@ -834,17 +774,17 @@ BuildRequires: libpng-devel
 BuildRequires: zlib-devel
 %else
 # Version in src/java.desktop/share/legal/freetype.md
-Provides: bundled(freetype) = 2.14.2
+Provides: bundled(freetype) = 2.14.3
 # Version in src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h
-Provides: bundled(giflib) = 6.1.2
+Provides: bundled(giflib) = 6.1.3
 # Version in src/java.desktop/share/native/libharfbuzz/hb-version.h
-Provides: bundled(harfbuzz) = 12.3.2
+Provides: bundled(harfbuzz) = 14.2.0
 # Version in src/java.desktop/share/native/liblcms/lcms2.h
-Provides: bundled(lcms2) = 2.17.0
+Provides: bundled(lcms2) = 2.19.1
 # Version in src/java.desktop/share/native/libjavajpeg/jpeglib.h
 Provides: bundled(libjpeg) = 6b
 # Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h
-Provides: bundled(libpng) = 1.6.57
+Provides: bundled(libpng) = 1.6.58
 # Version in src/java.base/share/native/libzip/zlib/zlib.h
 Provides: bundled(zlib) = 1.3.2
 %endif
@@ -1028,38 +968,20 @@ fi
 export XZ_OPT="-T0"
 %setup -q -c -n %{uniquesuffix ""} -T -a 0
 # https://bugzilla.redhat.com/show_bug.cgi?id=1189084
-prioritylength=`expr length %{priority}`
-if [ $prioritylength -ne 8 ] ; then
- echo "priority must be 8 digits in total, violated"
- exit 14
-fi
 
 # OpenJDK patches
+
 %if %{system_libs}
 # Remove libraries that are linked by both static and dynamic builds
 sh %{SOURCE12} %{top_level_dir_name}
 %endif
 
 # Patch the JDK
-# This syntax is deprecated:
-#    %%patchN [...]
-# and should be replaced with:
-#    %%patch -PN [...]
-# For example:
-#    %%patch1001 -p1
-# becomes:
-#    %%patch -P1001 -p1
-# The replacement format suggested by recent (circa Fedora 38) RPM
-# deprecation messages:
-#    %%patch N [...]
-# is not backward-compatible with prior (circa RHEL-8) versions of
-# rpmbuild.
+
 pushd %{top_level_dir_name}
 # Add crypto policy and FIPS support
 # usage in jdk >25 is experimental and may disapear
 %patch -P1001 -p1
-# Add EOPNOTSUPP patch
-%patch -P2001 -p1
 popd # openjdk
 
 echo "Generating %{alt_java_name} man page"
@@ -1128,7 +1050,6 @@ fi
 export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
 export NUM_PROC=${NUM_PROC:-1}
 %if 0%{?_smp_ncpus_max}
-# Honor %%_smp_ncpus_max
 [ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max}
 %endif
 export XZ_OPT="-T0"
@@ -1871,8 +1792,8 @@ done
 %if %{include_normal_build}
 %files
 # main package builds always
-%{_jvmdir}/%{jreportablearchiveForFiles}
-%{_jvmdir}/%{jreportablearchiveForFiles}.sha256sum
+%{_jvmdir}/%{jreportablearchive_for_files}
+%{_jvmdir}/%{jreportablearchive_for_files}.sha256sum
 %else
 %files
 # placeholder
@@ -1880,19 +1801,19 @@ done
 
 %if %{include_normal_build}
 %files devel
-%{_jvmdir}/%{jdkportablearchiveForFiles}
+%{_jvmdir}/%{jdkportablearchive_for_files}
 %{_jvmdir}/%{jdkportablearchive -- .debuginfo}
-%{_jvmdir}/%{jdkportablearchiveForFiles}.sha256sum
+%{_jvmdir}/%{jdkportablearchive_for_files}.sha256sum
 %{_jvmdir}/%{jdkportablearchive -- .debuginfo}.sha256sum
-%{_jvmdir}/%{jmodsportablearchiveForFiles}
-%{_jvmdir}/%{jmodsportablearchiveForFiles}.sha256sum
+%{_jvmdir}/%{jmodsportablearchive_for_files}
+%{_jvmdir}/%{jmodsportablearchive_for_files}.sha256sum
 %endif
 
 %if %{include_normal_build}
 %if %{include_staticlibs}
 %files static-libs
-%{_jvmdir}/%{staticlibsportablearchiveForFiles}
-%{_jvmdir}/%{staticlibsportablearchiveForFiles}.sha256sum
+%{_jvmdir}/%{staticlibsportablearchive_for_files}
+%{_jvmdir}/%{staticlibsportablearchive_for_files}.sha256sum
 %endif
 %endif
 
@@ -1933,8 +1854,8 @@ done
 %endif
 
 %files sources
-%{_jvmdir}/%{jdkportablesourcesarchiveForFiles}
-%{_jvmdir}/%{jdkportablesourcesarchiveForFiles}.sha256sum
+%{_jvmdir}/%{jdkportablesourcesarchive_for_files}
+%{_jvmdir}/%{jdkportablesourcesarchive_for_files}.sha256sum
 
 %if %{include_normal_build}
 %files docs

diff --git a/jdk8375294-handle-EOPNOTSUPP-in-copying.patch b/jdk8375294-handle-EOPNOTSUPP-in-copying.patch
deleted file mode 100644
index ea8076a..0000000
--- a/jdk8375294-handle-EOPNOTSUPP-in-copying.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From dbbdc1dffd10608195487fa139e77c4a90c80658 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Van=C4=9Bk?= <jvanek@openjdk.org>
-Date: Wed, 15 Apr 2026 12:54:49 +0000
-Subject: [PATCH] 8375294: (fs) Files.copy can fail with EOPNOTSUPP when
- copy_file_range not supported
-
-Reviewed-by: andrew
-Backport-of: 30cda00010888b6e9a2bf8cdeaedbb3eb4b6a222
----
- src/java.base/linux/native/libnio/ch/FileDispatcherImpl.c    | 5 +++--
- src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c | 3 ++-
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/src/java.base/linux/native/libnio/ch/FileDispatcherImpl.c b/src/java.base/linux/native/libnio/ch/FileDispatcherImpl.c
-index efbd0ca5684..54d640b03a4 100644
---- a/src/java.base/linux/native/libnio/ch/FileDispatcherImpl.c
-+++ b/src/java.base/linux/native/libnio/ch/FileDispatcherImpl.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2000, 2026, Oracle and/or its affiliates. All rights reserved.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -63,7 +63,7 @@ Java_sun_nio_ch_FileDispatcherImpl_transferFrom0(JNIEnv *env, jobject this,
-     if (n < 0) {
-         if (errno == EAGAIN)
-             return IOS_UNAVAILABLE;
--        if (errno == ENOSYS)
-+        if (errno == ENOSYS || errno == EOPNOTSUPP)
-             return IOS_UNSUPPORTED_CASE;
-         if ((errno == EBADF || errno == EINVAL || errno == EXDEV) &&
-             ((ssize_t)count >= 0))
-@@ -103,6 +103,7 @@ Java_sun_nio_ch_FileDispatcherImpl_transferTo0(JNIEnv *env, jobject this,
-                 case EINVAL:
-                 case ENOSYS:
-                 case EXDEV:
-+                case EOPNOTSUPP:
-                     // ignore and try sendfile()
-                     break;
-                 default:
-diff --git a/src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c b/src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c
-index c90e99dda07..4677411b0ba 100644
---- a/src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c
-+++ b/src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2008, 2024, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2008, 2026, Oracle and/or its affiliates. All rights reserved.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -193,6 +193,7 @@ Java_sun_nio_fs_LinuxNativeDispatcher_directCopy0
-                     case EINVAL:
-                     case ENOSYS:
-                     case EXDEV:
-+                    case EOPNOTSUPP:
-                         // ignore and try sendfile()
-                         break;
-                     default:
--- 
-2.52.0
-

diff --git a/scripts/generate_source_tarball.sh b/scripts/generate_source_tarball.sh
index a1b5200..9670950 100755
--- a/scripts/generate_source_tarball.sh
+++ b/scripts/generate_source_tarball.sh
@@ -48,7 +48,7 @@
 # This will check out the same version as example 1, but from the
 # upstream repository:
 #
-# $ VERSION=jdk-26.0.1+8 PROJECT_NAME=openjdk REPO_NAME=jdk26u \
+# $ VERSION=jdk-26.0.2+10 PROJECT_NAME=openjdk REPO_NAME=jdk26u \
 #   BOOT_JDK=/usr/lib/jvm/java-latest-openjdk sh scripts/generate_source_tarball.sh
 #
 # Example 3:

diff --git a/sources b/sources
index 952e465..50a6509 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (openjdk-26.0.1+8.tar.xz) = 3685f82e9bc05e637f42aa72d6461b4edc9f413c06bd15a67ef8cfd89f5f7a2156e6c4d5e1a54ec75c3bed49a75dbde6de5d39d84cb2f66c58e7ddd4d1168170
+SHA512 (openjdk-26.0.2+10.tar.xz) = fd8269e531e82c9fa2996824b5d599b94aa42cc35e3d02559e6b11e0c758ed4c2ab7a73d2849dd1975b59c92adf6c00c6585d3e623d2349665691fd29f5917cf

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-24 16:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-24 16:25 [rpms/java-latest-openjdk-portable] epel9: Merge branch 'rawhide' into epel10 Jiri Vanek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox