From a4048c8693f1b9f3b3c82d852abe9b2f74c7846f Mon Sep 17 00:00:00 2001 From: Andrew Hughes Date: Mon, 29 Jun 2026 23:47:52 +0100 Subject: [PATCH] Move version information and core NVR definitions back towards the top of the file Related: RHEL-210972 --- java-25-openjdk.spec | 237 ++++++++++++++++++++++--------------------- 1 file changed, 119 insertions(+), 118 deletions(-) diff --git a/java-25-openjdk.spec b/java-25-openjdk.spec index da3c3e6..991dead 100644 --- a/java-25-openjdk.spec +++ b/java-25-openjdk.spec @@ -3,6 +3,123 @@ # it and then adjust portablerelease and portablesuffix # to match the new portable. +# New Version-String scheme-style defines +%global featurever 25 +%global interimver 0 +%global updatever 3 +%global patchver 0 +%global buildver 9 +%global portablerelease 1 +%global rpmrelease 2 + +# Define IcedTea version used for SystemTap tapsets and desktop file +%global icedteaver 6.0.0pre00-c848b93a8598 +# Define current Git revision for the FIPS support patches +%global fipsver 57722aab802 +# Define nssadapter variables +%global nssadapter_version 0.1.1 +%global nssadapter_name nssadapter-%{nssadapter_version} +# Define whether the crypto policy is expected to be active when testing +%global crypto_policy_active true +# Define JDK versions +%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver} +%global javaver %{featurever} +# Strip up to 6 trailing zeros in newjavaver, as the JDK does, to get the correct version used in filenames +%global filever %(svn=%{newjavaver}; for i in 1 2 3 4 5 6 ; do svn=${svn%%.0} ; done; echo ${svn}) +# The tag used to create the OpenJDK tarball +%global vcstag jdk-%{filever}+%{buildver}%{?tagsuffix:-%{tagsuffix}} + +# Standard JPackage naming and versioning defines +%global origin openjdk +%global origin_nice OpenJDK +%global top_level_dir_name %{vcstag} +%global top_level_dir_name_backup %{top_level_dir_name}-backup + +# Define milestone (EA for pre-releases, GA for releases) +# Release will be (where N is usually a number starting at 1): +# - 0.N.ea for EA releases, +# - N for GA releases +%global is_ga 1 +%if %{is_ga} +%global build_type GA +%global ea_designator "" +%global ea_designator_zip %{nil} +%global extraver %{nil} +%global eaprefix %{nil} +%else +%global build_type EA +%global ea_designator ea +%global ea_designator_zip -%{ea_designator} +%global extraver .%{ea_designator} +%global eaprefix 0. +%endif + +%global compatiblename java-%{javaver}-%{origin} + +Name: %{compatiblename} +Version: %{newjavaver}.%{buildver} +Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist} + +%global fullversion %{compatiblename}-%{version}-%{release} + +# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons +# and this change was brought into RHEL-4. java-1.5.0-ibm packages +# also included the epoch in their virtual provides. This created a +# situation where in-the-wild java-1.5.0-ibm packages provided "java = +# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is +# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be +# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in +# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual +# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". +Epoch: 1 +Summary: %{origin_nice} %{featurever} Runtime Environment +# Groups are only used up to RHEL 8 and on Fedora versions prior to F30 +%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30) +Group: Development/Languages +%endif + +# HotSpot code is licensed under GPLv2 +# JDK library code is licensed under GPLv2 with the Classpath exception +# The Apache license is used in code taken from Apache projects (primarily xalan & xerces) +# DOM levels 2 & 3 and the XML digital signature schemas are licensed under the W3C Software License +# The JSR166 concurrency code is in the public domain +# The BSD and MIT licenses are used for a number of third-party libraries (see ADDITIONAL_LICENSE_INFO) +# The OpenJDK source tree includes: +# - JPEG library (IJG), zlib & libpng (zlib), giflib (MIT), harfbuzz (ISC), +# - freetype (FTL), jline (BSD) and LCMS (MIT) +# - jquery (MIT), jdk.crypto.cryptoki PKCS 11 wrapper (RSA) +# - public_suffix_list.dat from publicsuffix.org (MPLv2.0) +# The test code includes copies of NSS under the Mozilla Public License v2.0 +# The PCSClite headers are under a BSD with advertising license +# The elliptic curve cryptography (ECC) source code is licensed under the LGPLv2.1 or any later version +License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C and zlib and ISC and FTL and RSA +URL: http://openjdk.java.net/ + +# Define the OS the portable JDK is built on +# This is undefined for CentOS & openjdk-portable-rhel-8 builds and +# equals 'rhel7' for openjdk-portable-rhel-7 builds +%if 0 +%global pkgos rhel7 +%endif +# Define the root name of the portable packages +%global pkgnameroot java-%{featurever}-%{origin}-portable%{?pkgos:-%{pkgos}} +# Release field for the portable build +%global prelease %{?eaprefix}%{portablerelease}%{?extraver} +# Portable suffix differs between RHEL and CentOS +%if 0%{?centos} == 0 +%global portablerhel %{?pkgos:7_9}%{!?pkgos:8} +%else +%global portablerhel 9 +%endif +%global portablebuilddir /builddir/build/BUILD +%global portablesuffix el%{portablerhel} +# Check if pandoc was available to generate docs (including man pages) +%if 0%{?portablerhel} == 8 +%global pandoc_available 1 +%else +%global pandoc_available 0 +%endif + # RPM conditionals so as to be able to dynamically produce # slowdebug/release builds. See: # http://rpm.org/user_doc/conditional_builds.html @@ -284,12 +401,6 @@ %global with_systemtap 0 %endif -# New Version-String scheme-style defines -%global featurever 25 -%global interimver 0 -%global updatever 3 -%global patchver 0 - # We don't add any LTS designator for STS packages (Fedora and EPEL). # We need to explicitly exclude EPEL as it has the rhel macro defined. %if 0%{?rhel} && !0%{?epel} @@ -322,54 +433,6 @@ %endif %global oj_vendor_version (Red_Hat-%{version}-%{portablerelease}) -# Define IcedTea version used for SystemTap tapsets and desktop file -%global icedteaver 6.0.0pre00-c848b93a8598 -# Define current Git revision for the FIPS support patches -%global fipsver 57722aab802 -# Define nssadapter variables -%global nssadapter_version 0.1.1 -%global nssadapter_name nssadapter-%{nssadapter_version} -# Define whether the crypto policy is expected to be active when testing -%global crypto_policy_active true -# Define JDK versions -%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver} -%global javaver %{featurever} -# Strip up to 6 trailing zeros in newjavaver, as the JDK does, to get the correct version used in filenames -%global filever %(svn=%{newjavaver}; for i in 1 2 3 4 5 6 ; do svn=${svn%%.0} ; done; echo ${svn}) -# The tag used to create the OpenJDK tarball -%global vcstag jdk-%{filever}+%{buildver}%{?tagsuffix:-%{tagsuffix}} - -# Define the OS the portable JDK is built on -# This is undefined for CentOS & openjdk-portable-rhel-8 builds and -# equals 'rhel7' for openjdk-portable-rhel-7 builds -%if 0 -%global pkgos rhel7 -%endif - -# Standard JPackage naming and versioning defines -%global origin openjdk -%global origin_nice OpenJDK -%global top_level_dir_name %{vcstag} -%global top_level_dir_name_backup %{top_level_dir_name}-backup -%global buildver 9 -%global rpmrelease 2 -# Settings used by the portable build -%global portablerelease 1 -# Portable suffix differs between RHEL and CentOS -%if 0%{?centos} == 0 -%global portablerhel %{?pkgos:7_9}%{!?pkgos:8} -%else -%global portablerhel 9 -%endif -%global portablebuilddir /builddir/build/BUILD -%global portablesuffix el%{portablerhel} -# Check if pandoc was available to generate docs (including man pages) -%if 0%{?portablerhel} == 8 -%global pandoc_available 1 -%else -%global pandoc_available 0 -%endif - # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit %if %is_system_jdk # Using 10 digits may overflow the int used for priority, so we combine the patch and build versions @@ -383,29 +446,6 @@ %global priority %( printf '%08d' 1 ) %endif -# Define milestone (EA for pre-releases, GA for releases) -# Release will be (where N is usually a number starting at 1): -# - 0.N.ea for EA releases, -# - N for GA releases -%global is_ga 1 -%if %{is_ga} -%global build_type GA -%global ea_designator "" -%global ea_designator_zip %{nil} -%global extraver %{nil} -%global eaprefix %{nil} -%else -%global build_type EA -%global ea_designator ea -%global ea_designator_zip -%{ea_designator} -%global extraver .%{ea_designator} -%global eaprefix 0. -%endif - -# Parameterised macros are order-sensitive -%global compatiblename java-%{featurever}-%{origin} -%global fullversion %{compatiblename}-%{version}-%{release} -# output dir stub %define installoutputdir() %{expand:install/jdk%{featurever}.install%{?1}} # we can copy the javadoc to not arched dir, or make it not noarch %define uniquejavadocdir() %{expand:%{compatiblename}%{?1}} @@ -1246,51 +1286,10 @@ 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}} # Define the architectures on which we build ExclusiveArch: %{aarch64} %{ppc64le} s390x x86_64 riscv64 -Name: java-%{javaver}-%{origin} -Version: %{newjavaver}.%{buildver} -Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist} -# Equivalent for the portable build -%global prelease %{?eaprefix}%{portablerelease}%{?extraver} -# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons -# and this change was brought into RHEL-4. java-1.5.0-ibm packages -# also included the epoch in their virtual provides. This created a -# situation where in-the-wild java-1.5.0-ibm packages provided "java = -# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is -# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be -# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in -# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual -# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". - -Epoch: 1 -Summary: %{origin_nice} %{featurever} Runtime Environment -# Groups are only used up to RHEL 8 and on Fedora versions prior to F30 -%if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30) -Group: Development/Languages -%endif - -# HotSpot code is licensed under GPLv2 -# JDK library code is licensed under GPLv2 with the Classpath exception -# The Apache license is used in code taken from Apache projects (primarily xalan & xerces) -# DOM levels 2 & 3 and the XML digital signature schemas are licensed under the W3C Software License -# The JSR166 concurrency code is in the public domain -# The BSD and MIT licenses are used for a number of third-party libraries (see ADDITIONAL_LICENSE_INFO) -# The OpenJDK source tree includes: -# - JPEG library (IJG), zlib & libpng (zlib), giflib (MIT), harfbuzz (ISC), -# - freetype (FTL), jline (BSD) and LCMS (MIT) -# - jquery (MIT), jdk.crypto.cryptoki PKCS 11 wrapper (RSA) -# - public_suffix_list.dat from publicsuffix.org (MPLv2.0) -# The test code includes copies of NSS under the Mozilla Public License v2.0 -# The PCSClite headers are under a BSD with advertising license -# The elliptic curve cryptography (ECC) source code is licensed under the LGPLv2.1 or any later version -License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C and zlib and ISC and FTL and RSA -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 @@ -2605,9 +2604,11 @@ exit 0 - * scripts/builds/waive_usual_rpminspect.sh: Likewise and add missing WORKING_DIR variable. - * scripts/builds/waive_usual_tier0.sh: Remove redundant 'test "x"' usage. - Remove macro references in comments where possible (%dnl not compatible enough yet) +- Move version information and core NVR definitions back towards the top of the file - Related: RHEL-155327 - Related: RHEL-155339 - Resolves: RHEL-150977 +- Related: RHEL-210972 * Sat Apr 18 2026 Andrew Hughes - 1:25.0.3.0.9-1 - Update to jdk-25.0.3+9 (GA)