proeprly filing debugsources pkg

by addedd symlinks restructuring the structure for original build sources
according to logs, some are still missing
probably generated during the build, and thus not existing in prep,
when the sources subpkg is created after patching
This commit is contained in:
Jiri 2023-12-09 11:52:37 +01:00
parent 1d52ad9ee3
commit 9fc91f31a5

View File

@ -196,6 +196,9 @@
%global vm_variant server %global vm_variant server
%endif %endif
# debugedit tool for rewriting ELF file paths
%global debugedit %( if [ -f "%{_rpmconfigdir}/debugedit" ]; then echo "%{_rpmconfigdir}/debugedit" ; else echo "/usr/bin/debugedit"; fi )
# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path # With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
# the initialization must be here. Later the pkg-config have buggy behavior # the initialization must be here. Later the pkg-config have buggy behavior
# looks like openjdk RPM specific bug # looks like openjdk RPM specific bug
@ -273,6 +276,7 @@
%global interimver 0 %global interimver 0
%global updatever 21 %global updatever 21
%global patchver 0 %global patchver 0
# We don't add any LTS designator for STS packages (Fedora and EPEL). # We don't add any LTS designator for STS packages (Fedora and EPEL).
# We need to explicitly exclude EPEL as it would have the %%{rhel} macro defined. # We need to explicitly exclude EPEL as it would have the %%{rhel} macro defined.
%if 0%{?rhel} && !0%{?epel} %if 0%{?rhel} && !0%{?epel}
@ -317,10 +321,10 @@
# Standard JPackage naming and versioning defines # Standard JPackage naming and versioning defines
%global origin openjdk %global origin openjdk
%global origin_nice OpenJDK %global origin_nice OpenJDK
%global top_level_dir_name %{origin} %global top_level_dir_name %{vcstag}
%global top_level_dir_name_backup %{top_level_dir_name}-backup %global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 9 %global buildver 9
%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
@ -1702,6 +1706,8 @@ if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 -a %{includ
echo "You have disabled all builds (normal,fastdebug,slowdebug). That is a no go." echo "You have disabled all builds (normal,fastdebug,slowdebug). That is a no go."
exit 14 exit 14
fi fi
%setup -q -c -n %{uniquesuffix ""} -T
# https://bugzilla.redhat.com/show_bug.cgi?id=1189084 # https://bugzilla.redhat.com/show_bug.cgi?id=1189084
prioritylength=`expr length %{priority}` prioritylength=`expr length %{priority}`
if [ $prioritylength -ne 8 ] ; then if [ $prioritylength -ne 8 ] ; then
@ -1779,6 +1785,29 @@ done
done done
%build %build
# we need to symlink sources to expected lcoation, so debuginfo strip can locate debugsources
src_image=`ls -d %{compatiblename}*%{version}*portable.sources.noarch`
ln -s $src_image/%{vcstag} %{vcstag} # this one shpuld be enoug
# cpio is complaining baout several files from build dir. Attempt here, but seems not to be correct
# as those sources are generated during build and so it have to be fixed in portables first
mkdir build
pushd build
ln -s ../$src_image/%{vcstag}/src jdk%{featurever}.build
ln -s ../$src_image/%{vcstag}/src jdk%{featurever}.build-fastdebug
ln -s ../$src_image/%{vcstag}/src jdk%{featurever}.build-slowdebug
popd
doc_image=`ls -d %{compatiblename}*%{version}*portable.docs.%{_arch}`
# in addition the builddir must match the builddir of the portables, including release
# be aware, even os may be different, especially with buildonce, repack everywhere
# so deducting it from installed deps
portablenvr=`ls -d %{compatiblename}*%{version}*portable*.misc.%{_arch} | sed "s/portable.*.misc.//"`
portablebuilddir=/builddir/build/BUILD
# Fix build paths in ELF files so it looks like we built them
for file in $(find `pwd` -type f | grep -v -e "$src_image" -e "$doc_image") ; do
if file ${file} | grep -q 'ELF'; then
%{debugedit} -b "${portablebuilddir}/${portablenvr}" -d "$(pwd)" -n "${file}"
fi
done
%install %install
function installjdk() { function installjdk() {
@ -1963,7 +1992,7 @@ pushd ${jdk_image}
# Install systemtap support files # Install systemtap support files
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset
# note, that uniquesuffix is in BUILD dir in this case # note, that uniquesuffix is in BUILD dir in this case
cp -a $RPM_BUILD_DIR/tapset$suffix/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/ cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
tapsetFiles=`ls *.stp` tapsetFiles=`ls *.stp`
popd popd
@ -2088,9 +2117,9 @@ if ! nm $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi
# Check alt-java launcher has SSB mitigation on supported architectures # Check alt-java launcher has SSB mitigation on supported architectures
# set_speculation function exists in both cases, so check for prctl call # set_speculation function exists in both cases, so check for prctl call
%ifarch %{ssbd_arches} %ifarch %{ssbd_arches}
nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation nm $JAVA_HOME/bin/%{alt_java_name} | grep prctl
%else %else
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 prctl ; then true ; else false; fi
%endif %endif
# Check correct vendor values have been set # Check correct vendor values have been set
@ -2107,8 +2136,8 @@ $JAVA_HOME/bin/java -Djava.locale.providers=CLDR $(echo $(basename %{SOURCE18})|
%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}
readelf --debug-dump $STATIC_LIBS_HOME/libfdlibm.a | grep w_remainder.c readelf --debug-dump $STATIC_LIBS_HOME/libnet.a | grep Inet4AddressImpl.c
readelf --debug-dump $STATIC_LIBS_HOME/libfdlibm.a | grep e_remainder.c readelf --debug-dump $STATIC_LIBS_HOME/libnet.a | grep Inet6AddressImpl.c
%endif %endif
# Check src.zip has all sources. See RHBZ#1130490 # Check src.zip has all sources. See RHBZ#1130490
@ -2393,6 +2422,13 @@ end
%endif %endif
%changelog %changelog
* Sat Dec 09 2023 Jiri Vanek <jvanek@redhat.com> - 1:11.0.21.0.9-2
- proeprly filing debugsources pkg
by addedd symlinks restructuring the structure for original build sources
- according to logs, some are still missing
probably generated during the build, and thus not existing in prep,
when the sources subpkg is created after patching
* Wed Nov 22 2023 Jiri Vanek <jvanek@redhat.com> - 1:11.0.21.0.9-1 * Wed Nov 22 2023 Jiri Vanek <jvanek@redhat.com> - 1:11.0.21.0.9-1
- updated to OpenJDK 11.0.9 (2023-10-17) - updated to OpenJDK 11.0.9 (2023-10-17)