Create java-25-openjdk package based on java-21-openjdk

- Introduce fakefeaturever to pretend we are java-25-openjdk ahead of time

Related: RHEL-100678
This commit is contained in:
Andrew Hughes 2025-08-19 22:15:07 +01:00
parent 9ef1b1ef0d
commit 6a7bba6c9e
2 changed files with 66 additions and 59 deletions

View File

@ -10,10 +10,10 @@
# Examples:
#
# Produce release, fastdebug *and* slowdebug builds on x86_64 (default):
# $ rpmbuild -ba java-21-openjdk.spec
# $ rpmbuild -ba java-25-openjdk.spec
#
# Produce only release builds (no debug builds) on x86_64:
# $ rpmbuild -ba java-21-openjdk.spec --without slowdebug --without fastdebug
# $ rpmbuild -ba java-25-openjdk.spec --without slowdebug --without fastdebug
#
# Only produce a release build on x86_64:
# $ fedpkg mockbuild --without slowdebug --without fastdebug
@ -311,6 +311,7 @@
# New Version-String scheme-style defines
%global featurever 21
%global fakefeaturever 25
%global interimver 0
%global updatever 8
%global patchver 0
@ -351,7 +352,8 @@
%global fipsver 9203d50836c
# Define JDK versions
%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver}
%global javaver %{featurever}
# Force 25 until we are actually ready to build that JDK version
%global javaver %{fakefeaturever}
# Strip up to 6 trailing zeros in newjavaver, as the JDK does, to get the correct version used in filenames
%global filever %(svn=%{newjavaver}; for i in 1 2 3 4 5 6 ; do svn=${svn%%.0} ; done; echo ${svn})
# The tag used to create the OpenJDK tarball
@ -414,13 +416,13 @@
%endif
# parametrized macros are order-sensitive
%global compatiblename java-%{featurever}-%{origin}
%global compatiblename java-%{fakefeaturever}-%{origin}
%global fullversion %{compatiblename}-%{version}-%{release}
# images directories from upstream build
%global jdkimage jdk
%global static_libs_image static-libs
# output dir stub
%define installoutputdir() %{expand:install/jdk%{featurever}.install%{?1}}
%define installoutputdir() %{expand:install/jdk%{fakefeaturever}.install%{?1}}
# we can copy the javadoc to not arched dir, or make it not noarch
%define uniquejavadocdir() %{expand:%{compatiblename}%{?1}}
# main id and dir of this jdk
@ -728,7 +730,7 @@ fi
%license %{_jvmdir}/%{sdkdir -- %{?1}}/legal
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/README.md
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/java-%{featurever}-openjdk-portable.specfile
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/java-%{fakefeaturever}-openjdk-portable.specfile
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/openjdk-devkit.specfile
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/0*.patch
%dir %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}
@ -1177,7 +1179,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
# Prevent brp-java-repack-jars from being run
%global __jar_repack 0
# Define the root name of the portable packages
%global pkgnameroot java-%{featurever}-%{origin}-portable%{?pkgos:-%{pkgos}}
%global pkgnameroot java-%{fakefeaturever}-%{origin}-portable%{?pkgos:-%{pkgos}}
# Define the architectures on which we build
ExclusiveArch: %{aarch64} %{ppc64le} s390x x86_64 riscv64
@ -1198,7 +1200,7 @@ Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
Epoch: 1
Summary: %{origin_nice} %{featurever} Runtime Environment
Summary: %{origin_nice} %{fakefeaturever} Runtime Environment
# Groups are only used up to RHEL 8 and on Fedora versions prior to F30
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
@ -1222,7 +1224,7 @@ License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv
URL: http://openjdk.java.net/
# The source tarball, generated using generate_source_tarball.sh
Source0: https://openjdk-sources.osci.io/openjdk%{featurever}/open%{vcstag}%{ea_designator_zip}.tar.xz
Source0: https://openjdk-sources.osci.io/openjdk%{fakefeaturever}/open%{vcstag}%{ea_designator_zip}.tar.xz
# Use 'icedtea_sync.sh' to update the following
# They are based on code contained in the IcedTea project (6.x).
@ -1255,7 +1257,7 @@ Source18: TestTranslations.java
# Include portable spec and instructions on how to rebuild
Source19: README.md
Source20: java-%{featurever}-openjdk-portable.specfile
Source20: java-%{fakefeaturever}-openjdk-portable.specfile
Source21: NEWS
Source22: openjdk-devkit.specfile
# Devkit patches; see https://github.com/rh-openjdk/jdk/tree/devkit
@ -1444,37 +1446,37 @@ Provides: bundled(zlib) = 1.3.1
%{java_rpo %{nil}}
%description
The %{origin_nice} %{featurever} runtime environment.
The %{origin_nice} %{fakefeaturever} runtime environment.
%if %{include_debug_build}
%package slowdebug
Summary: %{origin_nice} %{featurever} Runtime Environment %{debug_on}
Summary: %{origin_nice} %{fakefeaturever} Runtime Environment %{debug_on}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
%{java_rpo -- %{debug_suffix_unquoted}}
%description slowdebug
The %{origin_nice} %{featurever} runtime environment.
The %{origin_nice} %{fakefeaturever} runtime environment.
%{debug_warning}
%endif
%if %{include_fastdebug_build}
%package fastdebug
Summary: %{origin_nice} %{featurever} Runtime Environment %{fastdebug_on}
Summary: %{origin_nice} %{fakefeaturever} Runtime Environment %{fastdebug_on}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
%{java_rpo -- %{fastdebug_suffix_unquoted}}
%description fastdebug
The %{origin_nice} %{featurever} runtime environment.
The %{origin_nice} %{fakefeaturever} runtime environment.
%{fastdebug_warning}
%endif
%if %{include_normal_build}
%package headless
Summary: %{origin_nice} %{featurever} Headless Runtime Environment
Summary: %{origin_nice} %{fakefeaturever} Headless Runtime Environment
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1482,12 +1484,12 @@ Group: Development/Languages
%{java_headless_rpo %{nil}}
%description headless
The %{origin_nice} %{featurever} runtime environment without audio and video support.
The %{origin_nice} %{fakefeaturever} runtime environment without audio and video support.
%endif
%if %{include_debug_build}
%package headless-slowdebug
Summary: %{origin_nice} %{featurever} Runtime Environment %{debug_on}
Summary: %{origin_nice} %{fakefeaturever} Runtime Environment %{debug_on}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1495,13 +1497,13 @@ Group: Development/Languages
%{java_headless_rpo -- %{debug_suffix_unquoted}}
%description headless-slowdebug
The %{origin_nice} %{featurever} runtime environment without audio and video support.
The %{origin_nice} %{fakefeaturever} runtime environment without audio and video support.
%{debug_warning}
%endif
%if %{include_fastdebug_build}
%package headless-fastdebug
Summary: %{origin_nice} %{featurever} Runtime Environment %{fastdebug_on}
Summary: %{origin_nice} %{fakefeaturever} Runtime Environment %{fastdebug_on}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1509,13 +1511,13 @@ Group: Development/Languages
%{java_headless_rpo -- %{fastdebug_suffix_unquoted}}
%description headless-fastdebug
The %{origin_nice} %{featurever} runtime environment without audio and video support.
The %{origin_nice} %{fakefeaturever} runtime environment without audio and video support.
%{fastdebug_warning}
%endif
%if %{include_normal_build}
%package devel
Summary: %{origin_nice} %{featurever} Development Environment
Summary: %{origin_nice} %{fakefeaturever} Development Environment
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1523,12 +1525,12 @@ Group: Development/Languages
%{java_devel_rpo %{nil}}
%description devel
The %{origin_nice} %{featurever} development tools.
The %{origin_nice} %{fakefeaturever} development tools.
%endif
%if %{include_debug_build}
%package devel-slowdebug
Summary: %{origin_nice} %{featurever} Development Environment %{debug_on}
Summary: %{origin_nice} %{fakefeaturever} Development Environment %{debug_on}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1536,13 +1538,13 @@ Group: Development/Languages
%{java_devel_rpo -- %{debug_suffix_unquoted}}
%description devel-slowdebug
The %{origin_nice} %{featurever} development tools.
The %{origin_nice} %{fakefeaturever} development tools.
%{debug_warning}
%endif
%if %{include_fastdebug_build}
%package devel-fastdebug
Summary: %{origin_nice} %{featurever} Development Environment %{fastdebug_on}
Summary: %{origin_nice} %{fakefeaturever} Development Environment %{fastdebug_on}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Tools
%endif
@ -1550,7 +1552,7 @@ Group: Development/Tools
%{java_devel_rpo -- %{fastdebug_suffix_unquoted}}
%description devel-fastdebug
The %{origin_nice} %{featurever} development tools .
The %{origin_nice} %{fakefeaturever} development tools .
%{fastdebug_warning}
%endif
@ -1558,33 +1560,33 @@ The %{origin_nice} %{featurever} development tools .
%if %{include_normal_build}
%package static-libs
Summary: %{origin_nice} %{featurever} libraries for static linking
Summary: %{origin_nice} %{fakefeaturever} libraries for static linking
%{java_static_libs_rpo %{nil}}
%description static-libs
The %{origin_nice} %{featurever} libraries for static linking.
The %{origin_nice} %{fakefeaturever} libraries for static linking.
%endif
%if %{include_debug_build}
%package static-libs-slowdebug
Summary: %{origin_nice} %{featurever} libraries for static linking %{debug_on}
Summary: %{origin_nice} %{fakefeaturever} libraries for static linking %{debug_on}
%{java_static_libs_rpo -- %{debug_suffix_unquoted}}
%description static-libs-slowdebug
The %{origin_nice} %{featurever} libraries for static linking.
The %{origin_nice} %{fakefeaturever} libraries for static linking.
%{debug_warning}
%endif
%if %{include_fastdebug_build}
%package static-libs-fastdebug
Summary: %{origin_nice} %{featurever} libraries for static linking %{fastdebug_on}
Summary: %{origin_nice} %{fakefeaturever} libraries for static linking %{fastdebug_on}
%{java_static_libs_rpo -- %{fastdebug_suffix_unquoted}}
%description static-libs-fastdebug
The %{origin_nice} %{featurever} libraries for static linking.
The %{origin_nice} %{fakefeaturever} libraries for static linking.
%{fastdebug_warning}
%endif
@ -1593,7 +1595,7 @@ The %{origin_nice} %{featurever} libraries for static linking.
%if %{include_normal_build}
%package jmods
Summary: JMods for %{origin_nice} %{featurever}
Summary: JMods for %{origin_nice} %{fakefeaturever}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1601,12 +1603,12 @@ Group: Development/Languages
%{java_jmods_rpo %{nil}}
%description jmods
The JMods for %{origin_nice} %{featurever}.
The JMods for %{origin_nice} %{fakefeaturever}.
%endif
%if %{include_debug_build}
%package jmods-slowdebug
Summary: JMods for %{origin_nice} %{featurever} %{debug_on}
Summary: JMods for %{origin_nice} %{fakefeaturever} %{debug_on}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1614,13 +1616,13 @@ Group: Development/Languages
%{java_jmods_rpo -- %{debug_suffix_unquoted}}
%description jmods-slowdebug
The JMods for %{origin_nice} %{featurever}.
The JMods for %{origin_nice} %{fakefeaturever}.
%{debug_warning}
%endif
%if %{include_fastdebug_build}
%package jmods-fastdebug
Summary: JMods for %{origin_nice} %{featurever} %{fastdebug_on}
Summary: JMods for %{origin_nice} %{fakefeaturever} %{fastdebug_on}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Tools
%endif
@ -1628,13 +1630,13 @@ Group: Development/Tools
%{java_jmods_rpo -- %{fastdebug_suffix_unquoted}}
%description jmods-fastdebug
The JMods for %{origin_nice} %{featurever}.
The JMods for %{origin_nice} %{fakefeaturever}.
%{fastdebug_warning}
%endif
%if %{include_normal_build}
%package demo
Summary: %{origin_nice} %{featurever} Demos
Summary: %{origin_nice} %{fakefeaturever} Demos
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1642,12 +1644,12 @@ Group: Development/Languages
%{java_demo_rpo %{nil}}
%description demo
The %{origin_nice} %{featurever} demos.
The %{origin_nice} %{fakefeaturever} demos.
%endif
%if %{include_debug_build}
%package demo-slowdebug
Summary: %{origin_nice} %{featurever} Demos %{debug_on}
Summary: %{origin_nice} %{fakefeaturever} Demos %{debug_on}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1655,13 +1657,13 @@ Group: Development/Languages
%{java_demo_rpo -- %{debug_suffix_unquoted}}
%description demo-slowdebug
The %{origin_nice} %{featurever} demos.
The %{origin_nice} %{fakefeaturever} demos.
%{debug_warning}
%endif
%if %{include_fastdebug_build}
%package demo-fastdebug
Summary: %{origin_nice} %{featurever} Demos %{fastdebug_on}
Summary: %{origin_nice} %{fakefeaturever} Demos %{fastdebug_on}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1669,13 +1671,13 @@ Group: Development/Languages
%{java_demo_rpo -- %{fastdebug_suffix_unquoted}}
%description demo-fastdebug
The %{origin_nice} %{featurever} demos.
The %{origin_nice} %{fakefeaturever} demos.
%{fastdebug_warning}
%endif
%if %{include_normal_build}
%package src
Summary: %{origin_nice} %{featurever} Source Bundle
Summary: %{origin_nice} %{fakefeaturever} Source Bundle
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1683,13 +1685,13 @@ Group: Development/Languages
%{java_src_rpo %{nil}}
%description src
The %{compatiblename}-src sub-package contains the complete %{origin_nice} %{featurever}
The %{compatiblename}-src sub-package contains the complete %{origin_nice} %{fakefeaturever}
class library source code for use by IDE indexers and debuggers.
%endif
%if %{include_debug_build}
%package src-slowdebug
Summary: %{origin_nice} %{featurever} Source Bundle %{for_debug}
Summary: %{origin_nice} %{fakefeaturever} Source Bundle %{for_debug}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1697,13 +1699,13 @@ Group: Development/Languages
%{java_src_rpo -- %{debug_suffix_unquoted}}
%description src-slowdebug
The %{compatiblename}-src-slowdebug sub-package contains the complete %{origin_nice} %{featurever}
The %{compatiblename}-src-slowdebug sub-package contains the complete %{origin_nice} %{fakefeaturever}
class library source code for use by IDE indexers and debuggers, %{for_debug}.
%endif
%if %{include_fastdebug_build}
%package src-fastdebug
Summary: %{origin_nice} %{featurever} Source Bundle %{for_fastdebug}
Summary: %{origin_nice} %{fakefeaturever} Source Bundle %{for_fastdebug}
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Development/Languages
%endif
@ -1711,13 +1713,13 @@ Group: Development/Languages
%{java_src_rpo -- %{fastdebug_suffix_unquoted}}
%description src-fastdebug
The %{compatiblename}-src-fastdebug sub-package contains the complete %{origin_nice} %{featurever}
The %{compatiblename}-src-fastdebug sub-package contains the complete %{origin_nice} %{fakefeaturever}
class library source code for use by IDE indexers and debuggers, %{for_fastdebug}.
%endif
%if %{include_normal_build}
%package javadoc
Summary: %{origin_nice} %{featurever} API documentation
Summary: %{origin_nice} %{fakefeaturever} API documentation
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Documentation
%endif
@ -1733,9 +1735,9 @@ Requires(postun): %{alternatives_requires}
%{java_javadoc_rpo -- %{nil}}
%description javadoc
The %{origin_nice} %{featurever} API documentation.
The %{origin_nice} %{fakefeaturever} API documentation.
%package javadoc-zip
Summary: %{origin_nice} %{featurever} API documentation compressed in a single archive
Summary: %{origin_nice} %{fakefeaturever} API documentation compressed in a single archive
%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
Group: Documentation
%endif
@ -1752,7 +1754,7 @@ Requires(postun): %{alternatives_requires}
%{java_javadoc_rpo -- %{nil}}
%description javadoc-zip
The %{origin_nice} %{featurever} API documentation compressed in a single archive.
The %{origin_nice} %{fakefeaturever} API documentation compressed in a single archive.
%endif
%prep
@ -1884,11 +1886,11 @@ mkdir -p $(dirname %{installoutputdir})
docdir=%{installoutputdir -- "-docs"}
tar -xJf %{docszip}
mv java-%{featurever}-openjdk*.docs.* ${docdir}
mv java-%{fakefeaturever}-openjdk*.docs.* ${docdir}
miscdir=%{installoutputdir -- "-misc"}
tar -xJf %{misczip}
mv java-%{featurever}-openjdk*.misc.* ${miscdir}
mv java-%{fakefeaturever}-openjdk*.misc.* ${miscdir}
for suffix in %{build_loop} ; do
@ -1908,7 +1910,7 @@ for suffix in %{build_loop} ; do
# TODO: should verify checksums when using packages from buildroot
tar -xJf ${jdkzip}
tar -xJf ${staticlibzip}
mv java-%{featurever}-openjdk* ${installdir}
mv java-%{fakefeaturever}-openjdk* ${installdir}
# Fix build paths in ELF files so it looks like we built them
portablenvr="%{name}-%{VERSION}-%{prelease}.%{portablesuffix}.%{_arch}"
@ -2471,6 +2473,11 @@ exit 0
%endif
%changelog
* Thu Jul 10 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.9-1.1
* Mon Aug 25 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.9-1
- Create java-25-openjdk package based on java-21-openjdk
- Introduce fakefeaturever to pretend we are java-25-openjdk ahead of time
- Related: RHEL-100678
* Thu Jul 10 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.9-1
- Update to jdk-21.0.8+9 (GA)
- Related: RHEL-100678