Make use of the vendor version string to store our version & release rather than an upstream release date
Include a test in the RPM to check the build has the correct vendor information. Fix issue where CheckVendor.java test erroneously passes when it should fail. Add proper quoting so '&' is not treated as a special character by the shell.
This commit is contained in:
parent
9686b18e4f
commit
b88e34f02e
65
CheckVendor.java
Normal file
65
CheckVendor.java
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
/* CheckVendor -- Check the vendor properties match specified values.
|
||||||
|
Copyright (C) 2020 Red Hat, Inc.
|
||||||
|
|
||||||
|
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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public class CheckVendor {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
if (args.length < 4) {
|
||||||
|
System.err.println("CheckVendor <VENDOR> <VENDOR-URL> <VENDOR-BUG-URL> <VENDOR-VERSION-STRING>");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
String vendor = System.getProperty("java.vendor");
|
||||||
|
String expectedVendor = args[0];
|
||||||
|
String vendorURL = System.getProperty("java.vendor.url");
|
||||||
|
String expectedVendorURL = args[1];
|
||||||
|
String vendorBugURL = System.getProperty("java.vendor.url.bug");
|
||||||
|
String expectedVendorBugURL = args[2];
|
||||||
|
String vendorVersionString = System.getProperty("java.vendor.version");
|
||||||
|
String expectedVendorVersionString = args[3];
|
||||||
|
|
||||||
|
if (!expectedVendor.equals(vendor)) {
|
||||||
|
System.err.printf("Invalid vendor %s, expected %s\n",
|
||||||
|
vendor, expectedVendor);
|
||||||
|
System.exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!expectedVendorURL.equals(vendorURL)) {
|
||||||
|
System.err.printf("Invalid vendor URL %s, expected %s\n",
|
||||||
|
vendorURL, expectedVendorURL);
|
||||||
|
System.exit(3);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!expectedVendorBugURL.equals(vendorBugURL)) {
|
||||||
|
System.err.printf("Invalid vendor bug URL %s, expected %s\n",
|
||||||
|
vendorBugURL, expectedVendorBugURL);
|
||||||
|
System.exit(4);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!expectedVendorVersionString.equals(vendorVersionString)) {
|
||||||
|
System.err.printf("Invalid vendor version string %s, expected %s\n",
|
||||||
|
vendorVersionString, expectedVendorVersionString);
|
||||||
|
System.exit(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
System.err.printf("Vendor information verified as %s, %s, %s, %s\n",
|
||||||
|
vendor, vendorURL, vendorBugURL, vendorVersionString);
|
||||||
|
}
|
||||||
|
}
|
@ -311,10 +311,6 @@
|
|||||||
%global interimver 0
|
%global interimver 0
|
||||||
%global updatever 4
|
%global updatever 4
|
||||||
%global patchver 0
|
%global patchver 0
|
||||||
# If you bump featurever, you must also bump vendor_version_string
|
|
||||||
# Used via new version scheme. JDK 17 was
|
|
||||||
# GA'ed in September 2021 => 21.9
|
|
||||||
%global vendor_version_string 21.9
|
|
||||||
# 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,
|
||||||
# and this it is better to change it here, on single place
|
# and this it is better to change it here, on single place
|
||||||
@ -329,6 +325,27 @@
|
|||||||
%global lts_designator_zip ""
|
%global lts_designator_zip ""
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Define vendor information used by OpenJDK
|
||||||
|
%global oj_vendor Red Hat, Inc.
|
||||||
|
%global oj_vendor_url https://www.redhat.com/
|
||||||
|
# Define what url should JVM offer in case of a crash report
|
||||||
|
# order may be important, epel may have rhel declared
|
||||||
|
%if 0%{?epel}
|
||||||
|
%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&component=%{name}&version=epel%{epel}
|
||||||
|
%else
|
||||||
|
%if 0%{?fedora}
|
||||||
|
# Does not work for rawhide, keeps the version field empty
|
||||||
|
%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%{name}&version=%{fedora}
|
||||||
|
%else
|
||||||
|
%if 0%{?rhel}
|
||||||
|
%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%20%{rhel}&component=%{name}
|
||||||
|
%else
|
||||||
|
%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
%global oj_vendor_version (Red_Hat-%{version}-%{release})
|
||||||
|
|
||||||
# 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
|
||||||
@ -340,7 +357,7 @@
|
|||||||
%global top_level_dir_name %{origin}
|
%global top_level_dir_name %{origin}
|
||||||
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
||||||
%global buildver 1
|
%global buildver 1
|
||||||
%global rpmrelease 1
|
%global rpmrelease 2
|
||||||
# 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
|
||||||
# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions
|
# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions
|
||||||
@ -381,23 +398,6 @@
|
|||||||
%global eaprefix 0.
|
%global eaprefix 0.
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Define what url should JVM offer in case of a crash report
|
|
||||||
# order may be important, epel may have rhel declared
|
|
||||||
%if 0%{?epel}
|
|
||||||
%global bugs https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&component=%{name}&version=epel%{epel}
|
|
||||||
%else
|
|
||||||
%if 0%{?fedora}
|
|
||||||
# Does not work for rawhide, keeps the version field empty
|
|
||||||
%global bugs https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%{name}&version=%{fedora}
|
|
||||||
%else
|
|
||||||
%if 0%{?rhel}
|
|
||||||
%global bugs https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%20%{rhel}&component=%{name}
|
|
||||||
%else
|
|
||||||
%global bugs https://bugzilla.redhat.com/enter_bug.cgi
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# parametrized macros are order-sensitive
|
# parametrized macros are order-sensitive
|
||||||
%global compatiblename java-%{featurever}-%{origin}
|
%global compatiblename java-%{featurever}-%{origin}
|
||||||
%global fullversion %{compatiblename}-%{version}-%{release}
|
%global fullversion %{compatiblename}-%{version}-%{release}
|
||||||
@ -1294,6 +1294,9 @@ Source14: TestECDSA.java
|
|||||||
# Verify system crypto (policy) can be disabled via a property
|
# Verify system crypto (policy) can be disabled via a property
|
||||||
Source15: TestSecurityProperties.java
|
Source15: TestSecurityProperties.java
|
||||||
|
|
||||||
|
# Ensure vendor settings are correct
|
||||||
|
Source16: CheckVendor.java
|
||||||
|
|
||||||
# nss fips configuration file
|
# nss fips configuration file
|
||||||
Source17: nss.fips.cfg.in
|
Source17: nss.fips.cfg.in
|
||||||
|
|
||||||
@ -1703,6 +1706,8 @@ The %{origin_nice} %{featurever} API documentation compressed in a single archiv
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
|
|
||||||
|
echo "Preparing %{oj_vendor_version}"
|
||||||
|
|
||||||
# Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-(
|
# Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-(
|
||||||
%if 0%{?stapinstall:1}
|
%if 0%{?stapinstall:1}
|
||||||
echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{stapinstall}"
|
echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{stapinstall}"
|
||||||
@ -1896,11 +1901,11 @@ function buildjdk() {
|
|||||||
--with-version-build=%{buildver} \
|
--with-version-build=%{buildver} \
|
||||||
--with-version-pre="%{ea_designator}" \
|
--with-version-pre="%{ea_designator}" \
|
||||||
--with-version-opt=%{lts_designator} \
|
--with-version-opt=%{lts_designator} \
|
||||||
--with-vendor-version-string="%{vendor_version_string}" \
|
--with-vendor-version-string="%{oj_vendor_version}" \
|
||||||
--with-vendor-name="Red Hat, Inc." \
|
--with-vendor-name="%{oj_vendor}" \
|
||||||
--with-vendor-url="https://www.redhat.com/" \
|
--with-vendor-url="%{oj_vendor_url}" \
|
||||||
--with-vendor-bug-url="%{bugs}" \
|
--with-vendor-bug-url="%{oj_vendor_bug_url}" \
|
||||||
--with-vendor-vm-bug-url="%{bugs}" \
|
--with-vendor-vm-bug-url="%{oj_vendor_bug_url}" \
|
||||||
--with-boot-jdk=${buildjdk} \
|
--with-boot-jdk=${buildjdk} \
|
||||||
--with-debug-level=${debuglevel} \
|
--with-debug-level=${debuglevel} \
|
||||||
--with-native-debug-symbols="%{debug_symbols}" \
|
--with-native-debug-symbols="%{debug_symbols}" \
|
||||||
@ -2285,6 +2290,10 @@ nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation
|
|||||||
if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; else false; fi
|
if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; else false; fi
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Check correct vendor values have been set
|
||||||
|
$JAVA_HOME/bin/javac -d . %{SOURCE16}
|
||||||
|
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendor}" "%{oj_vendor_url}" "%{oj_vendor_bug_url}" "%{oj_vendor_version}"
|
||||||
|
|
||||||
%if %{include_staticlibs}
|
%if %{include_staticlibs}
|
||||||
# Check debug symbols in static libraries (smoke test)
|
# Check debug symbols in static libraries (smoke test)
|
||||||
export STATIC_LIBS_HOME=${JAVA_HOME}/%{static_libs_install_dir}
|
export STATIC_LIBS_HOME=${JAVA_HOME}/%{static_libs_install_dir}
|
||||||
@ -2552,6 +2561,14 @@ cjc.mainProgram(args)
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jul 14 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.4.0.1-0.2.ea
|
||||||
|
- Make use of the vendor version string to store our version & release rather than an upstream release date
|
||||||
|
- Include a test in the RPM to check the build has the correct vendor information.
|
||||||
|
|
||||||
|
* Thu Jul 14 2022 Jayashree Huttanagoudar <jhuttana@redhat.com> - 1:17.0.4.0.1-0.2.ea
|
||||||
|
- Fix issue where CheckVendor.java test erroneously passes when it should fail.
|
||||||
|
- Add proper quoting so '&' is not treated as a special character by the shell.
|
||||||
|
|
||||||
* Mon Jul 11 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.4.0.1-0.1.ea
|
* Mon Jul 11 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.4.0.1-0.1.ea
|
||||||
- Update to jdk-17.0.4.0+1
|
- Update to jdk-17.0.4.0+1
|
||||||
- Update release notes to 17.0.4.0+1
|
- Update release notes to 17.0.4.0+1
|
||||||
|
Loading…
Reference in New Issue
Block a user