Compare commits

..

2 Commits

Author SHA1 Message Date
eabdullin
6c2ab26cd7 Exclude %{bootjdkpkg}-portable-devel%{?bootdebugpkg:-%{bootdebugpkg}} from BR for bootstrap build 2025-10-08 18:55:39 +03:00
eabdullin
91dc9761a6 Portable 2025-10-07 14:50:13 +03:00
5 changed files with 52 additions and 2651 deletions

1
.gitignore vendored
View File

@ -39,4 +39,3 @@
/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

131
NEWS
View File

@ -3,7 +3,7 @@ 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 23.0.0 (2024-09-17):
New in release OpenJDK 22.0.0 (2024-03-19):
===========================================
Major changes are listed below. Some changes may have been backported
to earlier releases following their first appearance in OpenJDK 22
@ -15,23 +15,16 @@ NEW FEATURES
Language Features
=================
Flexible Constructor Bodies
Statements before super(...)
============================
https://openjdk.org/jeps/447
https://openjdk.org/jeps/482
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.
In constructors in the Java programming language, allow statements
that do not reference the instance being created to appear before an
explicit constructor invocation (i.e. super()).
This was introduced as a preview language feature
(http://openjdk.java.net/jeps/12) in OpenJDK 22 (JEP 447) under the
name "Statements before super(...)". It reaches a second preview in
OpenJDK 23 (JEP 482) with the addition of allowing fields to be
initialized before invoking another constructor.
This is a preview language feature (http://openjdk.java.net/jeps/12)
introduced in OpenJDK 22 (JEP 447).
Unnamed Patterns and Variables
==============================
@ -46,28 +39,19 @@ an underscore character, _.
This feature is now final. 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
String Templates
================
https://openjdk.org/jeps/430
https://openjdk.org/jeps/459
Enhance pattern matching by allowing primitive type patterns in all
pattern contexts, and extend instanceof and switch to work with all
primitive types.
Enhance the Java programming language with string templates. String
templates complement Java's existing string literals and text blocks
by coupling literal text with embedded expressions and template
processors to produce specialized results.
This is a preview language feature (http://openjdk.java.net/jeps/12)
introduced in OpenJDK 23 (JEP 455).
Module Import Declarations
==========================
https://openjdk.org/jeps/476
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 is a preview language feature (http://openjdk.java.net/jeps/12)
introduced in OpenJDK 23 (JEP 476).
This is a preview feature (http://openjdk.java.net/jeps/12) introduced
in OpenJDK 21 (JEP 430) and reaching its second preview in OpenJDK 22
(JEP 459).
Library Features
================
@ -101,14 +85,12 @@ preview in OpenJDK 21 (JEP 442).
Class-File API
==============
https://openjdk.org/jeps/457
https://openjdk.org/jeps/466
Provide a standard API for parsing, generating, and transforming Java
class files.
This is a preview library feature (http://openjdk.java.net/jeps/12)
introduced in OpenJDK 22 (JEP 457) with a second preview in OpenJDK 23
(JEP 466).
introduced in OpenJDK 22 (JEP 457).
Vector API
==========
@ -119,7 +101,6 @@ 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
Introduce an API to express vector computations that reliably compile
at runtime to optimal vector hardware instructions on supported CPU
@ -130,21 +111,19 @@ 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) and it reaches
its eighth in OpenJDK 23 (JEP 469).
21 a sixth (JEP 448) and it reaches its seventh in OpenJDK 22 (JEP
460).
Stream Gatherers
================
https://openjdk.org/jeps/461
https://openjdk.org/jeps/473
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 is a preview library feature (http://openjdk.java.net/jeps/12)
introduced in OpenJDK 22 (JEP 461) with a second preview in OpenJDK 23
(JEP 473).
introduced in OpenJDK 22 (JEP 461).
Structured Concurrency
======================
@ -152,7 +131,6 @@ 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
Simplify multithreaded programming by introducing an API for
structured concurrency. Structured concurrency treats multiple tasks
@ -164,14 +142,12 @@ 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) and has
a third preview in OpenJDK 23 (JEP 480).
453) and reaches its second preview in OpenJDK 22 (JEP 462).
Implicitly Declared Classes and Instance Main Methods
=====================================================
https://openjdk.org/jeps/445
https://openjdk.org/jeps/463
https://openjdk.org/jeps/477
Evolve the Java language so that students can write their first
programs without needing to understand language features designed for
@ -183,26 +159,24 @@ their skills grow.
This library feature was 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 reaches a second
preview in OpenJDK 22 (JEP 463) and a third in OpenJDK 23 (JEP 477)
under a new name, due to the move away from unnamed classes to an
implicitly declared name chosen by the host system.
preview in OpenJDK 22 (JEP 463) under a new name, due to the move away
from unnamed classes to an implicitly declared name chosen by the host
system.
Scoped Values
=============
https://openjdk.org/jeps/429
https://openjdk.org/jeps/446
https://openjdk.org/jeps/464
https://openjdk.org/jeps/481
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 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), reached its second preview in OpenJDK 22 (JEP 464) and a third
in OpenJDK 23 (JEP 481).
(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) and reaches its second preview in OpenJDK 22 (JEP 464).
Virtual Machine Enhancements
============================
@ -215,14 +189,6 @@ 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/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.
Tools
=====
@ -235,42 +201,3 @@ 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.
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.
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

View File

@ -327,7 +327,7 @@
%endif
# New Version-String scheme-style defines
%global featurever 23
%global featurever 22
%global fakefeaturever 25
%global interimver 0
%global updatever 2
@ -335,7 +335,7 @@
# buildjdkver is usually same as %%{featurever},
# but in time of bootstrap of next jdk, it is featurever-1,
# and this it is better to change it here, on single place
%global buildjdkver %(expr %{featurever} - 1)
%global buildjdkver %{featurever}
# We don't add any LTS designator for STS packages (Fedora and EPEL).
# We need to explicitly exclude EPEL as it would have the %%{rhel} macro defined.
%if 0%{?rhel} && !0%{?epel}
@ -345,6 +345,21 @@
%global lts_designator ""
%global lts_designator_zip ""
%endif
# JDK to use for bootstrapping
%global bootjdkpkg java-%{fakefeaturever}-openjdk
%ifarch %{fastdebug_arches}
%global bootdebugpkg fastdebug
%endif
%global bootjdkzip %{_jvmdir}/%{bootjdkpkg}-*.portable%{?bootdebugpkg:.%{bootdebugpkg}}.jdk.%{_arch}.tar.xz
%global bootjdk %{_builddir}/%{bootjdkpkg}.boot
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
# This will only work where the bootstrap JDK is the same major version
# as the JDK being built
%if %{with fresh_libjvm} && %{buildjdkver} == %{featurever}
%global build_hotspot_first 1
%else
%global build_hotspot_first 0
%endif
# Define vendor information used by OpenJDK
%global oj_vendor Red Hat, Inc.
@ -385,8 +400,8 @@
%global origin_nice OpenJDK
%global top_level_dir_name %{vcstag}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 7
%global rpmrelease 1
%global buildver 9
%global rpmrelease 2
#%%global tagsuffix %%{nil}
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
%if %is_system_jdk
@ -453,22 +468,6 @@
%define miscportablename() %(echo %{uniquesuffix ""} | sed "s;el%{rhel}\\(_[0-9]\\)*;portable.misc;g")
%define miscportablearchive() %{miscportablename}.tar.xz
# JDK to use for bootstrapping
%global bootjdkpkg java-%{fakefeaturever}-openjdk
%ifarch %{fastdebug_arches}
%global bootdebugpkg fastdebug
%endif
%global bootjdkzip %{_jvmdir}/%{bootjdkpkg}-*.portable%{?bootdebugpkg:.%{bootdebugpkg}}.jdk.%{_arch}.tar.xz
%global bootjdk %{_builddir}/%{uniquesuffix -- ""}/%{bootjdkpkg}.boot
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
# This will only work where the bootstrap JDK is the same major version
# as the JDK being built
%if %{with fresh_libjvm} && %{buildjdkver} == %{featurever}
%global build_hotspot_first 1
%else
%global build_hotspot_first 0
%endif
#################################################################
# fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349
# https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14
@ -598,7 +597,7 @@ Source0: https://openjdk-sources.osci.io/openjdk%{featurever}/open%{vcstag}%{ea_
# Use 'icedtea_sync.sh' to update the following
# They are based on code contained in the IcedTea project (6.x).
# Systemtap tapsets. Zipped up to keep it small.
Source8: tapsets-icedtea-%{icedteaver}.tar.xz
Source8: tapsets-icedtea-%%{icedteaver}.tar.xz
# Desktop files. Adapted from IcedTea
# Disabled in portables
@ -739,7 +738,6 @@ BuildRequires: zip
BuildRequires: tar
BuildRequires: unzip
BuildRequires: javapackages-filesystem
BuildRequires: %{bootjdkpkg}-portable-devel%{?bootdebugpkg:-%{bootdebugpkg}}
# Zero-assembler build requirement
%ifarch %{zero_arches}
BuildRequires: libffi-devel
@ -1067,7 +1065,7 @@ pushd %{_jvmdir}
sha256sum --check %{bootjdkzip}.sha256sum
popd
tar -xJf %{bootjdkzip}
mv java-%{fakefeaturever}-openjdk-%{buildjdkver}* %{bootjdk}
mv java-%{fakefeaturever}-openjdk-%{featurever}* %{bootjdk}
# Print release information
echo "Installed boot JDK:"
cat %{bootjdk}/release
@ -1958,16 +1956,6 @@ done
%endif
%changelog
* Sat Oct 25 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:23.0.2.0.7-1
- Update to jdk-23.0.2+7 (GA)
- Update release notes with features of JDK 23
- Switch buildjdkver to featurever + 1
- Use buildjdkver in the path to the extracted bootstrap JDK
- Move bootstrap declarations later so they can use variables like uniquesuffix
- Fix bootjdk so it uses our build subdirectory created in setup (_builddir only gives the top-level BUILD)
- Fix double '%' in specification of IcedTea sources
- Related: RHELBU-3203
* Mon Sep 22 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:22.0.2.0.9-2
- Build using ourselves rather than the system JDK as java-25-openjdk is unavailable on older systems
- Switch buildjdkver back to featurever temporarily for this rebuild

File diff suppressed because it is too large Load Diff

1
java-25-openjdk.spec Symbolic link
View File

@ -0,0 +1 @@
java-25-openjdk-portable.specfile

View File

@ -1,2 +1,2 @@
SHA512 (tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz) = 97d026212363b3c83f6a04100ad7f6fdde833d16579717f8756e2b8c2eb70e144a41a330cb9ccde9c3badd37a2d54fdf4650a950ec21d8b686d545ecb2a64d30
SHA512 (openjdk-23.0.2+7.tar.xz) = 6cab15914f7c61acd905347b7d6e4fe682401248294afcd972b2b576c69ae0d06b2a335089a57329e78962b83fabbc08d3463994bfdcd28dec5a1c3c5167d660
SHA512 (openjdk-22.0.2+9.tar.xz) = 960746381f56cb516a2298f75dbf877554b59e73752dc29b040b8629b153174d2ea2f612d3479b511aaac293e4d336c798a58fd1ba4d2b9d5933899f64d04313