Compare commits
3 Commits
c10s
...
a9-portabl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ebd11d7edf | ||
| b91e4dee39 | |||
| be73aaae60 |
49
.gitignore
vendored
49
.gitignore
vendored
@ -1,46 +1,3 @@
|
|||||||
/openjdk-jdk17u-jdk-17.0.7+7.tar.xz
|
SOURCES/nssadapter-0.1.0.tar.xz
|
||||||
/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
|
SOURCES/openjdk-25.0.2+10.tar.xz
|
||||||
/openjdk-jdk18u-jdk-18.0.1+0.tar.xz
|
SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
|
||||||
/openjdk-jdk18u-jdk-18.0.1+10.tar.xz
|
|
||||||
/openjdk-jdk18u-jdk-18.0.1.1+2.tar.xz
|
|
||||||
/openjdk-jdk18u-jdk-18.0.2+9.tar.xz
|
|
||||||
/openjdk-jdk19u-jdk-19+36.tar.xz
|
|
||||||
/openjdk-jdk19u-jdk-19.0.1+10.tar.xz
|
|
||||||
/openjdk-jdk19u-jdk-19.0.2+7.tar.xz
|
|
||||||
/openjdk-jdk20u-jdk-20+36.tar.xz
|
|
||||||
/openjdk-jdk20u-jdk-20.0.1+9.tar.xz
|
|
||||||
/openjdk-jdk20u-jdk-20.0.2+9.tar.xz
|
|
||||||
/openjdk-jdk21u-jdk-21+35.tar.xz
|
|
||||||
/openjdk-21.0.1+12.tar.xz
|
|
||||||
/openjdk-21.0.2+11.tar.xz
|
|
||||||
/openjdk-21.0.2+12.tar.xz
|
|
||||||
/openjdk-21.0.2+13.tar.xz
|
|
||||||
/openjdk-21.0.3+1-ea.tar.xz
|
|
||||||
/openjdk-21.0.3+7-ea.tar.xz
|
|
||||||
/openjdk-21.0.3+9.tar.xz
|
|
||||||
/openjdk-21.0.4+1-ea.tar.xz
|
|
||||||
/openjdk-21.0.4+5-ea.tar.xz
|
|
||||||
/openjdk-21.0.4+7.tar.xz
|
|
||||||
/openjdk-21.0.5+1-ea.tar.xz
|
|
||||||
/openjdk-21.0.5+5-ea.tar.xz
|
|
||||||
/openjdk-21.0.5+9-ea.tar.xz
|
|
||||||
/openjdk-21.0.5+10.tar.xz
|
|
||||||
/openjdk-21.0.5+11.tar.xz
|
|
||||||
/openjdk-21.0.6+6-ea.tar.xz
|
|
||||||
/openjdk-21.0.6+7.tar.xz
|
|
||||||
/openjdk-21.0.7+1-ea.tar.xz
|
|
||||||
/openjdk-21.0.7+2-ea.tar.xz
|
|
||||||
/openjdk-21.0.7+3-ea.tar.xz
|
|
||||||
/openjdk-21.0.7+4-ea.tar.xz
|
|
||||||
/openjdk-21.0.7+5-ea.tar.xz
|
|
||||||
/openjdk-21.0.7+6.tar.xz
|
|
||||||
/openjdk-21.0.8+1-ea.tar.xz
|
|
||||||
/openjdk-21.0.8+2-ea.tar.xz
|
|
||||||
/openjdk-21.0.8+8-ea.tar.xz
|
|
||||||
/openjdk-21.0.8+9.tar.xz
|
|
||||||
/openjdk-22.0.2+9.tar.xz
|
|
||||||
/openjdk-23.0.2+7.tar.xz
|
|
||||||
/openjdk-24.0.2+12.tar.xz
|
|
||||||
/openjdk-25+36.tar.xz
|
|
||||||
/openjdk-25.0.1+8.tar.xz
|
|
||||||
/nssadapter-0.1.0.tar.xz
|
|
||||||
|
|||||||
3
.java-25-openjdk.metadata
Normal file
3
.java-25-openjdk.metadata
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
f796f454a7f6eb8df8fc66c842e3fb2e7f5b82e8 SOURCES/nssadapter-0.1.0.tar.xz
|
||||||
|
b842f1ba4b1c5b25c36a9ce694a9205d64ebfc15 SOURCES/openjdk-25.0.2+10.tar.xz
|
||||||
|
c8281ee37b77d535c9c1af86609a531958ff7b34 SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
|
||||||
670
NEWS
670
NEWS
@ -1,670 +0,0 @@
|
|||||||
Key:
|
|
||||||
|
|
||||||
JDK-X - https://bugs.openjdk.java.net/browse/JDK-X
|
|
||||||
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
|
|
||||||
|
|
||||||
New in release OpenJDK 25.0.1 (2025-10-21):
|
|
||||||
===========================================
|
|
||||||
|
|
||||||
* CVEs
|
|
||||||
- CVE-2025-53057
|
|
||||||
- CVE-2025-53066
|
|
||||||
- CVE-2025-61748
|
|
||||||
* Changes
|
|
||||||
- JDK-8315131: Clarify VarHandle set/get access on 32-bit platforms
|
|
||||||
- JDK-8352637: Enhance bytecode verification
|
|
||||||
- JDK-8356294: Enhance Path Factories
|
|
||||||
- JDK-8356587: Missing object ID X in pool jdk.types.Method
|
|
||||||
- JDK-8357826: Avoid running some jtreg tests when asan is configured
|
|
||||||
- JDK-8358452: JNI exception pending in Java_sun_awt_screencast_ScreencastHelper_remoteDesktopKeyImpl of screencast_pipewire.c:1214 (ID: 51119)
|
|
||||||
- JDK-8358577: Test serviceability/jvmti/thread/GetCurrentContendedMonitor/contmon01/contmon01.java failed: unexpexcted monitor object
|
|
||||||
- JDK-8358819: The first year is not displayed correctly in Japanese Calendar
|
|
||||||
- JDK-8359059: Bump version numbers for 25.0.1
|
|
||||||
- JDK-8359218: RISC-V: Only enable CRC32 intrinsic when AvoidUnalignedAccess == false
|
|
||||||
- JDK-8359270: C2: alignment check should consider base offset when emitting arraycopy runtime call
|
|
||||||
- JDK-8359454: Enhance String handling
|
|
||||||
- JDK-8359596: Behavior change when both -Xlint:options and -Xlint:-options flags are given
|
|
||||||
- JDK-8360179: RISC-V: Only enable BigInteger intrinsics when AvoidUnalignedAccess == false
|
|
||||||
- JDK-8360533: ContainerRuntimeVersionTestUtils fromVersionString fails with some docker versions
|
|
||||||
- JDK-8360647: [XWayland] [OL10] NumPad keys are not triggered
|
|
||||||
- JDK-8360679: Shenandoah: AOT saved adapter calls into broken GC barrier stub
|
|
||||||
- JDK-8360937: Enhance certificate handling
|
|
||||||
- JDK-8361212: Remove AffirmTrust root CAs
|
|
||||||
- JDK-8361532: RISC-V: Several vector tests fail after JDK-8354383
|
|
||||||
- JDK-8361829: [TESTBUG] RISC-V: compiler/vectorization/runner/BasicIntOpTest.java fails with RVV but not Zvbb
|
|
||||||
- JDK-8362109: Change milestone to fcs for all releases
|
|
||||||
- JDK-8362882: Update SubmissionPublisher() specification to reflect use of ForkJoinPool.asyncCommonPool()
|
|
||||||
- JDK-8366223: ZGC: ZPageAllocator::cleanup_failed_commit_multi_partition is broken
|
|
||||||
- JDK-8367031: [backout] Change java.time month/day field types to 'byte'
|
|
||||||
- JDK-8368308: ISO 4217 Amendment 180 Update
|
|
||||||
|
|
||||||
Notes on individual issues:
|
|
||||||
===========================
|
|
||||||
|
|
||||||
core-libs/java.io:serialization:
|
|
||||||
|
|
||||||
JDK-8367031: [backout] Change java.time month/day field types to 'byte'
|
|
||||||
=======================================================================
|
|
||||||
In the initial release of OpenJDK 25, attempting to read serialised
|
|
||||||
Class objects created by earlier versions of OpenJDK for several of
|
|
||||||
the `java.time` classes would fail with a
|
|
||||||
`InvalidClassException`. Similarly, `java.time` Class objects
|
|
||||||
serialised with OpenJDK 25 could not be read by older OpenJDK
|
|
||||||
versions. This was due to the type of the day and month fields in
|
|
||||||
these classes being changed to `byte`. This change has now been
|
|
||||||
reverted and compatibility between OpenJDK 25 and older versions
|
|
||||||
restored.
|
|
||||||
|
|
||||||
Note that this incompatibility occurred with the `Class` object and
|
|
||||||
not an instance of the object i.e. `writeObject(LocalDate.class)`
|
|
||||||
would produce incompatible serialised data, but
|
|
||||||
`writeObject(LocalDate.now())` would not.
|
|
||||||
|
|
||||||
security-libs/java.security:
|
|
||||||
|
|
||||||
JDK-8361212: Remove AffirmTrust root CAs
|
|
||||||
========================================
|
|
||||||
The following root certificates from AffirmTrust, which were
|
|
||||||
deactivated in the 21.0.5 release of October 2024, have been removed
|
|
||||||
from the `cacerts` keystore:
|
|
||||||
|
|
||||||
Alias name: affirmtrustcommercialca [jdk]
|
|
||||||
CN=AffirmTrust Commercial
|
|
||||||
O=AffirmTrust
|
|
||||||
C=US
|
|
||||||
SHA256: 03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7
|
|
||||||
|
|
||||||
Alias name: affirmtrustnetworkingca [jdk]
|
|
||||||
CN=AffirmTrust Networking
|
|
||||||
O=AffirmTrust
|
|
||||||
C=US
|
|
||||||
SHA256: 0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0B4:1B
|
|
||||||
|
|
||||||
Alias name: affirmtrustpremiumca [jdk]
|
|
||||||
CN=AffirmTrust Premium
|
|
||||||
O=AffirmTrust
|
|
||||||
C=US
|
|
||||||
SHA256: 70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A
|
|
||||||
|
|
||||||
Alias name: affirmtrustpremiumeccca [jdk]
|
|
||||||
CN=AffirmTrust Premium ECC
|
|
||||||
O=AffirmTrust
|
|
||||||
C=US
|
|
||||||
SHA256: BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23
|
|
||||||
|
|
||||||
New in release OpenJDK 25.0.0 (2025-09-16):
|
|
||||||
===========================================
|
|
||||||
Major changes are listed below. Some changes may have been backported
|
|
||||||
to earlier releases following their first appearance in OpenJDK 22
|
|
||||||
through to 25.
|
|
||||||
|
|
||||||
NEW FEATURES
|
|
||||||
============
|
|
||||||
|
|
||||||
Language Features
|
|
||||||
=================
|
|
||||||
|
|
||||||
Flexible Constructor Bodies
|
|
||||||
============================
|
|
||||||
https://openjdk.org/jeps/447
|
|
||||||
https://openjdk.org/jeps/482
|
|
||||||
https://openjdk.org/jeps/492
|
|
||||||
https://openjdk.org/jeps/513
|
|
||||||
|
|
||||||
In constructors in the Java programming language, allow statements to
|
|
||||||
appear before an explicit constructor invocation, i.e., super(..) or
|
|
||||||
this(..). The statements cannot reference the instance under
|
|
||||||
construction, but they can initialize its fields. Initializing fields
|
|
||||||
before invoking another constructor makes a class more reliable when
|
|
||||||
methods are overridden.
|
|
||||||
|
|
||||||
This language feature is now finalised (JEP 513). It was first
|
|
||||||
introduced as a preview language feature
|
|
||||||
(http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP 447) under the
|
|
||||||
name "Statements before super(...)". It reached a second preview in
|
|
||||||
OpenJDK 23 (JEP 482) with the addition of allowing fields to be
|
|
||||||
initialized before invoking another constructor. It reached a third
|
|
||||||
preview in OpenJDK 24 (JEP 492).
|
|
||||||
|
|
||||||
Unnamed Patterns and Variables
|
|
||||||
==============================
|
|
||||||
https://openjdk.org/jeps/443
|
|
||||||
https://openjdk.org/jeps/456
|
|
||||||
|
|
||||||
Enhance the Java language with unnamed patterns, which match a record
|
|
||||||
component without stating the component's name or type, and unnamed
|
|
||||||
variables, which can be initialized but not used. Both are denoted by
|
|
||||||
an underscore character, _.
|
|
||||||
|
|
||||||
This feature is now finalised (JEP 456). It was a preview feature
|
|
||||||
(http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP 443).
|
|
||||||
|
|
||||||
Primitive Types in Patterns, instanceof, and switch
|
|
||||||
===================================================
|
|
||||||
https://openjdk.org/jeps/455
|
|
||||||
https://openjdk.org/jeps/488
|
|
||||||
https://openjdk.org/jeps/507
|
|
||||||
|
|
||||||
Enhance pattern matching by allowing primitive type patterns in all
|
|
||||||
pattern contexts, and extend instanceof and switch to work with all
|
|
||||||
primitive types.
|
|
||||||
|
|
||||||
This is a preview language feature (http://openjdk.java.net/jeps/12)
|
|
||||||
introduced in OpenJDK 23 (JEP 455) with a second preview in OpenJDK 24
|
|
||||||
(JEP 488) and reaching a third in OpenJDK 25 (JEP 507).
|
|
||||||
|
|
||||||
Module Import Declarations
|
|
||||||
==========================
|
|
||||||
https://openjdk.org/jeps/476
|
|
||||||
https://openjdk.org/jeps/494
|
|
||||||
https://openjdk.org/jeps/511
|
|
||||||
|
|
||||||
Enhance the Java programming language with the ability to succinctly
|
|
||||||
import all of the packages exported by a module. This simplifies the
|
|
||||||
reuse of modular libraries, but does not require the importing code to
|
|
||||||
be in a module itself.
|
|
||||||
|
|
||||||
This language feature is now finalised (JEP 511). It was introduced as
|
|
||||||
a preview language feature (http://openjdk.java.net/jeps/12) in
|
|
||||||
OpenJDK 23 (JEP 476) and had a second preview in OpenJDK 24 (JEP 494).
|
|
||||||
|
|
||||||
Library Features
|
|
||||||
================
|
|
||||||
|
|
||||||
Foreign Function & Memory API
|
|
||||||
=============================
|
|
||||||
https://openjdk.org/jeps/412
|
|
||||||
https://openjdk.org/jeps/419
|
|
||||||
https://openjdk.org/jeps/424
|
|
||||||
https://openjdk.org/jeps/434
|
|
||||||
https://openjdk.org/jeps/442
|
|
||||||
https://openjdk.org/jeps/454
|
|
||||||
|
|
||||||
Introduce an API by which Java programs can interoperate with code and
|
|
||||||
data outside of the Java runtime. By efficiently invoking foreign
|
|
||||||
functions (i.e., code outside the JVM), and by safely accessing
|
|
||||||
foreign memory (i.e., memory not managed by the JVM), the API enables
|
|
||||||
Java programs to call native libraries and process native data without
|
|
||||||
the brittleness and danger of JNI.
|
|
||||||
|
|
||||||
This API is now finalised (JEP 454). It was first introduced in
|
|
||||||
incubation (https://openjdk.java.net/jeps/11) in OpenJDK 17 (JEP 412),
|
|
||||||
and is an evolution of the Foreign Memory Access API (OpenJDK 14
|
|
||||||
through 16) and Foreign Linker API (OpenJDK 16) (see release notes for
|
|
||||||
java-17-openjdk). OpenJDK 18 saw a second round of incubation (JEP
|
|
||||||
419) before its inclusion as a preview feature
|
|
||||||
(http://openjdk.java.net/jeps/12) in OpenJDK 19 (JEP 424). A second
|
|
||||||
preview took place in OpenJDK 20 (JEP 434) and a third and final
|
|
||||||
preview in OpenJDK 21 (JEP 442).
|
|
||||||
|
|
||||||
Prepare to Restrict the Use of JNI
|
|
||||||
==================================
|
|
||||||
https://openjdk.org/jeps/472
|
|
||||||
|
|
||||||
Issue warnings about uses of the Java Native Interface (JNI) and
|
|
||||||
adjust the Foreign Function & Memory (FFM) API to issue warnings in a
|
|
||||||
consistent manner. All such warnings aim to prepare developers for a
|
|
||||||
future release that ensures integrity by default by uniformly
|
|
||||||
restricting JNI and the FFM API. Application developers can avoid both
|
|
||||||
current warnings and future restrictions by selectively enabling these
|
|
||||||
interfaces where essential using the --enable-native-access
|
|
||||||
command-line option.
|
|
||||||
|
|
||||||
Class-File API
|
|
||||||
==============
|
|
||||||
https://openjdk.org/jeps/457
|
|
||||||
https://openjdk.org/jeps/466
|
|
||||||
https://openjdk.org/jeps/484
|
|
||||||
|
|
||||||
Provide a standard API for parsing, generating, and transforming Java
|
|
||||||
class files.
|
|
||||||
|
|
||||||
This API is now finalised (JEP 484). It was introduced as a preview
|
|
||||||
library feature (http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP
|
|
||||||
457) with a second preview in OpenJDK 23 (JEP 466).
|
|
||||||
|
|
||||||
Vector API
|
|
||||||
==========
|
|
||||||
https://openjdk.org/jeps/338
|
|
||||||
https://openjdk.org/jeps/414
|
|
||||||
https://openjdk.org/jeps/417
|
|
||||||
https://openjdk.org/jeps/426
|
|
||||||
https://openjdk.org/jeps/438
|
|
||||||
https://openjdk.org/jeps/448
|
|
||||||
https://openjdk.org/jeps/460
|
|
||||||
https://openjdk.org/jeps/469
|
|
||||||
https://openjdk.org/jeps/489
|
|
||||||
https://openjdk.org/jeps/508
|
|
||||||
|
|
||||||
Introduce an API to express vector computations that reliably compile
|
|
||||||
at runtime to optimal vector hardware instructions on supported CPU
|
|
||||||
architectures and thus achieve superior performance to equivalent
|
|
||||||
scalar computations.
|
|
||||||
|
|
||||||
This is an incubation feature (https://openjdk.java.net/jeps/11)
|
|
||||||
introduced in OpenJDK 16 (JEP 338). A second round of incubation took
|
|
||||||
place in OpenJDK 17 (JEP 414), OpenJDK 18 (JEP 417) saw a third,
|
|
||||||
OpenJDK 19 a fourth (JEP 426), OpenJDK 20 (JEP 438) a fifth, OpenJDK
|
|
||||||
21 a sixth (JEP 448), OpenJDK 22 a seventh (JEP 460), OpenJDK 23 an
|
|
||||||
eighth (JEP 469), OpenJDK 24 a ninth (JEP 489) and it reaches its
|
|
||||||
tenth in OpenJDK 25 (JEP 508).
|
|
||||||
|
|
||||||
Stream Gatherers
|
|
||||||
================
|
|
||||||
https://openjdk.org/jeps/461
|
|
||||||
https://openjdk.org/jeps/473
|
|
||||||
https://openjdk.org/jeps/485
|
|
||||||
|
|
||||||
Enhance the Stream API to support custom intermediate operations. This
|
|
||||||
will allow stream pipelines to transform data in ways that are not
|
|
||||||
easily achievable with the existing built-in intermediate operations.
|
|
||||||
|
|
||||||
This API is now finalised (JEP 485). It was introduced as a preview
|
|
||||||
library feature (http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP
|
|
||||||
461) with a second preview in OpenJDK 23 (JEP 473).
|
|
||||||
|
|
||||||
Structured Concurrency
|
|
||||||
======================
|
|
||||||
https://openjdk.org/jeps/428
|
|
||||||
https://openjdk.org/jeps/437
|
|
||||||
https://openjdk.org/jeps/453
|
|
||||||
https://openjdk.org/jeps/462
|
|
||||||
https://openjdk.org/jeps/480
|
|
||||||
https://openjdk.org/jeps/499
|
|
||||||
https://openjdk.org/jeps/505
|
|
||||||
|
|
||||||
Simplify multithreaded programming by introducing an API for
|
|
||||||
structured concurrency. Structured concurrency treats multiple tasks
|
|
||||||
running in different threads as a single unit of work, thereby
|
|
||||||
streamlining error handling and cancellation, improving reliability,
|
|
||||||
and enhancing observability.
|
|
||||||
|
|
||||||
This API was first introduced in incubation
|
|
||||||
(https://openjdk.java.net/jeps/11) in OpenJDK 19 (JEP 428) and had a
|
|
||||||
second round of incubation in OpenJDK 20 (JEP 437). It became a
|
|
||||||
preview feature (http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP
|
|
||||||
453), reached its second preview in OpenJDK 22 (JEP 462), had a third
|
|
||||||
preview in OpenJDK 23 (JEP 480), a fourth in OpenJDK 24 (JEP 499) and
|
|
||||||
reaches its fifth in OpenJDK 25 (JEP 505).
|
|
||||||
|
|
||||||
Compact Source Files and Instance Main Methods
|
|
||||||
==============================================
|
|
||||||
https://openjdk.org/jeps/445
|
|
||||||
https://openjdk.org/jeps/463
|
|
||||||
https://openjdk.org/jeps/477
|
|
||||||
https://openjdk.org/jeps/495
|
|
||||||
https://openjdk.org/jeps/512
|
|
||||||
|
|
||||||
Evolve the Java programming language so that beginners can write their
|
|
||||||
first programs without needing to understand language features
|
|
||||||
designed for large programs. Far from using a separate dialect of the
|
|
||||||
language, beginners can write streamlined declarations for
|
|
||||||
single-class programs and then seamlessly expand their programs to use
|
|
||||||
more advanced features as their skills grow. Experienced developers
|
|
||||||
can likewise enjoy writing small programs succinctly, without the need
|
|
||||||
for constructs intended for programming in the large.
|
|
||||||
|
|
||||||
This library feature is now finalised (JEP 512) with some minor
|
|
||||||
changes from the last release. It was first introduced as a preview
|
|
||||||
(http://openjdk.java.net/jeps/12) in OpenJDK 21 (JEP 445) under the
|
|
||||||
name "Unnamed Classes and Instance Main Methods". It reached a second
|
|
||||||
preview in OpenJDK 22 (JEP 463) and a third in OpenJDK 23 (JEP 477)
|
|
||||||
under the new name, "Implicitly Declared Classes and Instance Main
|
|
||||||
Methods", due to the move away from unnamed classes to an implicitly
|
|
||||||
declared name chosen by the host system. It had a fourth preview in
|
|
||||||
OpenJDK 24 (JEP 495) with new terminology and a revised title ("Simple
|
|
||||||
Source Files and Instance Main Methods"), but otherwise unchanged.
|
|
||||||
|
|
||||||
Scoped Values
|
|
||||||
=============
|
|
||||||
https://openjdk.org/jeps/429
|
|
||||||
https://openjdk.org/jeps/446
|
|
||||||
https://openjdk.org/jeps/464
|
|
||||||
https://openjdk.org/jeps/481
|
|
||||||
https://openjdk.org/jeps/487
|
|
||||||
https://openjdk.org/jeps/506
|
|
||||||
|
|
||||||
Introduce scoped values, which enable the sharing of immutable data
|
|
||||||
within and across threads. They are preferred to thread-local
|
|
||||||
variables, especially when using large numbers of virtual threads.
|
|
||||||
|
|
||||||
This API is now finalised (JEP 506). This API was first introduced in
|
|
||||||
incubation (https://openjdk.java.net/jeps/11) in OpenJDK 20 (JEP
|
|
||||||
429). It became a preview feature (http://openjdk.java.net/jeps/12) in
|
|
||||||
OpenJDK 21 (JEP 446), had a second preview in OpenJDK 22 (JEP 464), a
|
|
||||||
third in OpenJDK 23 (JEP 481) and a fourth in OpenJDK 24 (JEP 487).
|
|
||||||
|
|
||||||
Key Derivation Function API
|
|
||||||
===========================
|
|
||||||
https://openjdk.org/jeps/478
|
|
||||||
https://openjdk.org/jeps/510
|
|
||||||
|
|
||||||
Introduce an API for Key Derivation Functions (KDFs), which are
|
|
||||||
cryptographic algorithms for deriving additional keys from a secret
|
|
||||||
key and other data.
|
|
||||||
|
|
||||||
This API is now finalised (JEP 510). It was first introduced as a
|
|
||||||
preview library feature (http://openjdk.java.net/jeps/12) in OpenJDK
|
|
||||||
24 (JEP 478).
|
|
||||||
|
|
||||||
Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
|
|
||||||
==================================================================
|
|
||||||
https://openjdk.org/jeps/496
|
|
||||||
|
|
||||||
Enhance the security of Java applications by providing an
|
|
||||||
implementation of the quantum-resistant Module-Lattice-Based
|
|
||||||
Key-Encapsulation Mechanism (ML-KEM). Key encapsulation mechanisms
|
|
||||||
(KEMs) are used to secure symmetric keys over insecure communication
|
|
||||||
channels using public key cryptography. ML-KEM is designed to be
|
|
||||||
secure against future quantum computing attacks. It has been
|
|
||||||
standardized by the United States National Institute of Standards and
|
|
||||||
Technology (NIST) in FIPS 203 [0].
|
|
||||||
|
|
||||||
[0] https://csrc.nist.gov/pubs/fips/203/final
|
|
||||||
|
|
||||||
Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
|
|
||||||
==================================================================
|
|
||||||
https://openjdk.org/jeps/497
|
|
||||||
|
|
||||||
Enhance the security of Java applications by providing an
|
|
||||||
implementation of the quantum-resistant Module-Lattice-Based Digital
|
|
||||||
Signature Algorithm (ML-DSA). Digital signatures are used to detect
|
|
||||||
unauthorized modifications to data and to authenticate the identity of
|
|
||||||
signatories. ML-DSA is designed to be secure against future quantum
|
|
||||||
computing attacks. It has been standardized by the United States
|
|
||||||
National Institute of Standards and Technology (NIST) in FIPS 204 [0].
|
|
||||||
|
|
||||||
[0] https://csrc.nist.gov/pubs/fips/204/final
|
|
||||||
|
|
||||||
PEM Encodings of Cryptographic Objects
|
|
||||||
======================================
|
|
||||||
https://openjdk.org/jeps/470
|
|
||||||
|
|
||||||
Introduce an API for encoding objects that represent cryptographic
|
|
||||||
keys, certificates, and certificate revocation lists into the
|
|
||||||
widely-used Privacy-Enhanced Mail (PEM) transport format, and for
|
|
||||||
decoding from that format back into objects.
|
|
||||||
|
|
||||||
This is a preview library feature (http://openjdk.java.net/jeps/12)
|
|
||||||
introduced in OpenJDK 25 (JEP 470).
|
|
||||||
|
|
||||||
Stable Values
|
|
||||||
=============
|
|
||||||
https://openjdk.org/jeps/502
|
|
||||||
|
|
||||||
Introduce an API for stable values, which are objects that hold
|
|
||||||
immutable data. Stable values are treated as constants by the JVM,
|
|
||||||
enabling the same performance optimizations that are enabled by
|
|
||||||
declaring a field final. Compared to final fields, however, stable
|
|
||||||
values offer greater flexibility as to the timing of their
|
|
||||||
initialization.
|
|
||||||
|
|
||||||
This is a preview library feature (http://openjdk.java.net/jeps/12)
|
|
||||||
introduced in OpenJDK 25 (JEP 502).
|
|
||||||
|
|
||||||
Virtual Machine Enhancements
|
|
||||||
============================
|
|
||||||
|
|
||||||
Region Pinning for G1
|
|
||||||
=====================
|
|
||||||
https://openjdk.org/jeps/423
|
|
||||||
|
|
||||||
Reduce latency by implementing region pinning in G1, so that garbage
|
|
||||||
collection need not be disabled during Java Native Interface (JNI)
|
|
||||||
critical regions.
|
|
||||||
|
|
||||||
ZGC: Generational Mode by Default
|
|
||||||
=================================
|
|
||||||
https://openjdk.org/jeps/439
|
|
||||||
https://openjdk.org/jeps/474
|
|
||||||
|
|
||||||
Switch the default mode of the Z Garbage Collector (ZGC) to the
|
|
||||||
generational mode. Deprecate the non-generational mode, with the
|
|
||||||
intent to remove it in a future release.
|
|
||||||
|
|
||||||
Late Barrier Expansion for G1
|
|
||||||
=============================
|
|
||||||
https://openjdk.org/jeps/475
|
|
||||||
|
|
||||||
Simplify the implementation of the G1 garbage collector's barriers,
|
|
||||||
which record information about application memory accesses, by
|
|
||||||
shifting their expansion from early in the C2 JIT's compilation
|
|
||||||
pipeline to later.
|
|
||||||
|
|
||||||
Ahead-of-Time Class Loading & Linking
|
|
||||||
=====================================
|
|
||||||
https://openjdk.org/jeps/483
|
|
||||||
https://openjdk.org/jeps/514
|
|
||||||
|
|
||||||
Improve startup time by making the classes of an application instantly
|
|
||||||
available, in a loaded and linked state, when the HotSpot Java Virtual
|
|
||||||
Machine starts. Achieve this by monitoring the application during one
|
|
||||||
run and storing the loaded and linked forms of all classes in a cache
|
|
||||||
for use in subsequent runs. Lay a foundation for future improvements
|
|
||||||
to both startup and warmup time.
|
|
||||||
|
|
||||||
Using this feature requires a two stage process:
|
|
||||||
|
|
||||||
1. Create the Ahead-of-Time cache from a training run of the
|
|
||||||
application using the option `--XX:AOTCacheOutput=<cache name>` where
|
|
||||||
`<cache name>` is the cache reference to use in later runs.
|
|
||||||
|
|
||||||
2. When running the application in testing or production, use the
|
|
||||||
option `-XX:AOTCache=<cache name>` to run the application with the
|
|
||||||
cache generated in #2.
|
|
||||||
|
|
||||||
Previously, in OpenJDK 24 (JEP 483), the training run and cache
|
|
||||||
creation were handled by two separate steps:
|
|
||||||
|
|
||||||
1. Populate the Ahead-of-Time configuration data with a training run
|
|
||||||
of the application using the options `-XX:AOTMode=record
|
|
||||||
-XX:AOTConfiguration=<config name>` where `<config name>` is the
|
|
||||||
configuration reference to use in #2.
|
|
||||||
|
|
||||||
2. Create the Ahead-of-Time cache using the options
|
|
||||||
`-XX:AOTMode=create -XX:AOTConfiguration=<config name>
|
|
||||||
-XX:AOTCache=<cache name>` where `<config name>` is the configuration
|
|
||||||
reference from #1 and `<cache name>` is the cache reference to use in
|
|
||||||
later runs.
|
|
||||||
|
|
||||||
JEP 514 ("Ahead-of-Time Command-Line Ergonomics") in OpenJDK 25 adds
|
|
||||||
the option `--XX:AOTCacheOutput` which performs both the above steps
|
|
||||||
from a single command-line invocation using a temporary configuration
|
|
||||||
file. A new environment variable, `JDK_AOT_VM_OPTIONS`, can be used
|
|
||||||
to pass options to the cache creation step without affecting the
|
|
||||||
training run step.
|
|
||||||
|
|
||||||
Ahead-of-Time Method Profiling
|
|
||||||
==============================
|
|
||||||
https://openjdk.org/jeps/515
|
|
||||||
|
|
||||||
Improve warmup time by making method-execution profiles from a
|
|
||||||
previous run of an application instantly available, when the HotSpot
|
|
||||||
Java Virtual Machine starts. This will enable the JIT compiler to
|
|
||||||
generate native code immediately upon application startup, rather than
|
|
||||||
having to wait for profiles to be collected.
|
|
||||||
|
|
||||||
Synchronize Virtual Threads without Pinning
|
|
||||||
===========================================
|
|
||||||
https://openjdk.org/jeps/491
|
|
||||||
|
|
||||||
Improve the scalability of Java code that uses synchronized methods
|
|
||||||
and statements by arranging for virtual threads that block in such
|
|
||||||
constructs to release their underlying platform threads for use by
|
|
||||||
other virtual threads. This will eliminate nearly all cases of virtual
|
|
||||||
threads being pinned to platform threads, which severely restricts the
|
|
||||||
number of virtual threads available to handle an application's
|
|
||||||
workload.
|
|
||||||
|
|
||||||
Compact Object Headers
|
|
||||||
======================
|
|
||||||
https://openjdk.org/jeps/450
|
|
||||||
https://openjdk.org/jeps/519
|
|
||||||
|
|
||||||
Reduce the size of object headers in the HotSpot JVM from between 96
|
|
||||||
and 128 bits down to 64 bits on 64-bit architectures. This will reduce
|
|
||||||
heap size, improve deployment density, and increase data locality.
|
|
||||||
|
|
||||||
This is now a production feature in OpenJDK 25 (JEP 519) enabled using
|
|
||||||
`-XX:+UseCompactObjectHeaders`. It was first introduced as an
|
|
||||||
experimental feature (JEP 450) that also required the use of
|
|
||||||
`-XX:+UnlockExperimentalVMOptions`.
|
|
||||||
|
|
||||||
Generational Shenandoah
|
|
||||||
=======================
|
|
||||||
https://openjdk.org/jeps/404
|
|
||||||
https://openjdk.org/jeps/521
|
|
||||||
|
|
||||||
Enhance the Shenandoah garbage collector with experimental
|
|
||||||
generational collection capabilities to improve sustainable
|
|
||||||
throughput, load-spike resilience, and memory utilization.
|
|
||||||
|
|
||||||
This is now a production feature in OpenJDK 25 (JEP 521) enabled using
|
|
||||||
`-XX:ShenandoahGCMode=generational`. It was first introduced as an
|
|
||||||
experimental feature (JEP 404) that also required the use of
|
|
||||||
`-XX:+UnlockExperimentalVMOptions`.
|
|
||||||
|
|
||||||
JFR Cooperative Sampling
|
|
||||||
========================
|
|
||||||
https://openjdk.org/jeps/518
|
|
||||||
|
|
||||||
Improve the stability of the JDK Flight Recorder (JFR) when it
|
|
||||||
asynchronously samples Java thread stacks. Achieve this by walking
|
|
||||||
call stacks only at safepoints, while minimizing safepoint bias.
|
|
||||||
|
|
||||||
JFR Method Timing & Tracing
|
|
||||||
===========================
|
|
||||||
https://openjdk.org/jeps/520
|
|
||||||
|
|
||||||
Extend the JDK Flight Recorder (JFR) with facilities for method timing
|
|
||||||
and tracing via bytecode instrumentation.
|
|
||||||
|
|
||||||
JFR CPU-Time Profiling
|
|
||||||
======================
|
|
||||||
https://openjdk.org/jeps/509
|
|
||||||
|
|
||||||
Enhance the JDK Flight Recorder (JFR) to capture more accurate
|
|
||||||
CPU-time profiling information on Linux.
|
|
||||||
|
|
||||||
This is an experimental feature so its JFR events are tagged with the
|
|
||||||
`@Experimental` annotation. Unlike other experimental virtual machine
|
|
||||||
features, it does not need to be explicitly enabled with
|
|
||||||
`-XX:+UnlockExperimentalVMOptions`.
|
|
||||||
|
|
||||||
Tools
|
|
||||||
=====
|
|
||||||
|
|
||||||
Launch Multi-File Source-Code Programs
|
|
||||||
======================================
|
|
||||||
https://openjdk.org/jeps/458
|
|
||||||
|
|
||||||
Enhance the java application launcher to be able to run a program
|
|
||||||
supplied as multiple files of Java source code. This will make the
|
|
||||||
transition from small programs to larger ones more gradual, enabling
|
|
||||||
developers to choose whether and when to go to the trouble of
|
|
||||||
configuring a build tool.
|
|
||||||
|
|
||||||
Markdown Documentation Comments
|
|
||||||
===============================
|
|
||||||
https://openjdk.org/jeps/467
|
|
||||||
|
|
||||||
Enable JavaDoc documentation comments to be written in Markdown rather
|
|
||||||
than solely in a mixture of HTML and JavaDoc @-tags.
|
|
||||||
|
|
||||||
Linking Run-Time Images without JMODs
|
|
||||||
=====================================
|
|
||||||
https://openjdk.org/jeps/493
|
|
||||||
|
|
||||||
Reduce the size of the JDK by approximately 25% by enabling the jlink
|
|
||||||
tool to create custom run-time images without using the JDK's JMOD
|
|
||||||
files.
|
|
||||||
|
|
||||||
This feature must be enabled when the JDK is built using the
|
|
||||||
--enable-linkable-runtime option. It will not be enabled by default,
|
|
||||||
and some JDK vendors may choose not to enable it.
|
|
||||||
|
|
||||||
DEPRECATIONS
|
|
||||||
============
|
|
||||||
|
|
||||||
Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
|
|
||||||
==================================================================
|
|
||||||
https://openjdk.org/jeps/471
|
|
||||||
|
|
||||||
Deprecate the memory-access methods in sun.misc.Unsafe for removal in
|
|
||||||
a future release. These unsupported methods have been superseded by
|
|
||||||
standard APIs, namely the VarHandle API (JEP 193, OpenJDK 9) and the
|
|
||||||
Foreign Function & Memory API (JEP 454, OpenJDK 22). We strongly
|
|
||||||
encourage library developers to migrate from sun.misc.Unsafe to
|
|
||||||
supported replacements, so that applications can migrate smoothly to
|
|
||||||
modern JDK releases.
|
|
||||||
|
|
||||||
Warn upon Use of Memory-Access Methods in sun.misc.Unsafe
|
|
||||||
=========================================================
|
|
||||||
https://openjdk.org/jeps/498
|
|
||||||
|
|
||||||
Issue a warning at run time on the first occasion that any
|
|
||||||
memory-access method in sun.misc.Unsafe is invoked. All of these
|
|
||||||
unsupported methods were terminally deprecated in JDK 23 (see JEP 471
|
|
||||||
above). They have been superseded by standard APIs, namely the
|
|
||||||
VarHandle API (JEP 193, OpenJDK 9) and the Foreign Function & Memory
|
|
||||||
API (JEP 454, OpenJDK 22). We strongly encourage library developers to
|
|
||||||
migrate from sun.misc.Unsafe to supported replacements, so that
|
|
||||||
applications can migrate smoothly to modern JDK releases.
|
|
||||||
|
|
||||||
Permanently Disable the Security Manager
|
|
||||||
========================================
|
|
||||||
https://openjdk.org/jeps/486
|
|
||||||
|
|
||||||
The Security Manager has not been the primary means of securing
|
|
||||||
client-side Java code for many years, it has rarely been used to
|
|
||||||
secure server-side code, and it is costly to maintain. We therefore
|
|
||||||
deprecated it for removal in OpenJDK 17 via JEP 411 (2021). As the
|
|
||||||
next step toward removing the Security Manager, we will revise the
|
|
||||||
Java Platform specification so that developers cannot enable it and
|
|
||||||
other Platform classes do not refer to it. This change will have no
|
|
||||||
impact on the vast majority of applications, libraries, and tools. We
|
|
||||||
will remove the Security Manager API in a future release.
|
|
||||||
|
|
||||||
REMOVALS
|
|
||||||
========
|
|
||||||
|
|
||||||
String Templates
|
|
||||||
================
|
|
||||||
https://openjdk.org/jeps/430
|
|
||||||
https://openjdk.org/jeps/459
|
|
||||||
https://openjdk.org/jeps/465
|
|
||||||
|
|
||||||
This was a preview feature (http://openjdk.java.net/jeps/12)
|
|
||||||
introduced in OpenJDK 21 (JEP 430) with a second preview in OpenJDK 22
|
|
||||||
(JEP 459). A third preview was proposed but ultimately withdrawn for
|
|
||||||
OpenJDK 23 (JEP 465) and the feature is no longer present. See [0]
|
|
||||||
for further explanation.
|
|
||||||
|
|
||||||
[0] https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html
|
|
||||||
|
|
||||||
Remove the Windows & Linux 32-bit x86 Ports
|
|
||||||
===========================================
|
|
||||||
https://openjdk.org/jeps/449
|
|
||||||
https://openjdk.org/jeps/479
|
|
||||||
https://openjdk.org/jeps/501
|
|
||||||
https://openjdk.org/jeps/503
|
|
||||||
|
|
||||||
Remove the source code and build support for the Windows (JEP 479) &
|
|
||||||
Linux (JEP 503) 32-bit x86 ports. The Windows port was deprecated for
|
|
||||||
removal in JDK 21 by JEP 449 and the Linux port was deprecated for
|
|
||||||
removal in JDK 24 by JEP 501. Both deprecations took place with the
|
|
||||||
express intent to remove the ports in a future release.
|
|
||||||
|
|
||||||
Following this removal of these 32-bit x86 ports, the
|
|
||||||
architecture-agnostic Zero port is the only way to run Java programs
|
|
||||||
on 32-bit x86 processors.
|
|
||||||
|
|
||||||
ZGC: Remove the Non-Generational Mode
|
|
||||||
=====================================
|
|
||||||
https://openjdk.org/jeps/439
|
|
||||||
https://openjdk.org/jeps/474
|
|
||||||
https://openjdk.org/jeps/490
|
|
||||||
|
|
||||||
Remove the non-generational mode of the Z Garbage Collector (ZGC),
|
|
||||||
keeping the generational mode as the default for ZGC (see JEP 439 &
|
|
||||||
474).
|
|
||||||
1051
SOURCES/NEWS
Normal file
1051
SOURCES/NEWS
Normal file
File diff suppressed because it is too large
Load Diff
@ -109,6 +109,8 @@ security.provider.8=
|
|||||||
keystore.type=pkcs12
|
keystore.type=pkcs12
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# Make sure java.security exists before appending
|
||||||
|
test -e "${SECURITY}"/java.security || ( echo "${SECURITY}/java.security not found" && false )
|
||||||
cat >> "${SECURITY}"/java.security <<'EOF'
|
cat >> "${SECURITY}"/java.security <<'EOF'
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -336,7 +336,7 @@
|
|||||||
# New Version-String scheme-style defines
|
# New Version-String scheme-style defines
|
||||||
%global featurever 25
|
%global featurever 25
|
||||||
%global interimver 0
|
%global interimver 0
|
||||||
%global updatever 1
|
%global updatever 2
|
||||||
%global patchver 0
|
%global patchver 0
|
||||||
# buildjdkver is usually same as %%{featurever},
|
# buildjdkver is usually same as %%{featurever},
|
||||||
# but in time of bootstrap of next jdk, it is featurever-1,
|
# but in time of bootstrap of next jdk, it is featurever-1,
|
||||||
@ -390,7 +390,7 @@
|
|||||||
%global origin_nice OpenJDK
|
%global origin_nice OpenJDK
|
||||||
%global top_level_dir_name %{vcstag}
|
%global top_level_dir_name %{vcstag}
|
||||||
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
||||||
%global buildver 8
|
%global buildver 10
|
||||||
%global rpmrelease 2
|
%global rpmrelease 2
|
||||||
#%%global tagsuffix %%{nil}
|
#%%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
|
# 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
|
||||||
@ -689,8 +689,9 @@ Patch1001: fips-%{featurever}u-%{fipsver}.patch
|
|||||||
# OpenJDK patches which missed last update
|
# OpenJDK patches which missed last update
|
||||||
#
|
#
|
||||||
#############################################
|
#############################################
|
||||||
|
# JDK-8372534: Update Libpng to 1.6.51
|
||||||
# Currently empty
|
# Integrated in 25.0.3
|
||||||
|
Patch2001: jdk8372534-libpng-1.6.51.patch
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
#
|
#
|
||||||
@ -783,7 +784,7 @@ Provides: bundled(lcms2) = 2.17.0
|
|||||||
# Version in src/java.desktop/share/native/libjavajpeg/jpeglib.h
|
# Version in src/java.desktop/share/native/libjavajpeg/jpeglib.h
|
||||||
Provides: bundled(libjpeg) = 6b
|
Provides: bundled(libjpeg) = 6b
|
||||||
# Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h
|
# Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h
|
||||||
Provides: bundled(libpng) = 1.6.47
|
Provides: bundled(libpng) = 1.6.51
|
||||||
# Version in src/java.base/share/native/libzip/zlib/zlib.h
|
# Version in src/java.base/share/native/libzip/zlib/zlib.h
|
||||||
Provides: bundled(zlib) = 1.3.1
|
Provides: bundled(zlib) = 1.3.1
|
||||||
# We link statically against libstdc++ to increase portability
|
# We link statically against libstdc++ to increase portability
|
||||||
@ -1004,6 +1005,8 @@ sh %{SOURCE12} %{top_level_dir_name}
|
|||||||
pushd %{top_level_dir_name}
|
pushd %{top_level_dir_name}
|
||||||
# Add crypto policy and FIPS support
|
# Add crypto policy and FIPS support
|
||||||
%patch -P1001 -p1
|
%patch -P1001 -p1
|
||||||
|
# Add libpng update ahead of 25.0.3
|
||||||
|
%patch -P2001 -p1
|
||||||
popd # openjdk
|
popd # openjdk
|
||||||
|
|
||||||
echo "Generating %{alt_java_name} man page"
|
echo "Generating %{alt_java_name} man page"
|
||||||
@ -1723,6 +1726,11 @@ $JAVA_HOME/bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -versi
|
|||||||
$JAVA_HOME/bin/java -Djava.locale.providers=CLDR $(echo $(basename %{SOURCE18})|sed "s|\.java||") CLDR
|
$JAVA_HOME/bin/java -Djava.locale.providers=CLDR $(echo $(basename %{SOURCE18})|sed "s|\.java||") CLDR
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Check blocked.certs is valid (OPENJDK-4362)
|
||||||
|
jtreg_test=$(pwd)/%{top_level_dir_name}/test/jdk/sun/security/lib/CheckBlockedCerts.java
|
||||||
|
jtreg_dir=$(dirname ${jtreg_test})
|
||||||
|
$JAVA_HOME/bin/java --add-exports java.base/sun.security.util=ALL-UNNAMED -Dtest.src=${jtreg_dir} ${jtreg_test}
|
||||||
|
|
||||||
# Check src.zip has all sources. See RHBZ#1130490
|
# Check src.zip has all sources. See RHBZ#1130490
|
||||||
unzip -l $JAVA_HOME/lib/src.zip | grep 'sun.misc.Unsafe'
|
unzip -l $JAVA_HOME/lib/src.zip | grep 'sun.misc.Unsafe'
|
||||||
|
|
||||||
@ -1966,6 +1974,24 @@ done
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jan 28 2026 eabdullin <eabdullin@almalinux.org> - 1:25.0.2.0.10-2
|
||||||
|
- Portable build
|
||||||
|
|
||||||
|
* Mon Jan 12 2026 Andrew Hughes <gnu.andrew@redhat.com> - 1:25.0.2.0.10-2
|
||||||
|
- Add JDK-8372534 libpng 1.6.51 ahead of 25.0.3
|
||||||
|
- Bump libpng version to 1.6.51 following JDK-8372534
|
||||||
|
- Add CVEs for 25.0.2 to NEWS
|
||||||
|
- Correct version and date for this upcoming release in NEWS
|
||||||
|
- Related: OPENJDK-4359
|
||||||
|
|
||||||
|
* Mon Jan 12 2026 Andrew Hughes <gnu.andrew@redhat.com> - 1:25.0.2.0.10-1
|
||||||
|
- Update to jdk-25.0.2+10 (GA)
|
||||||
|
- Update release notes to 25.0.2+10
|
||||||
|
- Add test to ensure blocked.certs is valid (OPENJDK-4362)
|
||||||
|
- ** This tarball is embargoed until 2026-01-20 @ 1pm PT. **
|
||||||
|
- Resolves: OPENJDK-4359
|
||||||
|
- Resolves: OPENJDK-4362
|
||||||
|
|
||||||
* Tue Dec 02 2025 Severin Gehwolf <sgehwolf@redhat.com> - 1:25.0.1.0.8-2
|
* Tue Dec 02 2025 Severin Gehwolf <sgehwolf@redhat.com> - 1:25.0.1.0.8-2
|
||||||
- Switch from static-libs-image to static-libs-graal-image to avoid large unneeded libjvm.a
|
- Switch from static-libs-image to static-libs-graal-image to avoid large unneeded libjvm.a
|
||||||
- Resolves: OPENJDK-4197
|
- Resolves: OPENJDK-4197
|
||||||
1598
SOURCES/jdk8372534-libpng-1.6.51.patch
Normal file
1598
SOURCES/jdk8372534-libpng-1.6.51.patch
Normal file
File diff suppressed because it is too large
Load Diff
1
SPECS/java-25-openjdk.spec
Symbolic link
1
SPECS/java-25-openjdk.spec
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../SOURCES/java-25-openjdk-portable.specfile
|
||||||
@ -1,7 +0,0 @@
|
|||||||
# recipients: java-qa
|
|
||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- rhel-10
|
|
||||||
decision_context: osci_compose_gate
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
|
||||||
2724
java-25-openjdk.spec
2724
java-25-openjdk.spec
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
inspections:
|
|
||||||
javabytecode: off
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by:
|
|
||||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
# Builds the RPM on CentOS 9 or 10
|
|
||||||
|
|
||||||
centpkg -v build
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck build_centos.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by:
|
|
||||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
# Builds the portable on CentOS
|
|
||||||
|
|
||||||
centpkg -v build --target java-openjdk-portable-build --rhel-target none
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck build_centos_portable_build.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by:
|
|
||||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
# Builds the RPM on RHEL 10
|
|
||||||
|
|
||||||
NVR=${1}
|
|
||||||
USER=${2}
|
|
||||||
|
|
||||||
if test "${NVR}" = ""; then
|
|
||||||
echo "${0} <NVR> <USER>";
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${USER}" = ""; then
|
|
||||||
echo "${0} <NVR> <USER>";
|
|
||||||
exit 2;
|
|
||||||
fi
|
|
||||||
|
|
||||||
METADATA="{\"osci\": {\"upstream_nvr\": \"${NVR}\", \"upstream_owner_name\": \"${USER}\"}, \"rhel-target\": \"latest\"}"
|
|
||||||
rhpkg -v build --target=java-openjdk-rhel-10-build --custom-user-metadata "${METADATA}"
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck build_rhel_10.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by:
|
|
||||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
# Builds the portable on RHEL 7
|
|
||||||
|
|
||||||
rhpkg -v build --target=java-openjdk-rhel-7-build --skip-nvr-check
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck build_rhel_7_portable_build.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by:
|
|
||||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
# Builds the RPM on RHEL 8
|
|
||||||
|
|
||||||
NVR=${1}
|
|
||||||
USER=${2}
|
|
||||||
|
|
||||||
if test "${NVR}" = ""; then
|
|
||||||
echo "${0} <NVR> <USER>";
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${USER}" = ""; then
|
|
||||||
echo "${0} <NVR> <USER>";
|
|
||||||
exit 2;
|
|
||||||
fi
|
|
||||||
|
|
||||||
METADATA="{\"osci\": {\"upstream_nvr\": \"${NVR}\", \"upstream_owner_name\": \"${USER}\"}, \"rhel-target\": \"latest\"}"
|
|
||||||
rhpkg -v build --target=java-openjdk-rhel-8-build --custom-user-metadata "${METADATA}"
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck build_rhel_8.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by:
|
|
||||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
# Builds the RPM on RHEL 9
|
|
||||||
|
|
||||||
NVR=${1}
|
|
||||||
USER=${2}
|
|
||||||
|
|
||||||
if test "${NVR}" = ""; then
|
|
||||||
echo "${0} <NVR> <USER>";
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${USER}" = ""; then
|
|
||||||
echo "${0} <NVR> <USER>";
|
|
||||||
exit 2;
|
|
||||||
fi
|
|
||||||
|
|
||||||
METADATA="{\"osci\": {\"upstream_nvr\": \"${NVR}\", \"upstream_owner_name\": \"${USER}\"}, \"rhel-target\": \"latest\"}"
|
|
||||||
rhpkg -v build --target=java-openjdk-rhel-9-build --custom-user-metadata "${METADATA}"
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck build_rhel_9.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by:
|
|
||||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
# Builds the portable on RHEL 8
|
|
||||||
|
|
||||||
rhpkg -v build --target=java-openjdk-rhel-8-build --skip-nvr-check
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck build_rhel_portable_build.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by:
|
|
||||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
# Builds a scratch build of vanilla OpenJDK with no local patches
|
|
||||||
|
|
||||||
SEPARATE_ARCHES=${1}
|
|
||||||
CMD="--target java-openjdk-rhel-8-build --skip-nvr-check --nowait";
|
|
||||||
SUPPORTED_ARCHES="aarch64 ppc64le s390x x86_64";
|
|
||||||
|
|
||||||
if [ "x${SEPARATE_ARCHES}" = "x" ] ; then
|
|
||||||
SEPARATE_ARCHES=0;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ${SEPARATE_ARCHES} -eq 1 ] ; then
|
|
||||||
for arch in ${SUPPORTED_ARCHES}; do \
|
|
||||||
rhpkg -v build --arches ${arch} --scratch ${CMD} ; \
|
|
||||||
done && brew watch-task --mine
|
|
||||||
else
|
|
||||||
rhpkg -v build ${CMD} && brew watch-task --mine
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck build_vanilla.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,61 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by Andrew John Hughes <gnu.andrew@redhat.com>.
|
|
||||||
#
|
|
||||||
# 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 <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
TREE=${1}
|
|
||||||
|
|
||||||
if test "${TREE}" = ""; then
|
|
||||||
TREE=${PWD}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "${TREE}"/nashorn/.hg ] || [ -e "${TREE}"/nashorn/merge.changeset ] ; then
|
|
||||||
NASHORN="nashorn" ;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "${TREE}"/corba/.hg ] || [ -e "${TREE}"/corba/merge.changeset ] ; then
|
|
||||||
CORBA="corba";
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "${TREE}"/jaxp/.hg ] || [ -e "${TREE}"/jaxp/merge.changeset ] ; then
|
|
||||||
JAXP="jaxp";
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "${TREE}"/jaxws/.hg ] || [ -e "${TREE}"/jaxws/merge.changeset ] ; then
|
|
||||||
JAXWS="jaxws";
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "${TREE}"/langtools/.hg ] || [ -e "${TREE}"/langtools/merge.changeset ] ; then
|
|
||||||
LANGTOOLS="langtools";
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "${TREE}"/jdk/.hg ] || [ -e "${TREE}"/jdk/merge.changeset ] ; then
|
|
||||||
JDK="jdk";
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "${TREE}"/hotspot/.hg ] || [ -e "${TREE}"/hotspot/merge.changeset ] ; then
|
|
||||||
HOTSPOT="hotspot";
|
|
||||||
fi
|
|
||||||
|
|
||||||
SUBTREES="${CORBA} ${JAXP} ${JAXWS} ${LANGTOOLS} ${NASHORN} ${JDK} ${HOTSPOT}";
|
|
||||||
echo "${SUBTREES}"
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck discover_trees.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,294 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by:
|
|
||||||
# Andrew John Hughes <gnu.andrew@redhat.com>
|
|
||||||
# Thomas Fitzsimmons <fitzsim@redhat.com>
|
|
||||||
# Jiri Vanek <jvanek@redhat.com>
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
# Generates the source tarball for OpenJDK projects.
|
|
||||||
#
|
|
||||||
# There are multiple ways to specify the source code location and version:
|
|
||||||
#
|
|
||||||
# 1. Specify the version (VERSION), the location of the Git repository
|
|
||||||
# (REPO_ROOT) and the root of the output tarball name (FILE_NAME_ROOT)
|
|
||||||
# 2. Specify the version (VERSION) along with an upstream project name
|
|
||||||
# (PROJECT_NAME) and repository name (REPO_NAME) that can be used
|
|
||||||
# to construct the URL of the upstream OpenJDK repository.
|
|
||||||
# 3. Specify OPENJDK_LATEST=1 and allow the script to obtain the JDK
|
|
||||||
# feature version from the spec file, which is then used to
|
|
||||||
# obtain the latest build promotion from the upstream repository.
|
|
||||||
#
|
|
||||||
# An appropriate bootstrap JDK is also required for when ./configure
|
|
||||||
# is run within the checked out repository to generate the .src-rev.
|
|
||||||
# file. This can be specified by setting BOOT_JDK.
|
|
||||||
#
|
|
||||||
# Example 1:
|
|
||||||
# This will check out the specified version from the specified
|
|
||||||
# repository and construct a tarball called openjdk-17.0.3+5.tar.xz:
|
|
||||||
#
|
|
||||||
# $ VERSION=jdk-17.0.3+5 FILE_NAME_ROOT=open${VERSION} \
|
|
||||||
# REPO_ROOT=$HOME/projects/openjdk/upstream/17u \
|
|
||||||
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
|
|
||||||
#
|
|
||||||
# Example 2:
|
|
||||||
# This will check out the same version as example 1, but from the
|
|
||||||
# upstream repository:
|
|
||||||
#
|
|
||||||
# $ VERSION=jdk-17.0.3+5 PROJECT_NAME=openjdk REPO_NAME=jdk17u \
|
|
||||||
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
|
|
||||||
#
|
|
||||||
# Example 3:
|
|
||||||
# This will read the OpenJDK feature version from the spec file, then create a
|
|
||||||
# tarball from the most recent tag for that version in the upstream Git
|
|
||||||
# repository.
|
|
||||||
#
|
|
||||||
# $ OPENJDK_LATEST=1 \
|
|
||||||
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
|
|
||||||
#
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
OPENJDK_URL_DEFAULT=https://github.com
|
|
||||||
COMPRESSION_DEFAULT=xz
|
|
||||||
|
|
||||||
if [ "$1" = "help" ] ; then
|
|
||||||
echo "Behaviour may be specified by setting the following variables:"
|
|
||||||
echo
|
|
||||||
echo "VERSION - the version of the specified OpenJDK project"
|
|
||||||
echo " (required unless OPENJDK_LATEST is set)"
|
|
||||||
echo "PROJECT_NAME - the name of the OpenJDK project being archived"
|
|
||||||
echo " (needed to compute REPO_ROOT and/or"
|
|
||||||
echo " FILE_NAME_ROOT automatically;"
|
|
||||||
echo " optional if they are set explicitly)"
|
|
||||||
echo "REPO_NAME - the name of the OpenJDK repository"
|
|
||||||
echo " (needed to compute REPO_ROOT automatically;"
|
|
||||||
echo " optional if REPO_ROOT is set explicitly)"
|
|
||||||
echo "OPENJDK_URL - the URL to retrieve code from"
|
|
||||||
echo " (defaults to ${OPENJDK_URL_DEFAULT})"
|
|
||||||
echo "COMPRESSION - the compression type to use"
|
|
||||||
echo " (defaults to ${COMPRESSION_DEFAULT})"
|
|
||||||
echo "FILE_NAME_ROOT - name of the archive, minus extensions"
|
|
||||||
echo " (defaults to PROJECT_NAME-VERSION)"
|
|
||||||
echo "REPO_ROOT - the location of the Git repository to archive"
|
|
||||||
echo " (defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME.git)"
|
|
||||||
echo "TO_COMPRESS - what part of clone to pack"
|
|
||||||
echo " (defaults to ${VERSION})"
|
|
||||||
echo "BOOT_JDK - the bootstrap JDK to satisfy the configure run"
|
|
||||||
echo " (defaults to packaged JDK version)"
|
|
||||||
echo "WITH_TEMP - run in a temporary directory"
|
|
||||||
echo " (defaults to disabled)"
|
|
||||||
echo "OPENJDK_LATEST - deduce VERSION from most recent upstream tag"
|
|
||||||
echo " (implies WITH_TEMP, computes everything else"
|
|
||||||
echo " automatically; Note: accesses network to read"
|
|
||||||
echo " tag list from remote Git repository)"
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$OPENJDK_LATEST" != "" ] ; then
|
|
||||||
FEATURE_VERSION=$(echo '%featurever' \
|
|
||||||
| rpmspec --shell ./*.spec 2>/dev/null \
|
|
||||||
| grep --after-context 1 featurever \
|
|
||||||
| tail --lines 1)
|
|
||||||
PROJECT_NAME=openjdk
|
|
||||||
REPO_NAME=jdk"${FEATURE_VERSION}"u
|
|
||||||
# Skip -ga tags since those are the same as the most recent non-ga tag, and
|
|
||||||
# the non-ga tag is the one that is used to generated the official source
|
|
||||||
# tarball. For example:
|
|
||||||
# ca760c86642aa2e0d9b571aaabac054c0239fbdc refs/tags/jdk-17.0.10-ga^{}
|
|
||||||
# 25a2e6c20c9a96853714284cabc6b456eb095070 refs/tags/jdk-17.0.10-ga
|
|
||||||
# ca760c86642aa2e0d9b571aaabac054c0239fbdc refs/tags/jdk-17.0.10+7^{}
|
|
||||||
# e49c5749b10f3e90274b72e9279f794fdd191d27 refs/tags/jdk-17.0.10+7
|
|
||||||
VERSION=$(git ls-remote --tags --refs --sort=-version:refname \
|
|
||||||
"${OPENJDK_URL_DEFAULT}/${PROJECT_NAME}/${REPO_NAME}.git" \
|
|
||||||
"jdk-${FEATURE_VERSION}*" \
|
|
||||||
| grep --invert-match '\-ga$' \
|
|
||||||
| head --lines 1 | cut --characters 52-)
|
|
||||||
FILE_NAME_ROOT=open${VERSION}
|
|
||||||
WITH_TEMP=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$WITH_TEMP" != "" ] ; then
|
|
||||||
pushd "$(mktemp --directory --tmpdir temp-generated-source-tarball-XXX)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$VERSION" = "" ] ; then
|
|
||||||
echo "No VERSION specified"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
echo "Version: ${VERSION}"
|
|
||||||
|
|
||||||
NUM_VER=${VERSION##jdk-}
|
|
||||||
RELEASE_VER=${NUM_VER%%+*}
|
|
||||||
BUILD_VER=${NUM_VER##*+}
|
|
||||||
MAJOR_VER=${RELEASE_VER%%.*}
|
|
||||||
echo "Major version is ${MAJOR_VER}, release ${RELEASE_VER}, build ${BUILD_VER}"
|
|
||||||
|
|
||||||
if [ "$BOOT_JDK" = "" ] ; then
|
|
||||||
echo "No boot JDK specified".
|
|
||||||
BOOT_JDK=/usr/lib/jvm/java-${MAJOR_VER}-openjdk;
|
|
||||||
echo -n "Checking for ${BOOT_JDK}...";
|
|
||||||
if [ -d "${BOOT_JDK}" ] && [ -x "${BOOT_JDK}"/bin/java ] ; then
|
|
||||||
echo "Boot JDK found at ${BOOT_JDK}";
|
|
||||||
else
|
|
||||||
echo "Not found";
|
|
||||||
PREV_VER=$((MAJOR_VER - 1));
|
|
||||||
BOOT_JDK=/usr/lib/jvm/java-${PREV_VER}-openjdk;
|
|
||||||
echo -n "Checking for ${BOOT_JDK}...";
|
|
||||||
if [ -d ${BOOT_JDK} ] && [ -x ${BOOT_JDK}/bin/java ] ; then
|
|
||||||
echo "Boot JDK found at ${BOOT_JDK}";
|
|
||||||
else
|
|
||||||
echo "Not found";
|
|
||||||
exit 4;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Boot JDK: ${BOOT_JDK}";
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$OPENJDK_URL" = "" ] ; then
|
|
||||||
OPENJDK_URL=${OPENJDK_URL_DEFAULT}
|
|
||||||
echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}"
|
|
||||||
else
|
|
||||||
echo "OpenJDK URL: ${OPENJDK_URL}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$COMPRESSION" = "" ] ; then
|
|
||||||
# rhel 5 needs tar.gz
|
|
||||||
COMPRESSION=${COMPRESSION_DEFAULT}
|
|
||||||
fi
|
|
||||||
echo "Creating a tar.${COMPRESSION} archive"
|
|
||||||
|
|
||||||
if [ "$FILE_NAME_ROOT" = "" ] ; then
|
|
||||||
if [ "$PROJECT_NAME" = "" ] ; then
|
|
||||||
echo "No PROJECT_NAME specified, needed by FILE_NAME_ROOT"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
FILE_NAME_ROOT=${PROJECT_NAME}-${VERSION}
|
|
||||||
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
|
|
||||||
fi
|
|
||||||
if [ "$REPO_ROOT" = "" ] ; then
|
|
||||||
if [ "$PROJECT_NAME" = "" ] ; then
|
|
||||||
echo "No PROJECT_NAME specified, needed by REPO_ROOT"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ "$REPO_NAME" = "" ] ; then
|
|
||||||
echo "No REPO_NAME specified, needed by REPO_ROOT"
|
|
||||||
exit 3
|
|
||||||
fi
|
|
||||||
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
|
|
||||||
echo "No repository root specified; default to ${REPO_ROOT}"
|
|
||||||
fi;
|
|
||||||
|
|
||||||
if [ "$TO_COMPRESS" = "" ] ; then
|
|
||||||
TO_COMPRESS="${VERSION}"
|
|
||||||
echo "No targets to be compressed specified ; default to ${TO_COMPRESS}"
|
|
||||||
fi;
|
|
||||||
|
|
||||||
echo -e "Settings:"
|
|
||||||
echo -e "\tVERSION: ${VERSION}"
|
|
||||||
echo -e "\tPROJECT_NAME: ${PROJECT_NAME}"
|
|
||||||
echo -e "\tREPO_NAME: ${REPO_NAME}"
|
|
||||||
echo -e "\tOPENJDK_URL: ${OPENJDK_URL}"
|
|
||||||
echo -e "\tCOMPRESSION: ${COMPRESSION}"
|
|
||||||
echo -e "\tFILE_NAME_ROOT: ${FILE_NAME_ROOT}"
|
|
||||||
echo -e "\tREPO_ROOT: ${REPO_ROOT}"
|
|
||||||
echo -e "\tTO_COMPRESS: ${TO_COMPRESS}"
|
|
||||||
echo -e "\tBOOT_JDK: ${BOOT_JDK}"
|
|
||||||
echo -e "\tWITH_TEMP: ${WITH_TEMP}"
|
|
||||||
echo -e "\tOPENJDK_LATEST: ${OPENJDK_LATEST}"
|
|
||||||
|
|
||||||
if [ -d "${FILE_NAME_ROOT}" ] ; then
|
|
||||||
echo "Reusing existing ${FILE_NAME_ROOT}"
|
|
||||||
STAT_TIME="$(stat --format=%Y "${FILE_NAME_ROOT}")"
|
|
||||||
TAR_TIME="$(date --date=@"${STAT_TIME}" --iso-8601=seconds)"
|
|
||||||
else
|
|
||||||
mkdir "${FILE_NAME_ROOT}"
|
|
||||||
pushd "${FILE_NAME_ROOT}"
|
|
||||||
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
|
|
||||||
if realpath -q "${REPO_ROOT}"; then
|
|
||||||
echo "Local path detected; not adding depth argument";
|
|
||||||
DEPTH="--";
|
|
||||||
else
|
|
||||||
DEPTH="--depth=1";
|
|
||||||
echo "Remote repository detected; adding ${DEPTH}";
|
|
||||||
fi
|
|
||||||
git clone -b "${VERSION}" "${DEPTH}" "${REPO_ROOT}" "${VERSION}"
|
|
||||||
pushd "${VERSION}"
|
|
||||||
TAR_TIME="$(git log --max-count 1 --format=%cI)"
|
|
||||||
popd
|
|
||||||
popd
|
|
||||||
fi
|
|
||||||
pushd "${FILE_NAME_ROOT}"
|
|
||||||
# Generate .src-rev so build has knowledge of the revision the tarball was
|
|
||||||
# created from
|
|
||||||
mkdir build
|
|
||||||
pushd build
|
|
||||||
sh "${PWD}"/../"${VERSION}"/configure --with-boot-jdk="${BOOT_JDK}"
|
|
||||||
make store-source-revision
|
|
||||||
popd
|
|
||||||
rm -rf build
|
|
||||||
|
|
||||||
# Remove commit checks
|
|
||||||
echo "Removing $(find "${VERSION}" -name '.jcheck' -print)"
|
|
||||||
find "${VERSION}" -name '.jcheck' -print0 | xargs -0 rm -r
|
|
||||||
|
|
||||||
# Remove history and GHA
|
|
||||||
echo "find ${VERSION} -name '.hgtags'"
|
|
||||||
find "${VERSION}" -name '.hgtags' -exec rm -v '{}' '+'
|
|
||||||
echo "find ${VERSION} -name '.hgignore'"
|
|
||||||
find "${VERSION}" -name '.hgignore' -exec rm -v '{}' '+'
|
|
||||||
echo "find ${VERSION} -name '.gitattributes'"
|
|
||||||
find "${VERSION}" -name '.gitattributes' -exec rm -v '{}' '+'
|
|
||||||
echo "find ${VERSION} -name '.gitignore'"
|
|
||||||
find "${VERSION}" -name '.gitignore' -exec rm -v '{}' '+'
|
|
||||||
# Work around some Git objects not having write permissions.
|
|
||||||
echo "chmod --recursive u+w ${VERSION}/.git"
|
|
||||||
chmod --recursive u+w "${VERSION}"/.git
|
|
||||||
echo "find ${VERSION} -name '.git'"
|
|
||||||
find "${VERSION}" -name '.git' -exec rm -rv '{}' '+'
|
|
||||||
echo "find ${VERSION} -name '.github'"
|
|
||||||
find "${VERSION}" -name '.github' -exec rm -rv '{}' '+'
|
|
||||||
|
|
||||||
echo "Compressing remaining forest"
|
|
||||||
if [ "$COMPRESSION" = "xz" ] ; then
|
|
||||||
SWITCH=cJf
|
|
||||||
else
|
|
||||||
SWITCH=czf
|
|
||||||
fi
|
|
||||||
EA_PART="$(awk -F= \
|
|
||||||
'/^DEFAULT_PROMOTED_VERSION_PRE/ { if ($2) print "-"$2 }' \
|
|
||||||
"${VERSION}"/make/conf/version-numbers.conf)"
|
|
||||||
TARBALL_NAME=${FILE_NAME_ROOT}${EA_PART}.tar.${COMPRESSION}
|
|
||||||
XZ_OPT=${XZ_OPT-"-T0"} \
|
|
||||||
tar --mtime="${TAR_TIME}" --owner=root --group=root --sort=name \
|
|
||||||
--exclude-vcs -$SWITCH "${TARBALL_NAME}" "${TO_COMPRESS}"
|
|
||||||
mv "${TARBALL_NAME}" ..
|
|
||||||
popd
|
|
||||||
if [ "$WITH_TEMP" != "" ] ; then
|
|
||||||
echo "Tarball is: $(realpath .)/${TARBALL_NAME}"
|
|
||||||
popd
|
|
||||||
else
|
|
||||||
echo -n "Done. You may want to remove the uncompressed version"
|
|
||||||
echo " - $FILE_NAME_ROOT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck generate_source_tarball.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,172 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
# Copyright (C) 2025 Red Hat, Inc.
|
|
||||||
# Original written by Antonio Vieiro <avieirov@redhat.com>
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
if [ $# -ne 1 ]; then
|
|
||||||
echo "Usage: $0 openjdk-root-directory"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
JDKROOT=$1
|
|
||||||
|
|
||||||
if [ ! -d "${JDKROOT}" ] ; then
|
|
||||||
echo "${JDKROOT} is not a directory.";
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Work out the OpenJDK version
|
|
||||||
# OpenJDK >= 10 has its version in the build machinery
|
|
||||||
# OpenJDK >= 17 stores it in a new location (JDK-8258246)
|
|
||||||
VERSION_FILE="${JDKROOT}"/make/conf/version-numbers.conf
|
|
||||||
printf "Checking for %s..." "${VERSION_FILE}";
|
|
||||||
if [ ! -f "${VERSION_FILE}" ] ; then
|
|
||||||
VERSION_FILE="${JDKROOT}"/make/autoconf/version-numbers
|
|
||||||
echo "Not found; using old version file ${VERSION_FILE}";
|
|
||||||
else
|
|
||||||
echo "found.";
|
|
||||||
fi
|
|
||||||
if [ -e "${VERSION_FILE}" ] ; then
|
|
||||||
openjdk_version=$(grep '^DEFAULT_VERSION_FEATURE' "${VERSION_FILE}" | cut -d '=' -f 2)
|
|
||||||
elif [ -e "${JDKROOT}"/jdk/src/java.base/share/classes/java/lang/Object.java ] ; then
|
|
||||||
openjdk_version=9;
|
|
||||||
elif [ -e "${JDKROOT}"/common/autoconf ] ; then
|
|
||||||
openjdk_version=8;
|
|
||||||
else
|
|
||||||
openjdk_version=7;
|
|
||||||
fi
|
|
||||||
echo "OpenJDK version: ${openjdk_version}";
|
|
||||||
|
|
||||||
#
|
|
||||||
# Freetype
|
|
||||||
#
|
|
||||||
if [ "${openjdk_version}" -gt 8 ] ; then
|
|
||||||
FREETYPE=src/java.desktop/share/native/libfreetype/include/freetype/freetype.h
|
|
||||||
ABS_FREETYPE="${JDKROOT}"/"${FREETYPE}"
|
|
||||||
if [ ! -f "${ABS_FREETYPE}" ]; then
|
|
||||||
echo "Freetype header not found!"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
FREETYPE_VERSION=$(awk '/#define FREETYPE_MAJOR/ {MAJOR=$3} /#define FREETYPE_MINOR/ {MINOR=$3} /#define FREETYPE_PATCH/ {PATCH=$3} END {printf "%s.%s.%s", MAJOR, MINOR, PATCH}' "${ABS_FREETYPE}")
|
|
||||||
else
|
|
||||||
echo "No bundled FreeType on ${openjdk_version}";
|
|
||||||
fi
|
|
||||||
|
|
||||||
# giflib
|
|
||||||
if [ "${openjdk_version}" -gt 8 ] ; then
|
|
||||||
GIFLIB=src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h
|
|
||||||
else
|
|
||||||
GIFLIB=jdk/src/share/native/sun/awt/giflib/gif_lib.h
|
|
||||||
fi
|
|
||||||
ABS_GIFLIB="${JDKROOT}"/"${GIFLIB}"
|
|
||||||
if [ ! -f "${ABS_GIFLIB}" ]; then
|
|
||||||
echo "giflib header not found!"
|
|
||||||
exit 3
|
|
||||||
fi
|
|
||||||
GIFLIB_VERSION=$(awk '/#define GIFLIB_MAJOR/ {MAJOR=$3} /#define GIFLIB_MINOR/ {MINOR=$3} /#define GIFLIB_RELEASE/ {PATCH=$3} END {printf "%s.%s.%s", MAJOR, MINOR, PATCH}' "${ABS_GIFLIB}")
|
|
||||||
|
|
||||||
# harfbuzz
|
|
||||||
if [ "${openjdk_version}" -gt 8 ] ; then
|
|
||||||
HARFBUZZ=src/java.desktop/share/native/libharfbuzz/hb-version.h
|
|
||||||
ABS_HARFBUZZ="${JDKROOT}/${HARFBUZZ}"
|
|
||||||
if [ ! -f "${ABS_HARFBUZZ}" ]; then
|
|
||||||
echo "HarfBuzz header not found!"
|
|
||||||
exit 4
|
|
||||||
fi
|
|
||||||
HARFBUZZ_VERSION=$(awk '/#define HB_VERSION_MAJOR/ {MAJOR=$3} /#define HB_VERSION_MINOR/ {MINOR=$3} /#define HB_VERSION_MICRO/ {PATCH=$3} END {printf "%s.%s.%s", MAJOR, MINOR, PATCH}' "${ABS_HARFBUZZ}")
|
|
||||||
else
|
|
||||||
echo "No HarfBuzz on ${openjdk_version}";
|
|
||||||
fi
|
|
||||||
|
|
||||||
# lcms
|
|
||||||
if [ "${openjdk_version}" -gt 8 ] ; then
|
|
||||||
LCMS=src/java.desktop/share/native/liblcms/lcms2.h
|
|
||||||
else
|
|
||||||
LCMS=jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h
|
|
||||||
fi
|
|
||||||
ABS_LCMS="${JDKROOT}"/"${LCMS}"
|
|
||||||
if [ ! -f "${ABS_LCMS}" ]; then
|
|
||||||
echo "lcms header not found!"
|
|
||||||
exit 5
|
|
||||||
fi
|
|
||||||
LCMS_VERSION=$(awk '/#define LCMS_VERSION/ { MAJOR=int($3 / 1000); REST=$3 % 1000; MINOR=int(REST / 10); PATCH=REST % 10; } END {printf "%s.%s.%s", MAJOR, MINOR, PATCH}' "${ABS_LCMS}")
|
|
||||||
|
|
||||||
# jpeg
|
|
||||||
if [ "${openjdk_version}" -gt 8 ] ; then
|
|
||||||
JPEG=src/java.desktop/share/native/libjavajpeg/jpeglib.h
|
|
||||||
else
|
|
||||||
JPEG=jdk/src/share/native/sun/awt/image/jpeg/jpeglib.h
|
|
||||||
fi
|
|
||||||
ABS_JPEG="${JDKROOT}"/"${JPEG}"
|
|
||||||
if [ ! -f "${ABS_JPEG}" ]; then
|
|
||||||
echo "jpeg header not found!"
|
|
||||||
exit 6
|
|
||||||
fi
|
|
||||||
JPEG_VERSION=$(awk '/#define JPEG_LIB_VERSION/ { VERSION=$3; MAJOR=int(VERSION / 10); MINOR=VERSION%10; } END {printf "%s%c", MAJOR, (MINOR+96)}' "${ABS_JPEG}")
|
|
||||||
|
|
||||||
# png
|
|
||||||
if [ "${openjdk_version}" -gt 8 ] ; then
|
|
||||||
PNG=src/java.desktop/share/native/libsplashscreen/libpng/png.h
|
|
||||||
else
|
|
||||||
PNG=jdk/src/share/native/sun/awt/libpng/png.h
|
|
||||||
fi
|
|
||||||
ABS_PNG="${JDKROOT}"/"${PNG}"
|
|
||||||
if [ ! -f "${ABS_PNG}" ]; then
|
|
||||||
echo "png header not found!"
|
|
||||||
exit 7
|
|
||||||
fi
|
|
||||||
PNG_VERSION=$(awk '/#define PNG_LIBPNG_VER_STRING/ { VERSION=$3; gsub("\"", "", VERSION) } END {print VERSION}' "${ABS_PNG}")
|
|
||||||
|
|
||||||
# zlib
|
|
||||||
if [ "${openjdk_version}" -gt 8 ] ; then
|
|
||||||
ZLIB=src/java.base/share/native/libzip/zlib/zlib.h
|
|
||||||
else
|
|
||||||
ZLIB=jdk/src/share/native/java/util/zip/zlib/zlib.h
|
|
||||||
fi
|
|
||||||
ABS_ZLIB="${JDKROOT}"/"${ZLIB}"
|
|
||||||
if [ ! -f "${ABS_ZLIB}" ]; then
|
|
||||||
echo "zlib header not found!"
|
|
||||||
exit 8
|
|
||||||
fi
|
|
||||||
ZLIB_VERSION=$(awk '/#define ZLIB_VERSION/ { VERSION=$3; gsub("\"", "", VERSION) } END {print VERSION}' "${ABS_ZLIB}")
|
|
||||||
|
|
||||||
# Print output
|
|
||||||
printf "\nRPM definitions:\n"
|
|
||||||
if [ "${openjdk_version}" -gt 8 ] ; then
|
|
||||||
echo "# Version in ${FREETYPE}"
|
|
||||||
echo "Provides: bundled(freetype) = ${FREETYPE_VERSION}"
|
|
||||||
fi
|
|
||||||
echo "# Version in ${GIFLIB}"
|
|
||||||
echo "Provides: bundled(giflib) = ${GIFLIB_VERSION}"
|
|
||||||
if [ "${openjdk_version}" -gt 8 ] ; then
|
|
||||||
echo "# Version in ${HARFBUZZ}"
|
|
||||||
echo "Provides: bundled(harfbuzz) = ${HARFBUZZ_VERSION}"
|
|
||||||
fi
|
|
||||||
echo "# Version in ${LCMS}"
|
|
||||||
echo "Provides: bundled(lcms2) = ${LCMS_VERSION}"
|
|
||||||
echo "# Version in ${JPEG}"
|
|
||||||
echo "Provides: bundled(libjpeg) = ${JPEG_VERSION}"
|
|
||||||
echo "# Version in ${PNG}"
|
|
||||||
echo "Provides: bundled(libpng) = ${PNG_VERSION}"
|
|
||||||
echo "# Version in ${ZLIB}"
|
|
||||||
echo "Provides: bundled(zlib) = ${ZLIB_VERSION}"
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck get_bundle_versions.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,198 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by Andrew John Hughes <gnu.andrew@redhat.com>.
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
ICEDTEA_USE_VCS=true
|
|
||||||
|
|
||||||
ICEDTEA_VERSION=3.15.0
|
|
||||||
ICEDTEA_URL=https://icedtea.classpath.org/download/source
|
|
||||||
ICEDTEA_SIGNING_KEY=CFDA0F9B35964222
|
|
||||||
|
|
||||||
ICEDTEA_HG_URL=https://icedtea.classpath.org/hg/icedtea11
|
|
||||||
set -e
|
|
||||||
|
|
||||||
RPM_DIR=${PWD}
|
|
||||||
if [ ! -f "${RPM_DIR}/jconsole.desktop.in" ] ; then
|
|
||||||
echo "Not in RPM source tree.";
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${TMPDIR}" = ""; then
|
|
||||||
TMPDIR=/tmp;
|
|
||||||
fi
|
|
||||||
WORKDIR=${TMPDIR}/it.sync
|
|
||||||
|
|
||||||
echo "Using working directory ${WORKDIR}"
|
|
||||||
mkdir "${WORKDIR}"
|
|
||||||
pushd "${WORKDIR}"
|
|
||||||
|
|
||||||
if test "${WGET}" = ""; then
|
|
||||||
WGET=$(which wget);
|
|
||||||
if test "${WGET}" = ""; then
|
|
||||||
echo "wget not found";
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${TAR}" = ""; then
|
|
||||||
TAR=$(which tar)
|
|
||||||
if test "${TAR}" = ""; then
|
|
||||||
echo "tar not found";
|
|
||||||
exit 2;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Dependencies:";
|
|
||||||
echo -e "\tWGET: ${WGET}";
|
|
||||||
echo -e "\tTAR: ${TAR}\n";
|
|
||||||
|
|
||||||
if test "${ICEDTEA_USE_VCS}" = "true"; then
|
|
||||||
echo "Mode: Using VCS";
|
|
||||||
|
|
||||||
if test "${GREP}" = ""; then
|
|
||||||
GREP=$(which grep);
|
|
||||||
if test "${GREP}" = ""; then
|
|
||||||
echo "grep not found";
|
|
||||||
exit 3;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${CUT}" = ""; then
|
|
||||||
CUT=$(which cut);
|
|
||||||
if test "${CUT}" = ""; then
|
|
||||||
echo "cut not found";
|
|
||||||
exit 4;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${TR}" = ""; then
|
|
||||||
TR=$(which tr);
|
|
||||||
if test "${TR}" = ""; then
|
|
||||||
echo "tr not found";
|
|
||||||
exit 5;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${HG}" = ""; then
|
|
||||||
HG=$(which hg);
|
|
||||||
if test "${HG}" = ""; then
|
|
||||||
echo "hg not found";
|
|
||||||
exit 6;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Dependencies:";
|
|
||||||
echo -e "\tGREP: ${GREP}";
|
|
||||||
echo -e "\tCUT: ${CUT}";
|
|
||||||
echo -e "\tTR: ${TR}";
|
|
||||||
echo -e "\tHG: ${HG}";
|
|
||||||
|
|
||||||
echo "Checking out repository from VCS...";
|
|
||||||
${HG} clone ${ICEDTEA_HG_URL} icedtea
|
|
||||||
|
|
||||||
echo "Obtaining version from configure.ac...";
|
|
||||||
ROOT_VER=$(${GREP} '^AC_INIT' icedtea/configure.ac|${CUT} -d ',' -f 2|${TR} -d '[][:space:]')
|
|
||||||
echo "Root version from configure: ${ROOT_VER}";
|
|
||||||
|
|
||||||
VCS_REV=$(${HG} log -R icedtea --template '{node|short}' -r tip)
|
|
||||||
echo "VCS revision: ${VCS_REV}";
|
|
||||||
|
|
||||||
ICEDTEA_VERSION="${ROOT_VER}-${VCS_REV}"
|
|
||||||
echo "Creating icedtea-${ICEDTEA_VERSION}";
|
|
||||||
mkdir "icedtea-${ICEDTEA_VERSION}"
|
|
||||||
echo "Copying required files from checkout to icedtea-${ICEDTEA_VERSION}";
|
|
||||||
# Commented out for now as IcedTea 6's jconsole.desktop.in is outdated
|
|
||||||
#cp -a icedtea/jconsole.desktop.in ../icedtea-${ICEDTEA_VERSION}
|
|
||||||
cp -a "${RPM_DIR}/jconsole.desktop.in" "icedtea-${ICEDTEA_VERSION}"
|
|
||||||
cp -a icedtea/tapset "icedtea-${ICEDTEA_VERSION}"
|
|
||||||
|
|
||||||
rm -rf icedtea
|
|
||||||
else
|
|
||||||
echo "Mode: Using tarball";
|
|
||||||
|
|
||||||
if test "${ICEDTEA_VERSION}" = ""; then
|
|
||||||
echo "No IcedTea version specified for tarball download.";
|
|
||||||
exit 3;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${CHECKSUM}" = ""; then
|
|
||||||
CHECKSUM=$(which sha256sum)
|
|
||||||
if test "${CHECKSUM}" = ""; then
|
|
||||||
echo "sha256sum not found";
|
|
||||||
exit 4;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${PGP}" = ""; then
|
|
||||||
PGP=$(which gpg)
|
|
||||||
if test "${PGP}" = ""; then
|
|
||||||
echo "gpg not found";
|
|
||||||
exit 5;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Dependencies:";
|
|
||||||
echo -e "\tCHECKSUM: ${CHECKSUM}";
|
|
||||||
echo -e "\tPGP: ${PGP}\n";
|
|
||||||
|
|
||||||
echo "Checking for IcedTea signing key ${ICEDTEA_SIGNING_KEY}...";
|
|
||||||
if ! gpg --list-keys ${ICEDTEA_SIGNING_KEY}; then
|
|
||||||
echo "IcedTea signing key ${ICEDTEA_SIGNING_KEY} not installed.";
|
|
||||||
exit 6;
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Downloading IcedTea release tarball...";
|
|
||||||
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz
|
|
||||||
echo "Downloading IcedTea tarball signature...";
|
|
||||||
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz.sig
|
|
||||||
echo "Downloading IcedTea tarball checksums...";
|
|
||||||
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.sha256
|
|
||||||
|
|
||||||
echo "Verifying checksums...";
|
|
||||||
${CHECKSUM} --check --ignore-missing icedtea-${ICEDTEA_VERSION}.sha256
|
|
||||||
|
|
||||||
echo "Checking signature...";
|
|
||||||
${PGP} --verify icedtea-${ICEDTEA_VERSION}.tar.xz.sig
|
|
||||||
|
|
||||||
echo "Extracting files...";
|
|
||||||
${TAR} xJf icedtea-${ICEDTEA_VERSION}.tar.xz \
|
|
||||||
icedtea-${ICEDTEA_VERSION}/tapset \
|
|
||||||
icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in
|
|
||||||
|
|
||||||
rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz
|
|
||||||
rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz.sig
|
|
||||||
rm -vf icedtea-${ICEDTEA_VERSION}.sha256
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Replacing desktop files...";
|
|
||||||
mv -v "icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in" "${RPM_DIR}"
|
|
||||||
|
|
||||||
echo "Creating new tapset tarball...";
|
|
||||||
mv -v "icedtea-${ICEDTEA_VERSION}" openjdk
|
|
||||||
${TAR} cJf "${RPM_DIR}/tapsets-icedtea-${ICEDTEA_VERSION}.tar.xz" openjdk
|
|
||||||
|
|
||||||
rm -rvf openjdk
|
|
||||||
|
|
||||||
popd
|
|
||||||
rm -rf "${WORKDIR}"
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck icedtea_sync.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
@ -1,114 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright (C) 2024 Red Hat, Inc.
|
|
||||||
# Written by Andrew John Hughes <gnu.andrew@redhat.com>, 2012-2022
|
|
||||||
#
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
OLD_RELEASE=$1
|
|
||||||
NEW_RELEASE=$2
|
|
||||||
REPO=$3
|
|
||||||
SUBDIR=$4
|
|
||||||
SCRIPT_DIR=$(dirname "${0}")
|
|
||||||
|
|
||||||
if test "${SUBDIR}" = ""; then
|
|
||||||
echo "No subdirectory specified; using .";
|
|
||||||
SUBDIR=".";
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$REPO" = ""; then
|
|
||||||
echo "No repository specified; using ${PWD}"
|
|
||||||
REPO=${PWD}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${TMPDIR}" = ""; then
|
|
||||||
TMPDIR=/tmp;
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Repository: ${REPO}"
|
|
||||||
|
|
||||||
if [ -e "${REPO}/.git" ] ; then
|
|
||||||
TYPE=git;
|
|
||||||
elif [ -e "${REPO}/.hg" ] ; then
|
|
||||||
TYPE=hg;
|
|
||||||
else
|
|
||||||
echo "No Mercurial or Git repository detected.";
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$OLD_RELEASE" = "" || test "$NEW_RELEASE" = ""; then
|
|
||||||
echo "ERROR: Need to specify old and new release";
|
|
||||||
exit 2;
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Listing fixes between $OLD_RELEASE and $NEW_RELEASE in $REPO"
|
|
||||||
rm -f "${TMPDIR}/fixes2" "${TMPDIR}/fixes3" "${TMPDIR}/fixes"
|
|
||||||
for repos in . $("${SCRIPT_DIR}/discover_trees.sh" "${REPO}");
|
|
||||||
do
|
|
||||||
if test "$TYPE" = "hg"; then
|
|
||||||
hg log -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R "$REPO/$repos" -G -M "${REPO}/${SUBDIR}" | \
|
|
||||||
grep -E '^[o:| ]*summary'|grep -v 'Added tag'|sed -r 's#^[o:| ]*summary:\W*([0-9])# - JDK-\1#'| \
|
|
||||||
sed 's#^[o:| ]*summary:\W*# - #' >> "${TMPDIR}/fixes2";
|
|
||||||
hg log -v -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R "$REPO/$repos" -G -M "${REPO}/${SUBDIR}" | \
|
|
||||||
grep -E '^[o:| ]*[0-9]{7}'|sed -r 's#^[o:| ]*([0-9]{7})# - JDK-\1#' >> "${TMPDIR}/fixes3";
|
|
||||||
else
|
|
||||||
git -C "${REPO}" log --no-merges --pretty=format:%B "${NEW_RELEASE}...${OLD_RELEASE}" -- "${SUBDIR}" |grep -E '^[0-9]{7}' | \
|
|
||||||
sed -r 's#^([0-9])# - JDK-\1#' >> "${TMPDIR}/fixes2";
|
|
||||||
touch "${TMPDIR}/fixes3" ; # unused
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
sort "${TMPDIR}/fixes2" "${TMPDIR}/fixes3" > "${TMPDIR}/fixes4"
|
|
||||||
uniq "${TMPDIR}/fixes4" > "${TMPDIR}/fixes"
|
|
||||||
rm -f "${TMPDIR}/fixes2" "${TMPDIR}/fixes3"
|
|
||||||
|
|
||||||
if ! [ -s "${TMPDIR}/fixes" ] ; then
|
|
||||||
echo "Failed to obtain fixes.";
|
|
||||||
exit 3;
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "In ${TMPDIR}/fixes:"
|
|
||||||
cat "${TMPDIR}/fixes"
|
|
||||||
|
|
||||||
printf "\nChecking for duplicates...";
|
|
||||||
if uniq -d "${TMPDIR}/fixes4" | grep 'JDK' > "${TMPDIR}/dupes"; then
|
|
||||||
printf "found.\nWARNING: Review the following duplicates:\n";
|
|
||||||
cat "${TMPDIR}/dupes";
|
|
||||||
else
|
|
||||||
echo "No apparent duplicates.";
|
|
||||||
fi
|
|
||||||
rm -f "${TMPDIR}/fixes4";
|
|
||||||
|
|
||||||
printf "\nChecking for backouts...";
|
|
||||||
if grep -i 'backout' "${TMPDIR}/fixes" > "${TMPDIR}/backouts"; then
|
|
||||||
printf "found.\nWARNING: Review the following backouts:\n"
|
|
||||||
cat "${TMPDIR}/backouts";
|
|
||||||
else
|
|
||||||
echo "No apparent backouts.";
|
|
||||||
fi
|
|
||||||
printf "\nChecking for bundled library updates...";
|
|
||||||
if grep -iE ':( \(tz\))? update.*(freetype|gif|harfbuzz|lcms|jpeg|png|timezone|zlib)' "${TMPDIR}/fixes" > "${TMPDIR}/bundles"; then
|
|
||||||
printf "found.\nWARNING: Review the following with respect to bundled provides:\n";
|
|
||||||
cat "${TMPDIR}/bundles";
|
|
||||||
echo "Compare the output of $(dirname "${0}")/get_bundle_versions.sh with the RPM using the JDK source tree"
|
|
||||||
else
|
|
||||||
echo "No apparent library updates.";
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# compile-command: "shellcheck openjdk_news.sh"
|
|
||||||
# fill-column: 80
|
|
||||||
# indent-tabs-mode: nil
|
|
||||||
# sh-basic-offset: 4
|
|
||||||
# End:
|
|
||||||
3
sources
3
sources
@ -1,3 +0,0 @@
|
|||||||
SHA512 (tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz) = 97d026212363b3c83f6a04100ad7f6fdde833d16579717f8756e2b8c2eb70e144a41a330cb9ccde9c3badd37a2d54fdf4650a950ec21d8b686d545ecb2a64d30
|
|
||||||
SHA512 (openjdk-25.0.1+8.tar.xz) = eb84d876f81ca02803283e8294c89b6acbed3753426811c3bcc228615c9618deefc85da4aa702800cac2feb103e628ee8b92292b316e9d7e12a58b6de69c5085
|
|
||||||
SHA512 (nssadapter-0.1.0.tar.xz) = 581f49d1a27550e3a2fa0a9d407f43c507627a8439827904d14daaf24e071d9f73884a2abe4cb3d36d26f1af09ef7d20724b2d40c9bac202e0316fac6c1a636b
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
---
|
|
||||||
- hosts: localhost
|
|
||||||
roles:
|
|
||||||
- role: standard-test-source
|
|
||||||
tags:
|
|
||||||
- always
|
|
||||||
- role: standard-test-basic
|
|
||||||
tags:
|
|
||||||
- classic
|
|
||||||
- atomic
|
|
||||||
required_packages:
|
|
||||||
- java-21-openjdk-devel
|
|
||||||
tests:
|
|
||||||
- javaVersion1:
|
|
||||||
dir: ~
|
|
||||||
run: set -ex; useradd franta1; su franta1 -c 'java -version';
|
|
||||||
run: set -ex; useradd franta4; su franta4 -c 'javac -version';
|
|
||||||
run: ls -l /usr/lib/jvm;
|
|
||||||
- javaVersion2:
|
|
||||||
dir: ~
|
|
||||||
run: set -ex; useradd franta2; su franta2 -c 'java --version'
|
|
||||||
Loading…
Reference in New Issue
Block a user