Compare commits

...

10 Commits

Author SHA1 Message Date
Jiri 9105779d37 updated to July security update 20.0.2.9 portables 2023-08-07 09:33:24 +02:00
Petra Alice Mikova e2a674daf0 Remove excessive .1 string in release 2023-08-01 13:42:20 +02:00
Fedora Release Engineering ddda966d83 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 07:53:47 +00:00
Jiri 3c123e76a3 excluding classes_nocoops.jsa on i686 and arm32 2023-05-15 15:13:34 +02:00
Jiri Vanek 7f1c24631b Following JDK-8005165, class data sharing can be enabled on all JIT architectures 2023-05-11 11:12:52 +02:00
Jiri Vanek 3f192f7986 Enable CDS on power64 2023-05-10 17:56:59 +02:00
Jiri Vanek 3a08aff87f Fix packaging of CDS archives
The JDK build includes CDS archives, classes.jsa and classes_nocoops.jsa
already since JEP 341. Executing -Xshare:dump in the headless post
script breaks AppCDS workflows using dynamic dumps since that relies
on the base CDS archive from the JDK to be unchanged.
2023-05-10 17:50:31 +02:00
Jiri af4ddd0260 lib/libjsvml.so now have fake build id only on svml arches 2023-05-05 09:36:25 +02:00
Jiri Vanek c92cdeadf2 faking build-id in libjsvml.so 2023-05-04 16:05:33 +02:00
Jiri 8e0a39897f returned news 2023-04-29 14:01:51 +02:00
1 changed files with 56 additions and 14 deletions

View File

@ -113,10 +113,9 @@
%global aot_arches x86_64 %{aarch64}
# Set of architectures which support the serviceability agent
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %{arm}
# Set of architectures which support class data sharing
# See https://bugzilla.redhat.com/show_bug.cgi?id=513605
# MetaspaceShared::generate_vtable_methods is not implemented for the PPC JIT
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{arm} s390x
# As of JDK-8005165 in OpenJDK 10, class sharing is not arch-specific
# However, it does segfault on the Zero assembler port, so currently JIT only
%global share_arches %{jit_arches}
# Set of architectures for which we build the Shenandoah garbage collector
%global shenandoah_arches x86_64 %{aarch64}
# Set of architectures for which we build the Z garbage collector
@ -279,7 +278,7 @@
# New Version-String scheme-style defines
%global featurever 20
%global interimver 0
%global updatever 1
%global updatever 2
%global patchver 0
# We don't add any LTS designator for STS packages (Fedora and EPEL).
@ -322,7 +321,7 @@
%global top_level_dir_name %{origin}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 9
%global rpmrelease 4
%global rpmrelease 1
# 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
@ -539,10 +538,6 @@ alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} $key %{_jvmdir}/%{jre
}
%define post_headless() %{expand:
%ifarch %{share_arches}
%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
%endif
update-desktop-database %{_datadir}/applications &> /dev/null || :
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@ -793,6 +788,7 @@ exit 0
%define files_jre_headless() %{expand:
%license %{_jvmdir}/%{sdkdir -- %{?1}}/legal
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS
%{_jvmdir}/%{sdkdir -- %{?1}}/NEWS
%dir %{_sysconfdir}/.java/.systemPrefs
%dir %{_sysconfdir}/.java
%dir %{_jvmdir}/%{sdkdir -- %{?1}}
@ -804,7 +800,7 @@ exit 0
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/keytool
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmiregistry
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib
%ifarch %{jit_arches}
%ifarch %{share_arches}
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/classlist
%endif
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec
@ -867,7 +863,10 @@ exit 0
%{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1*
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{vm_variant}/
%ifarch %{share_arches}
%attr(444, root, root) %ghost %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{vm_variant}/classes.jsa
%attr(444, root, root) %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{vm_variant}/classes.jsa
%ifnarch %{ix86} %{arm32}
%attr(444, root, root) %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{vm_variant}/classes_nocoops.jsa
%endif
%endif
%dir %{etcjavasubdir}
%dir %{etcjavadir -- %{?1}}
@ -1333,6 +1332,10 @@ BuildRequires: desktop-file-utils
# elfutils only are OK for build without AOT
BuildRequires: elfutils-devel
BuildRequires: gdb
# for modyfying build-id in clashing binaries
BuildRequires: /usr/bin/gcc
BuildRequires: /usr/bin/objcopy
BuildRequires: /usr/bin/readelf
# Requirement for setting up nss.cfg and nss.fips.cfg
BuildRequires: nss-devel
# Requirement for system security property test
@ -1903,6 +1906,29 @@ for suffix in %{build_loop} ; do
buildoutputdir=`ls -d %{compatiblename}*portable${debugbuild}.${jdkjre}*`
top_dir_abs_main_build_path=$(pwd)/${buildoutputdir}
installjdk ${top_dir_abs_main_build_path}
# it may happen, that some library - in original case libjsvml build identically for two jdks
# it is becasue of our ld/gcc flags - otherwise rpm build enhances each binarry by full path to it
# if it is hit then this library needs to have build-id repalced - note, that it do not affect dbugability
clashinglibs=""
%ifarch %{svml_arches}
clashinglibs="$clashinglibs lib/libjsvml.so"
%endif
for lib in $clashinglibs ; do
libjsvmlgcchackdir=`mktemp -d`
pushd $libjsvmlgcchackdir
libjsvml=${top_dir_abs_main_build_path}/$lib
ls -l $libjsvml
echo "#include <stdio.h>" > a.c
echo "int main(void) { printf(\"$libjsvml\"); }" >> a.c
gcc a.c -o exe
readelf -n exe | grep "Build ID"
readelf -n $libjsvml | grep "Build ID"
objcopy --dump-section .note.gnu.build-id=id exe
objcopy --update-section .note.gnu.build-id=id $libjsvml
readelf -n $libjsvml | grep -i "Build ID"
popd
rm -rf $libjsvmlgcchackdir
done
# Check debug symbols were built into the dynamic libraries
if [ $jdkjre == jdk ] ; then
#jdk only?
@ -2034,8 +2060,6 @@ find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod 7
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ;
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/legal -type f -exec chmod 644 {} \; ;
#TODO conslut this clean up
rm $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/NEWS #is in commondocdir. Ok ot go, or also pack
if [ "x$suffix" = "x" ] ; then
rm $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/javadocs.zip #is in subpackages, 1 renamed, 2nd unpacked
fi
@ -2365,6 +2389,24 @@ cjc.mainProgram(args)
%endif
%changelog
* Mon Aug 07 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.2.0.9-2.rolling
- updated to July security update 20.0.2.9 portables
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:20.0.1.0.9-8.rolling.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu May 11 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:20.0.1.0.9-8.rolling
- Following JDK-8005165, class data sharing can be enabled on all JIT architectures
* Wed May 10 2023 Severin Gehwolf <sgehwolf@redhat.com> - 1:20.0.1.0.9-6.rolling
- Fix packaging of CDS archives
* Fri Apr 28 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.1.0.9-6.rolling
- faking build-id in libjsvml.so
* Fri Apr 28 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.1.0.9-5.rolling
- returned news
* Fri Apr 28 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.1.0.9-4.rolling
- now expecting the exact version in portbale filename