Compare commits
4 Commits
c10s
...
a9-portabl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c5840784e | ||
|
|
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.1.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 @@
|
|||||||
|
c37273ae74270c39736b04acd9a1935990d29fe1 SOURCES/nssadapter-0.1.1.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'
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -1,8 +1,8 @@
|
|||||||
diff --git a/src/java.base/share/classes/java/security/Provider.java b/src/java.base/share/classes/java/security/Provider.java
|
diff --git a/src/java.base/share/classes/java/security/Provider.java b/src/java.base/share/classes/java/security/Provider.java
|
||||||
index de2845fb550..b1e416b90f4 100644
|
index de2845fb550..60eeab678ca 100644
|
||||||
--- a/src/java.base/share/classes/java/security/Provider.java
|
--- a/src/java.base/share/classes/java/security/Provider.java
|
||||||
+++ b/src/java.base/share/classes/java/security/Provider.java
|
+++ b/src/java.base/share/classes/java/security/Provider.java
|
||||||
@@ -1203,6 +1203,39 @@ public Set<Service> getServices() {
|
@@ -1203,6 +1203,34 @@ public Service getService(String type, String algorithm) {
|
||||||
return serviceSet;
|
return serviceSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10,9 +10,7 @@ index de2845fb550..b1e416b90f4 100644
|
|||||||
+ private static final class RedHatFIPSFilter {
|
+ private static final class RedHatFIPSFilter {
|
||||||
+ static final boolean IS_ON = Boolean.parseBoolean(
|
+ static final boolean IS_ON = Boolean.parseBoolean(
|
||||||
+ Security.getProperty("__redhat_fips_filter__"));
|
+ Security.getProperty("__redhat_fips_filter__"));
|
||||||
+ private static final Set<String> ANY_SERVICE_TYPE = Set.of();
|
|
||||||
+ private static final Map<String, Set<String>> ALLOW_LIST = Map.of(
|
+ private static final Map<String, Set<String>> ALLOW_LIST = Map.of(
|
||||||
+ "SunPKCS11-FIPS", ANY_SERVICE_TYPE,
|
|
||||||
+ "SUN", Set.of(
|
+ "SUN", Set.of(
|
||||||
+ "AlgorithmParameterGenerator",
|
+ "AlgorithmParameterGenerator",
|
||||||
+ "AlgorithmParameters", "CertificateFactory",
|
+ "AlgorithmParameters", "CertificateFactory",
|
||||||
@ -20,21 +18,18 @@ index de2845fb550..b1e416b90f4 100644
|
|||||||
+ "Configuration", "KeyStore"),
|
+ "Configuration", "KeyStore"),
|
||||||
+ "SunEC", Set.of(
|
+ "SunEC", Set.of(
|
||||||
+ "AlgorithmParameters", "KeyFactory"),
|
+ "AlgorithmParameters", "KeyFactory"),
|
||||||
+ "SunJSSE", ANY_SERVICE_TYPE,
|
|
||||||
+ "SunJCE", Set.of(
|
+ "SunJCE", Set.of(
|
||||||
+ "AlgorithmParameters",
|
+ "AlgorithmParameters",
|
||||||
+ "AlgorithmParameterGenerator", "KeyFactory",
|
+ "AlgorithmParameterGenerator", "KeyFactory",
|
||||||
+ "SecretKeyFactory"),
|
+ "SecretKeyFactory"),
|
||||||
+ "SunRsaSign", Set.of(
|
+ "SunRsaSign", Set.of(
|
||||||
+ "KeyFactory", "AlgorithmParameters"),
|
+ "KeyFactory", "AlgorithmParameters")
|
||||||
+ "XMLDSig", ANY_SERVICE_TYPE
|
|
||||||
+ );
|
+ );
|
||||||
+
|
+
|
||||||
+ static boolean isAllowed(String provName, String serviceType) {
|
+ static boolean isAllowed(String provName, String serviceType) {
|
||||||
+ Set<String> allowedServiceTypes = ALLOW_LIST.get(provName);
|
+ Set<String> allowedServiceTypes = ALLOW_LIST.get(provName);
|
||||||
+ return allowedServiceTypes != null &&
|
+ return allowedServiceTypes == null ||
|
||||||
+ (allowedServiceTypes == ANY_SERVICE_TYPE ||
|
+ allowedServiceTypes.contains(serviceType);
|
||||||
+ allowedServiceTypes.contains(serviceType));
|
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FIPS PATCH ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */
|
+ /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FIPS PATCH ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */
|
||||||
@ -42,7 +37,7 @@ index de2845fb550..b1e416b90f4 100644
|
|||||||
/**
|
/**
|
||||||
* Add a service. If a service of the same type with the same algorithm
|
* Add a service. If a service of the same type with the same algorithm
|
||||||
* name exists, and it was added using {@link #putService putService()},
|
* name exists, and it was added using {@link #putService putService()},
|
||||||
@@ -1231,6 +1264,15 @@ protected void putService(Service s) {
|
@@ -1231,6 +1259,15 @@ protected void putService(Service s) {
|
||||||
("service.getProvider() must match this Provider object");
|
("service.getProvider() must match this Provider object");
|
||||||
}
|
}
|
||||||
String type = s.getType();
|
String type = s.getType();
|
||||||
@ -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,
|
||||||
@ -376,7 +376,7 @@
|
|||||||
# Define IcedTea version used for SystemTap tapsets and desktop file
|
# Define IcedTea version used for SystemTap tapsets and desktop file
|
||||||
%global icedteaver 6.0.0pre00-c848b93a8598
|
%global icedteaver 6.0.0pre00-c848b93a8598
|
||||||
# Define current Git revision for the FIPS support patches
|
# Define current Git revision for the FIPS support patches
|
||||||
%global fipsver df044414ef4
|
%global fipsver e55ada9353e
|
||||||
# Define JDK versions
|
# Define JDK versions
|
||||||
%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver}
|
%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver}
|
||||||
%global javaver %{featurever}
|
%global javaver %{featurever}
|
||||||
@ -390,8 +390,8 @@
|
|||||||
%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 3
|
||||||
#%%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
|
||||||
%if %is_system_jdk
|
%if %is_system_jdk
|
||||||
@ -643,37 +643,9 @@ Source18: TestTranslations.java
|
|||||||
# as follows: git diff %%{vcstag} src make test > fips-25u-$(git show -s --format=%h HEAD).patch
|
# as follows: git diff %%{vcstag} src make test > fips-25u-$(git show -s --format=%h HEAD).patch
|
||||||
# Diff is limited to src and make subdirectories to exclude .github changes
|
# Diff is limited to src and make subdirectories to exclude .github changes
|
||||||
# Fixes currently included:
|
# Fixes currently included:
|
||||||
# PR3183, RH1340845: Follow system wide crypto policy
|
# OPENJDK-2108: Internal __redhat_fips__ property
|
||||||
# PR3695: Allow use of system crypto policy to be disabled by the user
|
# OPENJDK-2123: Algorithms lockdown
|
||||||
# RH1655466: Support RHEL FIPS mode using SunPKCS11 provider
|
# OPENJDK-4559: Red Hat Build of OpenJDK 25 should not restrict all the providers in FIPS
|
||||||
# RH1818909: No ciphersuites availale for SSLSocket in FIPS mode
|
|
||||||
# RH1860986: Disable TLSv1.3 with the NSS-FIPS provider until PKCS#11 v3.0 support is available
|
|
||||||
# RH1915071: Always initialise JavaSecuritySystemConfiguratorAccess
|
|
||||||
# RH1929465: Improve system FIPS detection
|
|
||||||
# RH1995150: Disable non-FIPS crypto in SUN and SunEC security providers
|
|
||||||
# RH1996182: Login to the NSS software token in FIPS mode
|
|
||||||
# RH1991003: Allow plain key import unless com.redhat.fips.plainKeySupport is set to false
|
|
||||||
# RH2021263: Resolve outstanding FIPS issues
|
|
||||||
# RH2052819: Fix FIPS reliance on crypto policies
|
|
||||||
# RH2052829: Detect NSS at Runtime for FIPS detection
|
|
||||||
# RH2052070: Enable AlgorithmParameters and AlgorithmParameterGenerator services in FIPS mode
|
|
||||||
# RH2023467: Enable FIPS keys export
|
|
||||||
# RH2094027: SunEC runtime permission for FIPS
|
|
||||||
# RH2036462: sun.security.pkcs11.wrapper.PKCS11.getInstance breakage
|
|
||||||
# RH2090378: Revert to disabling system security properties and FIPS mode support together
|
|
||||||
# RH2104724: Avoid import/export of DH private keys
|
|
||||||
# RH2092507: P11Key.getEncoded does not work for DH keys in FIPS mode
|
|
||||||
# Build the systemconf library on all platforms
|
|
||||||
# RH2048582: Support PKCS#12 keystores [now part of JDK-8301553 upstream]
|
|
||||||
# RH2020290: Support TLS 1.3 in FIPS mode
|
|
||||||
# Add nss.fips.cfg support to OpenJDK tree
|
|
||||||
# RH2117972: Extend the support for NSS DBs (PKCS11) in FIPS mode
|
|
||||||
# Remove forgotten dead code from RH2020290 and RH2104724
|
|
||||||
# OJ1357: Fix issue on FIPS with a SecurityManager in place
|
|
||||||
# RH2134669: Add missing attributes when registering services in FIPS mode.
|
|
||||||
# test/jdk/sun/security/pkcs11/fips/VerifyMissingAttributes.java: fixed jtreg main class
|
|
||||||
# RH1940064: Enable XML Signature provider in FIPS mode
|
|
||||||
# RH2173781: Avoid calling C_GetInfo() too early, before cryptoki is initialized [now part of JDK-8301553 upstream]
|
|
||||||
Patch1001: fips-%{featurever}u-%{fipsver}.patch
|
Patch1001: fips-%{featurever}u-%{fipsver}.patch
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
@ -689,8 +661,18 @@ 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
|
||||||
|
# JDK-8375063: Update Libpng to 1.6.54
|
||||||
|
# Integrated in 25.0.3
|
||||||
|
Patch2002: jdk8375063-libpng-1.6.54.patch
|
||||||
|
# JDK-8375057: Update HarfBuzz to 12.3.2
|
||||||
|
# Integrated in 25.0.3
|
||||||
|
Patch2003: jdk8375057-harfbuzz-12.3.2.patch
|
||||||
|
# JDK-8377526: Update Libpng to 1.6.55
|
||||||
|
# Integrated in 25.0.3
|
||||||
|
Patch2004: jdk8377526-libpng-1.6.55.patch
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
#
|
#
|
||||||
@ -777,13 +759,13 @@ Provides: bundled(freetype) = 2.13.3
|
|||||||
# Version in src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h
|
# Version in src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h
|
||||||
Provides: bundled(giflib) = 5.2.2
|
Provides: bundled(giflib) = 5.2.2
|
||||||
# Version in src/java.desktop/share/native/libharfbuzz/hb-version.h
|
# Version in src/java.desktop/share/native/libharfbuzz/hb-version.h
|
||||||
Provides: bundled(harfbuzz) = 10.4.0
|
Provides: bundled(harfbuzz) = 12.3.2
|
||||||
# Version in src/java.desktop/share/native/liblcms/lcms2.h
|
# Version in src/java.desktop/share/native/liblcms/lcms2.h
|
||||||
Provides: bundled(lcms2) = 2.17.0
|
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.55
|
||||||
# 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 +986,11 @@ 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 & harfbuzz updates ahead of 25.0.3
|
||||||
|
%patch -P2001 -p1
|
||||||
|
%patch -P2002 -p1
|
||||||
|
%patch -P2003 -p1
|
||||||
|
%patch -P2004 -p1
|
||||||
popd # openjdk
|
popd # openjdk
|
||||||
|
|
||||||
echo "Generating %{alt_java_name} man page"
|
echo "Generating %{alt_java_name} man page"
|
||||||
@ -1723,6 +1710,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 +1958,38 @@ done
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Mar 30 2026 eabdullin <eabdullin@almalinux.org> - 1:25.0.2.0.10-3
|
||||||
|
- Portable build
|
||||||
|
|
||||||
|
* Tue Mar 03 2026 Andrew Hughes <gnu.andrew@redhat.com> - 1:25.0.2.0.10-3
|
||||||
|
- Update FIPS patch to e55ada9353e to include the fix for the too restrictive provider lockdown
|
||||||
|
- Fix FIPS issue list to represent the new 25u version
|
||||||
|
- Add JDK-8375063 libpng 1.6.54 ahead of 25.0.3
|
||||||
|
- Add JDK-8375057 harfbuzz 12.3.2 ahead of 25.0.3
|
||||||
|
- Add JDK-8377526 libpng 1.6.55 ahead of 25.0.3
|
||||||
|
- Bump libpng version to 1.6.55 following JDK-8375063 & JDK-8377526
|
||||||
|
- Bump harfbuzz version to 12.3.2 following JDK-8375057
|
||||||
|
- Resolves: OPENJDK-4570
|
||||||
|
- Resolves: OPENJDK-4304
|
||||||
|
- Resolves: OPENJDK-4524
|
||||||
|
- Resolves: OPENJDK-4544
|
||||||
|
- Resolves: OPENJDK-4553
|
||||||
|
|
||||||
|
* 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
31844
SOURCES/jdk8375057-harfbuzz-12.3.2.patch
Normal file
31844
SOURCES/jdk8375057-harfbuzz-12.3.2.patch
Normal file
File diff suppressed because it is too large
Load Diff
4384
SOURCES/jdk8375063-libpng-1.6.54.patch
Normal file
4384
SOURCES/jdk8375063-libpng-1.6.54.patch
Normal file
File diff suppressed because it is too large
Load Diff
248
SOURCES/jdk8377526-libpng-1.6.55.patch
Normal file
248
SOURCES/jdk8377526-libpng-1.6.55.patch
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
commit b64f9e043d63b113682ea395e5bd8df2a26327ef
|
||||||
|
Author: Sergey Bylokhov <serb@openjdk.org>
|
||||||
|
AuthorDate: Mon Mar 2 18:56:22 2026 +0000
|
||||||
|
Commit: Sergey Bylokhov <serb@openjdk.org>
|
||||||
|
CommitDate: Mon Mar 2 18:56:22 2026 +0000
|
||||||
|
|
||||||
|
8377526: Update Libpng to 1.6.55
|
||||||
|
|
||||||
|
Backport-of: fd74232d5dc4c6bfbcddb82e1b2621289aa2f65a
|
||||||
|
|
||||||
|
diff --git a/src/java.desktop/share/legal/libpng.md b/src/java.desktop/share/legal/libpng.md
|
||||||
|
index 80d12248ec4..a2ffcca1974 100644
|
||||||
|
--- a/src/java.desktop/share/legal/libpng.md
|
||||||
|
+++ b/src/java.desktop/share/legal/libpng.md
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-## libpng v1.6.54
|
||||||
|
+## libpng v1.6.55
|
||||||
|
|
||||||
|
### libpng License
|
||||||
|
<pre>
|
||||||
|
@@ -170,6 +170,7 @@ ### AUTHORS File Information
|
||||||
|
* Guy Eric Schalnat
|
||||||
|
* James Yu
|
||||||
|
* John Bowler
|
||||||
|
+ * Joshua Inscoe
|
||||||
|
* Kevin Bracey
|
||||||
|
* Lucas Chollet
|
||||||
|
* Magnus Holmgren
|
||||||
|
diff --git a/src/java.desktop/share/native/libsplashscreen/libpng/CHANGES b/src/java.desktop/share/native/libsplashscreen/libpng/CHANGES
|
||||||
|
index 3bb1baecd23..af9fcff6eb3 100644
|
||||||
|
--- a/src/java.desktop/share/native/libsplashscreen/libpng/CHANGES
|
||||||
|
+++ b/src/java.desktop/share/native/libsplashscreen/libpng/CHANGES
|
||||||
|
@@ -5988,7 +5988,7 @@ Version 1.6.32rc01 [August 18, 2017]
|
||||||
|
|
||||||
|
Version 1.6.32rc02 [August 22, 2017]
|
||||||
|
Added contrib/oss-fuzz directory which contains files used by the oss-fuzz
|
||||||
|
- project (https://github.com/google/oss-fuzz/tree/master/projects/libpng).
|
||||||
|
+ project <https://github.com/google/oss-fuzz/tree/master/projects/libpng>.
|
||||||
|
|
||||||
|
Version 1.6.32 [August 24, 2017]
|
||||||
|
No changes.
|
||||||
|
@@ -6323,15 +6323,21 @@ Version 1.6.53 [December 5, 2025]
|
||||||
|
|
||||||
|
Version 1.6.54 [January 12, 2026]
|
||||||
|
Fixed CVE-2026-22695 (medium severity):
|
||||||
|
- Heap buffer over-read in `png_image_read_direct_scaled.
|
||||||
|
+ Heap buffer over-read in `png_image_read_direct_scaled`.
|
||||||
|
(Reported and fixed by Petr Simecek.)
|
||||||
|
Fixed CVE-2026-22801 (medium severity):
|
||||||
|
Integer truncation causing heap buffer over-read in `png_image_write_*`.
|
||||||
|
Implemented various improvements in oss-fuzz.
|
||||||
|
(Contributed by Philippe Antoine.)
|
||||||
|
|
||||||
|
+Version 1.6.55 [February 9, 2026]
|
||||||
|
+ Fixed CVE-2026-25646 (high severity):
|
||||||
|
+ Heap buffer overflow in `png_set_quantize`.
|
||||||
|
+ (Reported and fixed by Joshua Inscoe.)
|
||||||
|
+ Resolved an oss-fuzz build issue involving nalloc.
|
||||||
|
+ (Contributed by Philippe Antoine.)
|
||||||
|
|
||||||
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
|
||||||
|
Subscription is required; visit
|
||||||
|
-https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
||||||
|
+<https://lists.sourceforge.net/lists/listinfo/png-mng-implement>
|
||||||
|
to subscribe.
|
||||||
|
diff --git a/src/java.desktop/share/native/libsplashscreen/libpng/README b/src/java.desktop/share/native/libsplashscreen/libpng/README
|
||||||
|
index 63d1376edf7..6e0d1e33137 100644
|
||||||
|
--- a/src/java.desktop/share/native/libsplashscreen/libpng/README
|
||||||
|
+++ b/src/java.desktop/share/native/libsplashscreen/libpng/README
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-README for libpng version 1.6.54
|
||||||
|
+README for libpng version 1.6.55
|
||||||
|
================================
|
||||||
|
|
||||||
|
See the note about version numbers near the top of `png.h`.
|
||||||
|
@@ -24,14 +24,14 @@ for more things than just PNG files. You can use zlib as a drop-in
|
||||||
|
replacement for `fread()` and `fwrite()`, if you are so inclined.
|
||||||
|
|
||||||
|
zlib should be available at the same place that libpng is, or at
|
||||||
|
-https://zlib.net .
|
||||||
|
+<https://zlib.net>.
|
||||||
|
|
||||||
|
You may also want a copy of the PNG specification. It is available
|
||||||
|
as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find
|
||||||
|
-these at http://www.libpng.org/pub/png/pngdocs.html .
|
||||||
|
+these at <http://www.libpng.org/pub/png/pngdocs.html>.
|
||||||
|
|
||||||
|
-This code is currently being archived at https://libpng.sourceforge.io
|
||||||
|
-in the download area, and at http://libpng.download/src .
|
||||||
|
+This code is currently being archived at <https://libpng.sourceforge.io>
|
||||||
|
+in the download area, and at <http://libpng.download/src>.
|
||||||
|
|
||||||
|
This release, based in a large way on Glenn's, Guy's and Andreas'
|
||||||
|
earlier work, was created and will be supported by myself and the PNG
|
||||||
|
@@ -39,12 +39,12 @@ development group.
|
||||||
|
|
||||||
|
Send comments, corrections and commendations to `png-mng-implement`
|
||||||
|
at `lists.sourceforge.net`. (Subscription is required; visit
|
||||||
|
-https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
||||||
|
+<https://lists.sourceforge.net/lists/listinfo/png-mng-implement>
|
||||||
|
to subscribe.)
|
||||||
|
|
||||||
|
Send general questions about the PNG specification to `png-mng-misc`
|
||||||
|
at `lists.sourceforge.net`. (Subscription is required; visit
|
||||||
|
-https://lists.sourceforge.net/lists/listinfo/png-mng-misc
|
||||||
|
+<https://lists.sourceforge.net/lists/listinfo/png-mng-misc>
|
||||||
|
to subscribe.)
|
||||||
|
|
||||||
|
Historical notes
|
||||||
|
diff --git a/src/java.desktop/share/native/libsplashscreen/libpng/png.c b/src/java.desktop/share/native/libsplashscreen/libpng/png.c
|
||||||
|
index 5636b4a754e..955fda8dd7e 100644
|
||||||
|
--- a/src/java.desktop/share/native/libsplashscreen/libpng/png.c
|
||||||
|
+++ b/src/java.desktop/share/native/libsplashscreen/libpng/png.c
|
||||||
|
@@ -42,7 +42,7 @@
|
||||||
|
#include "pngpriv.h"
|
||||||
|
|
||||||
|
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||||
|
-typedef png_libpng_version_1_6_54 Your_png_h_is_not_version_1_6_54;
|
||||||
|
+typedef png_libpng_version_1_6_55 Your_png_h_is_not_version_1_6_55;
|
||||||
|
|
||||||
|
/* Sanity check the chunks definitions - PNG_KNOWN_CHUNKS from pngpriv.h and the
|
||||||
|
* corresponding macro definitions. This causes a compile time failure if
|
||||||
|
@@ -849,7 +849,7 @@ png_get_copyright(png_const_structrp png_ptr)
|
||||||
|
return PNG_STRING_COPYRIGHT
|
||||||
|
#else
|
||||||
|
return PNG_STRING_NEWLINE \
|
||||||
|
- "libpng version 1.6.54" PNG_STRING_NEWLINE \
|
||||||
|
+ "libpng version 1.6.55" PNG_STRING_NEWLINE \
|
||||||
|
"Copyright (c) 2018-2026 Cosmin Truta" PNG_STRING_NEWLINE \
|
||||||
|
"Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \
|
||||||
|
PNG_STRING_NEWLINE \
|
||||||
|
diff --git a/src/java.desktop/share/native/libsplashscreen/libpng/png.h b/src/java.desktop/share/native/libsplashscreen/libpng/png.h
|
||||||
|
index ab8876a9626..e95c0444399 100644
|
||||||
|
--- a/src/java.desktop/share/native/libsplashscreen/libpng/png.h
|
||||||
|
+++ b/src/java.desktop/share/native/libsplashscreen/libpng/png.h
|
||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
* However, the following notice accompanied the original version of this
|
||||||
|
* file and, per its terms, should not be removed:
|
||||||
|
*
|
||||||
|
- * libpng version 1.6.54
|
||||||
|
+ * libpng version 1.6.55
|
||||||
|
*
|
||||||
|
* Copyright (c) 2018-2026 Cosmin Truta
|
||||||
|
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
|
||||||
|
@@ -43,7 +43,7 @@
|
||||||
|
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
|
||||||
|
* libpng versions 0.97, January 1998, through 1.6.35, July 2018:
|
||||||
|
* Glenn Randers-Pehrson
|
||||||
|
- * libpng versions 1.6.36, December 2018, through 1.6.54, January 2026:
|
||||||
|
+ * libpng versions 1.6.36, December 2018, through 1.6.55, February 2026:
|
||||||
|
* Cosmin Truta
|
||||||
|
* See also "Contributing Authors", below.
|
||||||
|
*/
|
||||||
|
@@ -267,7 +267,7 @@
|
||||||
|
* ...
|
||||||
|
* 1.5.30 15 10530 15.so.15.30[.0]
|
||||||
|
* ...
|
||||||
|
- * 1.6.54 16 10654 16.so.16.54[.0]
|
||||||
|
+ * 1.6.55 16 10655 16.so.16.55[.0]
|
||||||
|
*
|
||||||
|
* Henceforth the source version will match the shared-library major and
|
||||||
|
* minor numbers; the shared-library major version number will be used for
|
||||||
|
@@ -303,7 +303,7 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Version information for png.h - this should match the version in png.c */
|
||||||
|
-#define PNG_LIBPNG_VER_STRING "1.6.54"
|
||||||
|
+#define PNG_LIBPNG_VER_STRING "1.6.55"
|
||||||
|
#define PNG_HEADER_VERSION_STRING " libpng version " PNG_LIBPNG_VER_STRING "\n"
|
||||||
|
|
||||||
|
/* The versions of shared library builds should stay in sync, going forward */
|
||||||
|
@@ -314,7 +314,7 @@
|
||||||
|
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
||||||
|
#define PNG_LIBPNG_VER_MAJOR 1
|
||||||
|
#define PNG_LIBPNG_VER_MINOR 6
|
||||||
|
-#define PNG_LIBPNG_VER_RELEASE 54
|
||||||
|
+#define PNG_LIBPNG_VER_RELEASE 55
|
||||||
|
|
||||||
|
/* This should be zero for a public release, or non-zero for a
|
||||||
|
* development version.
|
||||||
|
@@ -345,7 +345,7 @@
|
||||||
|
* From version 1.0.1 it is:
|
||||||
|
* XXYYZZ, where XX=major, YY=minor, ZZ=release
|
||||||
|
*/
|
||||||
|
-#define PNG_LIBPNG_VER 10654 /* 1.6.54 */
|
||||||
|
+#define PNG_LIBPNG_VER 10655 /* 1.6.55 */
|
||||||
|
|
||||||
|
/* Library configuration: these options cannot be changed after
|
||||||
|
* the library has been built.
|
||||||
|
@@ -455,7 +455,7 @@ extern "C" {
|
||||||
|
/* This triggers a compiler error in png.c, if png.c and png.h
|
||||||
|
* do not agree upon the version number.
|
||||||
|
*/
|
||||||
|
-typedef char *png_libpng_version_1_6_54;
|
||||||
|
+typedef char *png_libpng_version_1_6_55;
|
||||||
|
|
||||||
|
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
|
||||||
|
*
|
||||||
|
diff --git a/src/java.desktop/share/native/libsplashscreen/libpng/pngconf.h b/src/java.desktop/share/native/libsplashscreen/libpng/pngconf.h
|
||||||
|
index 959c604edbc..b957f8b5061 100644
|
||||||
|
--- a/src/java.desktop/share/native/libsplashscreen/libpng/pngconf.h
|
||||||
|
+++ b/src/java.desktop/share/native/libsplashscreen/libpng/pngconf.h
|
||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
* However, the following notice accompanied the original version of this
|
||||||
|
* file and, per its terms, should not be removed:
|
||||||
|
*
|
||||||
|
- * libpng version 1.6.54
|
||||||
|
+ * libpng version 1.6.55
|
||||||
|
*
|
||||||
|
* Copyright (c) 2018-2026 Cosmin Truta
|
||||||
|
* Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson
|
||||||
|
diff --git a/src/java.desktop/share/native/libsplashscreen/libpng/pnglibconf.h b/src/java.desktop/share/native/libsplashscreen/libpng/pnglibconf.h
|
||||||
|
index b413b510acf..ae1ab462072 100644
|
||||||
|
--- a/src/java.desktop/share/native/libsplashscreen/libpng/pnglibconf.h
|
||||||
|
+++ b/src/java.desktop/share/native/libsplashscreen/libpng/pnglibconf.h
|
||||||
|
@@ -31,7 +31,7 @@
|
||||||
|
* However, the following notice accompanied the original version of this
|
||||||
|
* file and, per its terms, should not be removed:
|
||||||
|
*/
|
||||||
|
-/* libpng version 1.6.54 */
|
||||||
|
+/* libpng version 1.6.55 */
|
||||||
|
|
||||||
|
/* Copyright (c) 2018-2026 Cosmin Truta */
|
||||||
|
/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */
|
||||||
|
diff --git a/src/java.desktop/share/native/libsplashscreen/libpng/pngrtran.c b/src/java.desktop/share/native/libsplashscreen/libpng/pngrtran.c
|
||||||
|
index 7680fe64828..fcce80da1cb 100644
|
||||||
|
--- a/src/java.desktop/share/native/libsplashscreen/libpng/pngrtran.c
|
||||||
|
+++ b/src/java.desktop/share/native/libsplashscreen/libpng/pngrtran.c
|
||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
* However, the following notice accompanied the original version of this
|
||||||
|
* file and, per its terms, should not be removed:
|
||||||
|
*
|
||||||
|
- * Copyright (c) 2018-2025 Cosmin Truta
|
||||||
|
+ * Copyright (c) 2018-2026 Cosmin Truta
|
||||||
|
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
|
||||||
|
* Copyright (c) 1996-1997 Andreas Dilger
|
||||||
|
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
|
||||||
|
@@ -737,8 +737,8 @@ png_set_quantize(png_structrp png_ptr, png_colorp palette,
|
||||||
|
break;
|
||||||
|
|
||||||
|
t->next = hash[d];
|
||||||
|
- t->left = (png_byte)i;
|
||||||
|
- t->right = (png_byte)j;
|
||||||
|
+ t->left = png_ptr->palette_to_index[i];
|
||||||
|
+ t->right = png_ptr->palette_to_index[j];
|
||||||
|
hash[d] = t;
|
||||||
|
}
|
||||||
|
}
|
||||||
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,41 +0,0 @@
|
|||||||
diff --git a/Makefile b/Makefile
|
|
||||||
index 5175f21..571748a 100644
|
|
||||||
--- a/Makefile
|
|
||||||
+++ b/Makefile
|
|
||||||
@@ -13,12 +13,12 @@ DEVEL_PKGS = nss nss-softokn
|
|
||||||
LIB_DIR = $(shell pkg-config --variable=libdir nss-softokn)
|
|
||||||
SHARED_LIBS = pthread softokn3 nss3
|
|
||||||
STATIC_LIBS = freebl
|
|
||||||
-SHR_CFLAGS = -shared -fPIC -fvisibility=hidden -Wl,--exclude-libs,ALL \
|
|
||||||
- $(addprefix -l,$(SHARED_LIBS)) \
|
|
||||||
+SHR_CFLAGS = -shared -fPIC -fvisibility=hidden \
|
|
||||||
$(strip $(shell pkg-config --cflags $(DEVEL_PKGS))) \
|
|
||||||
-Wpedantic -Wall -Wextra -Wconversion -Werror
|
|
||||||
DBG_CFLAGS = -Wno-error=unused-variable -Wno-error=unused-parameter -DDEBUG \
|
|
||||||
-O0 -g
|
|
||||||
+SHR_LDFLAGS = -Wl,--exclude-libs,ALL $(addprefix -l,$(SHARED_LIBS))
|
|
||||||
|
|
||||||
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
|
||||||
CLANG_FORMAT_STYLE = { \
|
|
||||||
@@ -53,10 +53,12 @@ endif
|
|
||||||
|
|
||||||
.PHONY: release ## Build the library in RELEASE mode (default)
|
|
||||||
release: BLD_CFLAGS = $(SHR_CFLAGS) $(CFLAGS)
|
|
||||||
+release: BLD_LDFLAGS = $(SHR_LDFLAGS) $(LDFLAGS)
|
|
||||||
release: $(CLEAN_IF_PREVIOUS_BUILD_MODE_IS_DEBUG) $(OUTPUT)
|
|
||||||
|
|
||||||
.PHONY: debug ## Build the library in DEBUG mode
|
|
||||||
debug: BLD_CFLAGS = $(SHR_CFLAGS) $(DBG_CFLAGS) $(CFLAGS)
|
|
||||||
+debug: BLD_LDFLAGS = $(SHR_LDFLAGS) $(LDFLAGS)
|
|
||||||
debug: CREATE_DBG_SENTINEL_IF_NEEDED = touch $(DBG_SENTINEL)
|
|
||||||
debug: $(CLEAN_IF_PREVIOUS_BUILD_MODE_IS_RELEASE) $(OUTPUT)
|
|
||||||
|
|
||||||
@@ -73,7 +75,7 @@ $(BIN_DIR):
|
|
||||||
|
|
||||||
$(OUTPUT): $(BIN_DIR) $(SRC_FILES)
|
|
||||||
@$(CREATE_DBG_SENTINEL_IF_NEEDED)
|
|
||||||
- $(CC) $(BLD_CFLAGS) $(filter %.c, $+) \
|
|
||||||
+ $(CC) $(BLD_CFLAGS) $(filter %.c, $+) $(BLD_LDFLAGS) \
|
|
||||||
$(addprefix $(LIB_DIR)/lib,$(addsuffix .a,$(STATIC_LIBS))) -o $@
|
|
||||||
|
|
||||||
|
|
||||||
@ -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