import java-17-openjdk-17.0.7.0.7-3.el9
This commit is contained in:
		
							parent
							
								
									07d4ffe8d6
								
							
						
					
					
						commit
						9762058b96
					
				
							
								
								
									
										2557
									
								
								SOURCES/NEWS
									
									
									
									
									
								
							
							
						
						
									
										2557
									
								
								SOURCES/NEWS
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										41
									
								
								SOURCES/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								SOURCES/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| OpenJDK 17 is the latest Long-Term Support (LTS) release of the Java platform. | ||||
| 
 | ||||
| For a list of major changes from OpenJDK 11 (java-11-openjdk), see the upstream | ||||
| release page for OpenJDK 17 and the preceding interim releases: | ||||
| 
 | ||||
| * 12: https://openjdk.java.net/projects/jdk/12/ | ||||
| * 13: https://openjdk.java.net/projects/jdk/13/ | ||||
| * 14: https://openjdk.java.net/projects/jdk/14/ | ||||
| * 15: https://openjdk.java.net/projects/jdk/15/ | ||||
| * 16: https://openjdk.java.net/projects/jdk/16/ | ||||
| * 17: https://openjdk.java.net/projects/jdk/17/ | ||||
| 
 | ||||
| # Rebuilding the OpenJDK package | ||||
| 
 | ||||
| The OpenJDK packages are now created from a single build which is then | ||||
| packaged for different major versions of Red Hat Enterprise Linux | ||||
| (RHEL). This allows the OpenJDK team to focus their efforts on the | ||||
| development and testing of this single build, rather than having | ||||
| multiple builds which only differ by the platform they were built on. | ||||
| 
 | ||||
| This does make rebuilding the package slightly more complicated than a | ||||
| normal package. Modifications should be made to the | ||||
| `java-17-openjdk-portable.specfile` file, which can be found with this | ||||
| README file in the source RPM or installed in the documentation tree | ||||
| by the `java-17-openjdk-headless` RPM. | ||||
| 
 | ||||
| Once the modified `java-17-openjdk-portable` RPMs are built, they | ||||
| should be installed and will produce a number of tarballs in the | ||||
| `/usr/lib/jvm` directory. The `java-17-openjdk` RPMs can then be | ||||
| built, which will use these tarballs to create the usual RPMs found in | ||||
| RHEL. The `java-17-openjdk-portable` RPMs can be uninstalled once the | ||||
| desired final RPMs are produced. | ||||
| 
 | ||||
| Note that the `java-17-openjdk.spec` file has a hard requirement on | ||||
| the exact version of java-17-openjdk-portable to use, so this will | ||||
| need to be modified if the version or rpmrelease values are changed in | ||||
| `java-17-openjdk-portable.specfile`. | ||||
| 
 | ||||
| To reduce the number of RPMs involved, the `fastdebug` and `slowdebug` | ||||
| builds may be disabled using `--without fastdebug` and `--without | ||||
| slowdebug`. | ||||
							
								
								
									
										1990
									
								
								SOURCES/java-17-openjdk-portable.specfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1990
									
								
								SOURCES/java-17-openjdk-portable.specfile
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -67,14 +67,10 @@ | ||||
| # (initiated in https://bugzilla.redhat.com/show_bug.cgi?id=1482192) | ||||
| %global debug_suffix_unquoted -slowdebug | ||||
| %global fastdebug_suffix_unquoted -fastdebug | ||||
| %global main_suffix_unquoted -main | ||||
| %global staticlibs_suffix_unquoted -staticlibs | ||||
| # quoted one for shell operations | ||||
| %global debug_suffix "%{debug_suffix_unquoted}" | ||||
| %global fastdebug_suffix "%{fastdebug_suffix_unquoted}" | ||||
| %global normal_suffix "" | ||||
| %global main_suffix "%{main_suffix_unquoted}" | ||||
| %global staticlibs_suffix "%{staticlibs_suffix_unquoted}" | ||||
| 
 | ||||
| %global debug_warning This package is unoptimised with full debugging. Install only as needed and remove ASAP. | ||||
| %global fastdebug_warning This package is optimised with full debugging. Install only as needed and remove ASAP. | ||||
| @ -196,12 +192,6 @@ | ||||
| # Build and test slowdebug first as it provides the best diagnostics | ||||
| %global build_loop %{slowdebug_build} %{fastdebug_build} %{normal_build} | ||||
| 
 | ||||
| %if %{include_staticlibs} | ||||
| %global staticlibs_loop %{staticlibs_suffix} | ||||
| %else | ||||
| %global staticlibs_loop %{nil} | ||||
| %endif | ||||
| 
 | ||||
| %if 0%{?flatpak} | ||||
| %global bootstrap_build false | ||||
| %else | ||||
| @ -236,6 +226,8 @@ | ||||
| # JDK to use for bootstrapping | ||||
| %global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk | ||||
| 
 | ||||
| # debugedit tool for rewriting ELF file paths | ||||
| %global debugedit %{_rpmconfigdir}/debugedit | ||||
| 
 | ||||
| # Filter out flags from the optflags macro that cause problems with the OpenJDK build | ||||
| # We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2 | ||||
| @ -356,7 +348,7 @@ | ||||
| %endif | ||||
| %endif | ||||
| %endif | ||||
| %global oj_vendor_version (Red_Hat-%{version}-%{release}) | ||||
| %global oj_vendor_version (Red_Hat-%{version}-%{portablerelease}) | ||||
| 
 | ||||
| # Define IcedTea version used for SystemTap tapsets and desktop file | ||||
| %global icedteaver      6.0.0pre00-c848b93a8598 | ||||
| @ -369,8 +361,12 @@ | ||||
| %global top_level_dir_name   %{origin} | ||||
| %global top_level_dir_name_backup %{top_level_dir_name}-backup | ||||
| %global buildver        7 | ||||
| %global rpmrelease      1 | ||||
| #%%global tagsuffix     %%{nil} | ||||
| %global rpmrelease      3 | ||||
| # Settings used by the portable build | ||||
| %global portablerelease 2 | ||||
| %global portablesuffix el8 | ||||
| %global portablebuilddir /builddir/build/BUILD | ||||
| 
 | ||||
| # 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 | ||||
| @ -418,7 +414,7 @@ | ||||
| %global jdkimage                jdk | ||||
| %global static_libs_image       static-libs | ||||
| # output dir stub | ||||
| %define buildoutputdir() %{expand:build/jdk%{featurever}.build%{?1}} | ||||
| %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:%{fullversion}.%{_arch}%{?1}} | ||||
| # main id and dir of this jdk | ||||
| @ -802,6 +798,8 @@ exit 0 | ||||
| %define files_jre_headless() %{expand: | ||||
| %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 | ||||
| %dir %{_sysconfdir}/.java/.systemPrefs | ||||
| %dir %{_sysconfdir}/.java | ||||
| %dir %{_jvmdir}/%{sdkdir -- %{?1}} | ||||
| @ -1291,9 +1289,6 @@ Source8: tapsets-icedtea-%{icedteaver}.tar.xz | ||||
| # Desktop files. Adapted from IcedTea | ||||
| Source9: jconsole.desktop.in | ||||
| 
 | ||||
| # Release notes | ||||
| Source10: NEWS | ||||
| 
 | ||||
| # nss configuration file | ||||
| Source11: nss.cfg.in | ||||
| 
 | ||||
| @ -1315,6 +1310,20 @@ Source16: CheckVendor.java | ||||
| # Ensure translations are available for new timezones | ||||
| Source18: TestTranslations.java | ||||
| 
 | ||||
| # Include portable spec and instructions on how to rebuild | ||||
| Source19: README.md | ||||
| Source20: java-%{featurever}-openjdk-portable.specfile | ||||
| 
 | ||||
| # Setup variables to reference correct sources | ||||
| %global releasezip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.unstripped.jdk.%{_arch}.tar.xz | ||||
| %global staticlibzip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.static-libs.%{_arch}.tar.xz | ||||
| %global docszip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.docs.%{_arch}.tar.xz | ||||
| %global misczip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.misc.%{_arch}.tar.xz | ||||
| %global slowdebugzip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.slowdebug.jdk.%{_arch}.tar.xz | ||||
| %global slowdebugstaticlibzip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.slowdebug.static-libs.%{_arch}.tar.xz | ||||
| %global fastdebugzip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.fastdebug.jdk.%{_arch}.tar.xz | ||||
| %global fastdebugstaticlibzip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.fastdebug.static-libs.%{_arch}.tar.xz | ||||
| 
 | ||||
| ############################################ | ||||
| # | ||||
| # RPM/distribution specific patches | ||||
| @ -1381,7 +1390,7 @@ Patch1001: fips-17u-%{fipsver}.patch | ||||
| 
 | ||||
| ############################################# | ||||
| # | ||||
| # OpenJDK patches appearing in 17.0.8 | ||||
| # OpenJDK patches targetted for 17.0.8 | ||||
| # | ||||
| ############################################# | ||||
| # JDK-8274864: Remove Amman/Cairo hacks in ZoneInfoFile | ||||
| @ -1389,12 +1398,6 @@ Patch2001: jdk8274864-remove_amman_cairo_hacks.patch | ||||
| # JDK-8305113: (tz) Update Timezone Data to 2023c | ||||
| Patch2002: jdk8305113-tzdata2023c.patch | ||||
| 
 | ||||
| ############################################# | ||||
| # | ||||
| # OpenJDK patches targetted for 17.0.6 | ||||
| # | ||||
| ############################################# | ||||
| 
 | ||||
| BuildRequires: autoconf | ||||
| BuildRequires: automake | ||||
| BuildRequires: alsa-lib-devel | ||||
| @ -1422,7 +1425,20 @@ BuildRequires: pkgconfig | ||||
| BuildRequires: xorg-x11-proto-devel | ||||
| BuildRequires: zip | ||||
| BuildRequires: javapackages-filesystem | ||||
| BuildRequires: java-17-openjdk-devel | ||||
| %if %{include_normal_build} | ||||
| BuildRequires: java-%{featurever}-openjdk-portable-unstripped = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix} | ||||
| BuildRequires: java-%{featurever}-openjdk-portable-static-libs = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix} | ||||
| %endif | ||||
| %if %{include_fastdebug_build} | ||||
| BuildRequires: java-%{featurever}-openjdk-portable-devel-fastdebug = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix} | ||||
| BuildRequires: java-%{featurever}-openjdk-portable-static-libs-fastdebug = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix} | ||||
| %endif | ||||
| %if %{include_debug_build} | ||||
| BuildRequires: java-%{featurever}-openjdk-portable-devel-slowdebug = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix} | ||||
| BuildRequires: java-%{featurever}-openjdk-portable-static-libs-slowdebug = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix} | ||||
| %endif | ||||
| BuildRequires: java-%{featurever}-openjdk-portable-docs = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix} | ||||
| BuildRequires: java-%{featurever}-openjdk-portable-misc = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix} | ||||
| # Zero-assembler build requirement | ||||
| %ifarch %{zero_arches} | ||||
| BuildRequires: libffi-devel | ||||
| @ -1457,8 +1473,6 @@ Provides: bundled(lcms2) = 2.12.0 | ||||
| Provides: bundled(libjpeg) = 6b | ||||
| # Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h | ||||
| Provides: bundled(libpng) = 1.6.37 | ||||
| # We link statically against libstdc++ to increase portability | ||||
| BuildRequires: libstdc++-static | ||||
| %endif | ||||
| 
 | ||||
| # this is always built, also during debug-only build | ||||
| @ -1903,248 +1917,79 @@ done | ||||
| sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg | ||||
| 
 | ||||
| %build | ||||
| # How many CPU's do we have? | ||||
| export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :) | ||||
| export NUM_PROC=${NUM_PROC:-1} | ||||
| %if 0%{?_smp_ncpus_max} | ||||
| # Honor %%_smp_ncpus_max | ||||
| [ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max} | ||||
| %endif | ||||
| 
 | ||||
| %ifarch s390x sparc64 alpha %{power64} %{aarch64} | ||||
| export ARCH_DATA_MODEL=64 | ||||
| %endif | ||||
| %ifarch alpha | ||||
| export CFLAGS="$CFLAGS -mieee" | ||||
| %endif | ||||
| 
 | ||||
| # We use ourcppflags because the OpenJDK build seems to | ||||
| # pass EXTRA_CFLAGS to the HotSpot C++ compiler... | ||||
| # Explicitly set the C++ standard as the default has changed on GCC >= 6 | ||||
| EXTRA_CFLAGS="%ourcppflags" | ||||
| EXTRA_CPP_FLAGS="%ourcppflags" | ||||
| 
 | ||||
| %ifarch %{power64} ppc | ||||
| # fix rpmlint warnings | ||||
| EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing" | ||||
| %endif | ||||
| %ifarch %{ix86} | ||||
| # Align stack boundary on x86_32 | ||||
| EXTRA_CFLAGS="$(echo ${EXTRA_CFLAGS} | sed -e 's|-mstackrealign|-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4|')" | ||||
| EXTRA_CPP_FLAGS="$(echo ${EXTRA_CPP_FLAGS} | sed -e 's|-mstackrealign|-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4|')" | ||||
| %endif | ||||
| export EXTRA_CFLAGS EXTRA_CPP_FLAGS | ||||
| 
 | ||||
| function buildjdk() { | ||||
|     local outputdir=${1} | ||||
|     local buildjdk=${2} | ||||
|     local maketargets="${3}" | ||||
|     local debuglevel=${4} | ||||
|     local link_opt=${5} | ||||
| 
 | ||||
|     local top_dir_abs_src_path=$(pwd)/%{top_level_dir_name} | ||||
|     local top_dir_abs_build_path=$(pwd)/${outputdir} | ||||
| 
 | ||||
|     # This must be set using the global, so that the | ||||
|     # static libraries still use a dynamic stdc++lib | ||||
|     if [ "x%{link_type}" = "xbundled" ] ; then | ||||
|         libc_link_opt="static"; | ||||
|     else | ||||
|         libc_link_opt="dynamic"; | ||||
|     fi | ||||
| 
 | ||||
|     echo "Using output directory: ${outputdir}"; | ||||
|     echo "Checking build JDK ${buildjdk} is operational..." | ||||
|     ${buildjdk}/bin/java -version | ||||
|     echo "Using make targets: ${maketargets}" | ||||
|     echo "Using debuglevel: ${debuglevel}" | ||||
|     echo "Using link_opt: ${link_opt}" | ||||
|     echo "Building %{newjavaver}-%{buildver}, pre=%{ea_designator}, opt=%{lts_designator}" | ||||
| 
 | ||||
|     mkdir -p ${outputdir} | ||||
|     pushd ${outputdir} | ||||
| 
 | ||||
|     # Note: zlib and freetype use %{link_type} | ||||
|     # rather than ${link_opt} as the system versions | ||||
|     # are always used in a system_libs build, even | ||||
|     # for the static library build | ||||
|     bash ${top_dir_abs_src_path}/configure \ | ||||
| %ifarch %{zero_arches} | ||||
|     --with-jvm-variants=zero \ | ||||
| %endif | ||||
| %ifarch %{ppc64le} | ||||
|     --with-jobs=1 \ | ||||
| %endif | ||||
|     --with-version-build=%{buildver} \ | ||||
|     --with-version-pre="%{ea_designator}" \ | ||||
|     --with-version-opt=%{lts_designator} \ | ||||
|     --with-vendor-version-string="%{oj_vendor_version}" \ | ||||
|     --with-vendor-name="%{oj_vendor}" \ | ||||
|     --with-vendor-url="%{oj_vendor_url}" \ | ||||
|     --with-vendor-bug-url="%{oj_vendor_bug_url}" \ | ||||
|     --with-vendor-vm-bug-url="%{oj_vendor_bug_url}" \ | ||||
|     --with-boot-jdk=${buildjdk} \ | ||||
|     --with-debug-level=${debuglevel} \ | ||||
|     --with-native-debug-symbols="%{debug_symbols}" \ | ||||
|     --disable-sysconf-nss \ | ||||
|     --enable-unlimited-crypto \ | ||||
|     --with-zlib=%{link_type} \ | ||||
|     --with-freetype=%{link_type} \ | ||||
|     --with-libjpeg=${link_opt} \ | ||||
|     --with-giflib=${link_opt} \ | ||||
|     --with-libpng=${link_opt} \ | ||||
|     --with-lcms=${link_opt} \ | ||||
|     --with-harfbuzz=${link_opt} \ | ||||
|     --with-stdc++lib=${libc_link_opt} \ | ||||
|     --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \ | ||||
|     --with-extra-cflags="$EXTRA_CFLAGS" \ | ||||
|     --with-extra-ldflags="%{ourldflags}" \ | ||||
|     --with-num-cores="$NUM_PROC" \ | ||||
|     --with-source-date="${SOURCE_DATE_EPOCH}" \ | ||||
|     --disable-javac-server \ | ||||
| %ifarch %{zgc_arches} | ||||
|     --with-jvm-features=zgc \ | ||||
| %endif | ||||
|     --disable-warnings-as-errors | ||||
| 
 | ||||
|     cat spec.gmk | ||||
| 
 | ||||
|     make \ | ||||
|       LOG=trace \ | ||||
|       WARNINGS_ARE_ERRORS="-Wno-error" \ | ||||
|       CFLAGS_WARNINGS_ARE_ERRORS="-Wno-error" \ | ||||
|       $maketargets || ( pwd; find ${top_dir_abs_src_path} ${top_dir_abs_build_path} -name "hs_err_pid*.log" | xargs cat && false ) | ||||
| 
 | ||||
|     popd | ||||
| } | ||||
| 
 | ||||
| function installjdk() { | ||||
| function customisejdk() { | ||||
|     local imagepath=${1} | ||||
| 
 | ||||
|     if [ -d ${imagepath} ] ; then | ||||
| 	# the build (erroneously) removes read permissions from some jars | ||||
| 	# this is a regression in OpenJDK 7 (our compiler): | ||||
| 	# http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437 | ||||
| 	find ${imagepath} -iname '*.jar' -exec chmod ugo+r {} \; | ||||
|         # Turn on system security properties | ||||
|         sed -i -e "s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:" \ | ||||
|             ${imagepath}/conf/security/java.security | ||||
| 
 | ||||
| 	# Build screws up permissions on binaries | ||||
| 	# https://bugs.openjdk.java.net/browse/JDK-8173610 | ||||
| 	find ${imagepath} -iname '*.so' -exec chmod +x {} \; | ||||
| 	find ${imagepath}/bin/ -exec chmod +x {} \; | ||||
| 
 | ||||
| 	# Install nss.cfg right away as we will be using the JRE above | ||||
| 	install -m 644 nss.cfg ${imagepath}/conf/security/ | ||||
| 
 | ||||
| 	# Turn on system security properties | ||||
| 	sed -i -e "s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:" \ | ||||
| 	    ${imagepath}/conf/security/java.security | ||||
| 
 | ||||
| 	# Use system-wide tzdata | ||||
| 	rm ${imagepath}/lib/tzdb.dat | ||||
| 	ln -s %{_datadir}/javazi-1.8/tzdb.dat ${imagepath}/lib/tzdb.dat | ||||
| 
 | ||||
| 	# Create fake alt-java as a placeholder for future alt-java | ||||
| 	pushd ${imagepath} | ||||
| 	# add alt-java man page | ||||
| 	echo "Hardened java binary recommended for launching untrusted code from the Web e.g. javaws" > man/man1/%{alt_java_name}.1 | ||||
| 	cat man/man1/java.1 >> man/man1/%{alt_java_name}.1 | ||||
| 	popd | ||||
|         # Use system-wide tzdata | ||||
|         rm ${imagepath}/lib/tzdb.dat | ||||
|         ln -s %{_datadir}/javazi-1.8/tzdb.dat ${imagepath}/lib/tzdb.dat | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| %if %{build_hotspot_first} | ||||
|   # Build a fresh libjvm.so first and use it to bootstrap | ||||
|   cp -LR --preserve=mode,timestamps %{bootjdk} newboot | ||||
|   systemjdk=$(pwd)/newboot | ||||
|   buildjdk build/newboot ${systemjdk} %{hotspot_target} "release" "bundled" | ||||
|   mv build/newboot/jdk/lib/server/libjvm.so newboot/lib/server | ||||
| %else | ||||
|   systemjdk=%{bootjdk} | ||||
| %endif | ||||
| 
 | ||||
| for suffix in %{build_loop} ; do | ||||
| 
 | ||||
|   if [ "x$suffix" = "x" ] ; then | ||||
|       debugbuild=release | ||||
|   else | ||||
|       # change --something to something | ||||
|       debugbuild=`echo $suffix  | sed "s/-//g"` | ||||
|       jdkzip=%{releasezip} | ||||
|       staticlibzip=%{staticlibzip} | ||||
|   elif [ "x$suffix" = "x%{fastdebug_suffix_unquoted}" ] ; then | ||||
|       jdkzip=%{fastdebugzip} | ||||
|       staticlibzip=%{fastdebugstaticlibzip} | ||||
|   else # slowdebug | ||||
|       jdkzip=%{slowdebugzip} | ||||
|       staticlibzip=%{slowdebugstaticlibzip} | ||||
|   fi | ||||
| 
 | ||||
|   installdir=%{installoutputdir -- ${suffix}} | ||||
| 
 | ||||
|   for loop in %{main_suffix} %{staticlibs_loop} ; do | ||||
|   # TODO: should verify checksums when using packages from buildroot | ||||
|   tar -xJf ${jdkzip} | ||||
|   tar -xJf ${staticlibzip} | ||||
|   mkdir -p $(dirname ${installdir}) | ||||
|   mv java-%{featurever}-openjdk* ${installdir} | ||||
| 
 | ||||
|     builddir=%{buildoutputdir -- ${suffix}${loop}} | ||||
|     bootbuilddir=boot${builddir} | ||||
| 
 | ||||
|     if test "x${loop}" = "x%{main_suffix}" ; then | ||||
|       link_opt="%{link_type}" | ||||
| %if %{system_libs} | ||||
|       # Copy the source tree so we can remove all in-tree libraries | ||||
|       cp -a %{top_level_dir_name} %{top_level_dir_name_backup} | ||||
|       # Remove all libraries that are linked | ||||
|       sh %{SOURCE12} %{top_level_dir_name} full | ||||
| %endif | ||||
|       # Debug builds don't need same targets as release for | ||||
|       # build speed-up. We also avoid bootstrapping these | ||||
|       # slower builds. | ||||
|       if echo $debugbuild | grep -q "debug" ; then | ||||
|         maketargets="%{debug_targets}" | ||||
|         run_bootstrap=false | ||||
|       else | ||||
|         maketargets="%{release_targets}" | ||||
|         run_bootstrap=%{bootstrap_build} | ||||
|   # Fix build paths in ELF files so it looks like we built them | ||||
|   portablenvr="%{name}-%{VERSION}-%{portablerelease}.%{portablesuffix}.%{_arch}" | ||||
|   for file in $(find ${installdir} -type f) ; do | ||||
|       if file ${file} | grep -q 'ELF'; then | ||||
| 	  %{debugedit} -b %{portablebuilddir}/${portablenvr} -d $(pwd) -n ${file} | ||||
|       fi | ||||
|       if ${run_bootstrap} ; then | ||||
|         buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} ${link_opt} | ||||
|         buildjdk ${builddir} $(pwd)/${bootbuilddir}/images/%{jdkimage} "${maketargets}" ${debugbuild} ${link_opt} | ||||
|         rm -rf ${bootbuilddir} | ||||
|       else | ||||
|         buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt} | ||||
|       fi | ||||
| %if %{system_libs} | ||||
|       # Restore original source tree we modified by removing full in-tree sources | ||||
|       rm -rf %{top_level_dir_name} | ||||
|       mv %{top_level_dir_name_backup} %{top_level_dir_name} | ||||
| %endif | ||||
|     else | ||||
|       # Use bundled libraries for building statically | ||||
|       link_opt="bundled" | ||||
|       # Static library cycle only builds the static libraries | ||||
|       maketargets="%{static_libs_target}" | ||||
|       # Always just do the one build for the static libraries | ||||
|       buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt} | ||||
|     fi | ||||
| 
 | ||||
|   done # end of main / staticlibs loop | ||||
|   done | ||||
| 
 | ||||
|   # Final setup on the main image | ||||
|   top_dir_abs_main_build_path=$(pwd)/%{buildoutputdir -- ${suffix}%{main_suffix}} | ||||
|   installjdk ${top_dir_abs_main_build_path}/images/%{jdkimage} | ||||
|   customisejdk ${installdir} | ||||
| 
 | ||||
|   # Print release information | ||||
|   cat ${top_dir_abs_main_build_path}/images/%{jdkimage}/release | ||||
|   cat ${installdir}/release | ||||
| 
 | ||||
| # build cycles | ||||
| done # end of release / debug cycle loop | ||||
| 
 | ||||
| docdir=%{installoutputdir -- "-docs"} | ||||
| tar -xJf %{docszip} | ||||
| mv java-%{featurever}-openjdk*.docs.* ${docdir} | ||||
| 
 | ||||
| miscdir=%{installoutputdir -- "-misc"} | ||||
| tar -xJf %{misczip} | ||||
| mv java-%{featurever}-openjdk*.misc.* ${miscdir} | ||||
| 
 | ||||
| %check | ||||
| 
 | ||||
| # We test debug first as it will give better diagnostics on a crash | ||||
| for suffix in %{build_loop} ; do | ||||
| 
 | ||||
| top_dir_abs_main_build_path=$(pwd)/%{buildoutputdir -- ${suffix}%{main_suffix}} | ||||
| %if %{include_staticlibs} | ||||
| top_dir_abs_staticlibs_build_path=$(pwd)/%{buildoutputdir -- ${suffix}%{staticlibs_loop}} | ||||
| %endif | ||||
| 
 | ||||
| export JAVA_HOME=${top_dir_abs_main_build_path}/images/%{jdkimage} | ||||
| export JAVA_HOME=$(pwd)/%{installoutputdir -- ${suffix}} | ||||
| 
 | ||||
| # Pre-test setup | ||||
| 
 | ||||
| #check Shenandoah is enabled | ||||
| # Check Shenandoah is enabled | ||||
| %if %{use_shenandoah_hotspot} | ||||
| $JAVA_HOME//bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -version | ||||
| $JAVA_HOME/bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -version | ||||
| %endif | ||||
| 
 | ||||
| # Check unlimited policy has been used | ||||
| @ -2185,9 +2030,9 @@ $JAVA_HOME/bin/java -Djava.locale.providers=CLDR $(echo $(basename %{SOURCE18})| | ||||
| 
 | ||||
| %if %{include_staticlibs} | ||||
| # Check debug symbols in static libraries (smoke test) | ||||
| export STATIC_LIBS_HOME=${top_dir_abs_staticlibs_build_path}/images/%{static_libs_image} | ||||
| readelf --debug-dump $STATIC_LIBS_HOME/lib/libfdlibm.a | grep w_remainder.c | ||||
| readelf --debug-dump $STATIC_LIBS_HOME/lib/libfdlibm.a | grep e_remainder.c | ||||
| export STATIC_LIBS_HOME=${JAVA_HOME}/lib/static/linux-%{archinstall}/glibc | ||||
| readelf --debug-dump $STATIC_LIBS_HOME/libfdlibm.a | grep w_remainder.c | ||||
| readelf --debug-dump $STATIC_LIBS_HOME/libfdlibm.a | grep e_remainder.c | ||||
| %endif | ||||
| 
 | ||||
| so_suffix="so" | ||||
| @ -2278,11 +2123,16 @@ STRIP_KEEP_SYMTAB=libjvm* | ||||
| 
 | ||||
| for suffix in %{build_loop} ; do | ||||
| 
 | ||||
| top_dir_abs_main_build_path=$(pwd)/%{buildoutputdir -- ${suffix}%{main_suffix}} | ||||
| %if %{include_staticlibs} | ||||
| top_dir_abs_staticlibs_build_path=$(pwd)/%{buildoutputdir -- ${suffix}%{staticlibs_loop}} | ||||
| %endif | ||||
| jdk_image=${top_dir_abs_main_build_path}/images/%{jdkimage} | ||||
| jdk_image=$(pwd)/%{installoutputdir -- ${suffix}} | ||||
| # Should match same definitions in build section | ||||
| docdir=$(pwd)/%{installoutputdir -- "-docs"} | ||||
| miscdir=%{installoutputdir -- "-misc"} | ||||
| 
 | ||||
| # Install release notes and rebuild instructions | ||||
| commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix} | ||||
| install -d -m 755 ${commondocdir} | ||||
| mv ${jdk_image}/NEWS ${commondocdir} | ||||
| cp -a %{SOURCE19} %{SOURCE20} ${commondocdir} | ||||
| 
 | ||||
| # Install the jdk | ||||
| mkdir -p $RPM_BUILD_ROOT%{_jvmdir} | ||||
| @ -2331,35 +2181,26 @@ pushd ${jdk_image} | ||||
|   rm -rf $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/man | ||||
| 
 | ||||
| popd | ||||
| # Install static libs artefacts | ||||
| %if %{include_staticlibs} | ||||
| mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/lib/static/linux-%{archinstall}/glibc | ||||
| cp -a ${top_dir_abs_staticlibs_build_path}/images/%{static_libs_image}/lib/*.a \ | ||||
|   $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/lib/static/linux-%{archinstall}/glibc | ||||
| %endif | ||||
| 
 | ||||
| if ! echo $suffix | grep -q "debug" ; then | ||||
|   # Install Javadoc documentation | ||||
|   install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir} | ||||
|   cp -a ${top_dir_abs_main_build_path}/images/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix} | ||||
|   built_doc_archive=jdk-%{filever}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip | ||||
|   cp -a ${top_dir_abs_main_build_path}/bundles/${built_doc_archive} \ | ||||
|      $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip || ls -l ${top_dir_abs_main_build_path}/bundles/ | ||||
|     # Install Javadoc documentation | ||||
|     install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir} | ||||
|     cp -a ${docdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix} | ||||
|     built_doc_archive=jdk-%{filever}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip | ||||
|     cp -a ${docdir}/${built_doc_archive} \ | ||||
|         $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip || ls -l ${top_dir_abs_main_build_path}/bundles/ | ||||
|     touch $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip | ||||
| fi | ||||
| 
 | ||||
| # Install release notes | ||||
| commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix} | ||||
| install -d -m 755 ${commondocdir} | ||||
| cp -a %{SOURCE10} ${commondocdir} | ||||
| 
 | ||||
| # Install icons and menu entries | ||||
| for s in 16 24 32 48 ; do | ||||
|   install -D -p -m 644 \ | ||||
|     %{top_level_dir_name}/src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png \ | ||||
|     ${miscdir}/java-icon${s}.png \ | ||||
|     $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png | ||||
| done | ||||
| 
 | ||||
| # Install desktop files | ||||
| # TODO: provide desktop files via portable | ||||
| install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps} | ||||
| for e in jconsole$suffix ; do | ||||
|     desktop-file-install --vendor=%{uniquesuffix -- $suffix} --mode=644 \ | ||||
| @ -2371,8 +2212,7 @@ done | ||||
| mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs | ||||
| 
 | ||||
| # copy samples next to demos; samples are mostly js files | ||||
| cp -r %{top_level_dir_name}/src/sample  $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ | ||||
| 
 | ||||
| cp -r ${miscdir}/sample  $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ | ||||
| 
 | ||||
| # moving config files to /etc | ||||
| mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix} | ||||
| @ -2639,7 +2479,11 @@ cjc.mainProgram(args) | ||||
| %endif | ||||
| 
 | ||||
| %changelog | ||||
| * Thu Apr 13 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-1 | ||||
| * Wed Apr 26 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-3 | ||||
| - Sync portable spec file with current version | ||||
| - Related: rhbz#2189326 | ||||
| 
 | ||||
| * Wed Apr 26 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-2 | ||||
| - Update to jdk-17.0.7.0+7 | ||||
| - Update release notes to 17.0.7.0+7 | ||||
| - Require tzdata 2023c due to local inclusion of JDK-8274864 & JDK-8305113 | ||||
| @ -2651,41 +2495,50 @@ cjc.mainProgram(args) | ||||
| - * 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 | ||||
| - Fix trailing '.' in tarball name | ||||
| - Use portablerelease in vendor version to avoid inclusion of dist tag | ||||
| - ** This tarball is embargoed until 2023-04-18 @ 1pm PT. ** | ||||
| - Resolves: rhbz#2185182 | ||||
| - Resolves: rhbz#2186804 | ||||
| - Resolves: rhbz#2186811 | ||||
| - Resolves: rhbz#2186807 | ||||
| - Resolves: rhbz#2186803 | ||||
| - Resolves: rhbz#2186810 | ||||
| - Resolves: rhbz#2186806 | ||||
| 
 | ||||
| * Sat Jan 14 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.10-3 | ||||
| - Add missing release note for JDK-8295687 | ||||
| - Resolves: rhbz#2160111 | ||||
| * Wed Apr 26 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.10-6 | ||||
| - Include the java-17-openjdk-portable.spec file with instructions on how to rebuild. | ||||
| - Related: rhbz#2189326 | ||||
| 
 | ||||
| * Fri Jan 13 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.10-3 | ||||
| - Update FIPS support to bring in latest changes | ||||
| - * OJ1357: Fix issue on FIPS with a SecurityManager in place | ||||
| - Related: rhbz#2147476 | ||||
| * Tue Apr 25 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.10-5 | ||||
| - Replace local copies of JDK portable binaries with build dependencies | ||||
| - Resolves: rhbz#2189326 | ||||
| 
 | ||||
| * Fri Jan 13 2023 Stephan Bergmann <sbergman@redhat.com> - 1:17.0.6.0.10-3 | ||||
| - Fix flatpak builds by disabling TestTranslations test due to missing tzdb.dat | ||||
| - Related: rhbz#2160111 | ||||
| * Wed Feb 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.10-4 | ||||
| - Replace build section with extraction of existing builds from portables | ||||
| - Resolves: rhbz#2150200 | ||||
| 
 | ||||
| * Wed Jan 11 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.10-2 | ||||
| * Fri Jan 20 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.10-3 | ||||
| - Update to jdk-17.0.6.0+10 | ||||
| - Update release notes to 17.0.6.0+10 | ||||
| - Switch to GA mode for release | ||||
| - ** This tarball is embargoed until 2023-01-17 @ 1pm PT. ** | ||||
| - Related: rhbz#2153097 | ||||
| - Resolves: rhbz#2160111 | ||||
| 
 | ||||
| * Wed Jan 04 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.9-0.2.ea | ||||
| * Fri Jan 13 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.9-0.4.ea | ||||
| - Update FIPS support to bring in latest changes | ||||
| - * OJ1357: Fix issue on FIPS with a SecurityManager in place | ||||
| - Related: rhbz#2150198 | ||||
| 
 | ||||
| * Fri Jan 13 2023 Stephan Bergmann <sbergman@redhat.com> - 1:17.0.6.0.9-0.4.ea | ||||
| - Fix flatpak builds by disabling TestTranslations test due to missing tzdb.dat | ||||
| - Related: rhbz#2150198 | ||||
| 
 | ||||
| * Wed Jan 04 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.9-0.3.ea | ||||
| - Update to jdk-17.0.6+9 | ||||
| - Update release notes to 17.0.6+9 | ||||
| - Drop local copy of JDK-8293834 now this is upstream | ||||
| - Require tzdata 2022g due to inclusion of JDK-8296108, JDK-8296715 & JDK-8297804 | ||||
| - Update TestTranslations.java to test the new America/Ciudad_Juarez zone | ||||
| - Resolves: rhbz#2153097 | ||||
| - Resolves: rhbz#2150198 | ||||
| 
 | ||||
| * Sat Dec 03 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.1-0.2.ea | ||||
| * Sat Dec 03 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.1-0.3.ea | ||||
| - Update to jdk-17.0.6+1 | ||||
| - Update release notes to 17.0.6+1 | ||||
| - Switch to EA mode for 17.0.6 pre-release builds. | ||||
| @ -2693,30 +2546,41 @@ cjc.mainProgram(args) | ||||
| - Drop JDK-8294357 (tzdata2022d) & JDK-8295173 (tzdata2022e) local patches which are now upstream | ||||
| - Drop JDK-8275535 local patch now this has been accepted and backported upstream | ||||
| - Bump tzdata requirement to 2022e now the package is available in RHEL | ||||
| - Related: rhbz#2153097 | ||||
| - Related: rhbz#2150198 | ||||
| 
 | ||||
| * Wed Nov 23 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.5.0.8-4 | ||||
| * Wed Nov 23 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.5.0.8-5 | ||||
| - Update FIPS support to bring in latest changes | ||||
| - * 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 | ||||
| - Drop local nss.fips.cfg.in handling now this is handled in the patched OpenJDK build | ||||
| - Resolves: rhbz#2147476 | ||||
| - Resolves: rhbz#2118493 | ||||
| 
 | ||||
| * Wed Oct 26 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.5.0.8-1 | ||||
| * Wed Oct 26 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.5.0.8-2 | ||||
| - Update to jdk-17.0.5+8 (GA) | ||||
| - Update release notes to 17.0.5+8 (GA) | ||||
| - Bump HarfBuzz bundled version to 4.4.1 following JDK-8289853 | ||||
| - Bump FreeType bundled version to 2.12.1 following JDK-8290334 | ||||
| - Switch to GA mode for final release. | ||||
| - Update in-tree tzdata to 2022e with JDK-8294357 & JDK-8295173 | ||||
| - Update CLDR data with Europe/Kyiv (JDK-8293834) | ||||
| - Drop JDK-8292223 patch which we found to be unnecessary | ||||
| - Update TestTranslations.java to use public API based on TimeZoneNamesTest upstream | ||||
| - The stdc++lib, zlib & freetype options should always be set from the global, so they are not altered for staticlibs builds | ||||
| - Remove freetype sources along with zlib sources | ||||
| - Resolves: rhbz#2132933 | ||||
| - Resolves: rhbz#2133695 | ||||
| 
 | ||||
| * Tue Oct 04 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.5.0.7-0.2.ea | ||||
| - Update to jdk-17.0.5+7 | ||||
| - Update release notes to 17.0.5+7 | ||||
| - Resolves: rhbz#2130622 | ||||
| 
 | ||||
| * Mon Oct 03 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.5.0.1-0.2.ea | ||||
| - Update to jdk-17.0.5+1 | ||||
| - Update release notes to 17.0.5+1 | ||||
| - Switch to EA mode for 17.0.5 pre-release builds. | ||||
| - Bump HarfBuzz bundled version to 4.4.1 following JDK-8289853 | ||||
| - Bump FreeType bundled version to 2.12.1 following JDK-8290334 | ||||
| - Related: rhbz#2130622 | ||||
| 
 | ||||
| * Tue Aug 30 2022 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.4.1.1-5 | ||||
| - Switch to static builds, reducing system dependencies and making build more portable | ||||
| - Resolves: rhbz#2121268 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user