From 03d7c2861517b39887d4835a4e1f6cc912d0cc1d Mon Sep 17 00:00:00 2001 From: Andrew Hughes Date: Fri, 17 Jan 2025 13:53:45 +0000 Subject: [PATCH] Add bundled libffi.so to _privatelibs - Remove libffi.so copying workaround now the portable build installs it in lib - Remove libffi.so copy if we are building on the same platform as the portable Related: RHEL-74304 --- java-1.8.0-openjdk.spec | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index dfed73d..b5d0486 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -349,7 +349,8 @@ %global rpmrelease 2 # Settings used by the portable build %global portablerelease 1 -%global portablesuffix el8 +%global portablerhel 8 +%global portablesuffix el%{portablerhel} %global portablebuilddir /builddir/build/BUILD # Define milestone (EA for pre-releases, GA ("fcs") for releases) @@ -393,7 +394,7 @@ # as to why some libraries *cannot* be excluded. In particular, # these are: # libjsig.so, libjava.so, libjawt.so, libjvm.so and libverify.so -%global _privatelibs libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*%{jpeg_lib}|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libsystemconf[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.* +%global _privatelibs libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libffi[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*%{jpeg_lib}|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libsystemconf[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.* %global __provides_exclude ^(%{_privatelibs})$ %global __requires_exclude ^(%{_privatelibs})$ @@ -894,8 +895,10 @@ exit 0 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt_headless.so %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so %ifarch %{zero_arches} +%if 0%{?rhel} != %{portablerhel} %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libffi.so.* %endif +%endif %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libinstrument.so @@ -1039,8 +1042,10 @@ exit 0 %dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall} %dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/jli %ifarch %{zero_arches} +%if 0%{?rhel} != %{portablerhel} %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/libffi.so.* %endif +%endif %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/libjawt.so %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/jli/libjli.so %{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym @@ -2067,8 +2072,10 @@ for suffix in %{build_loop} ; do tar -xJf ${jdkzip} mv %{name}* ${installdir} %ifarch %{zero_arches} - # FIXME: Workaround libffi only being in jre/lib not lib - cp -av ${installdir}/jre/lib/%{archinstall}/libffi.* ${installdir}/lib/%{archinstall} + # We do not need the local copy of libffi.so if we are building on the same platform as the portable +%if 0%{?rhel} == %{portablerhel} + rm -vf ${installdir}/{,jre/}lib/%{archinstall}/libffi.* +%endif %endif # Fix build paths in ELF files so it looks like we built them portablenvr="%{name}-portable-%{pversion}-%{prelease}.%{portablesuffix}.%{_arch}" @@ -2714,6 +2721,9 @@ cjc.mainProgram(args) - Switch to GA mode for final release - Revise JDK-8141590 backport to install libffi.so* in lib as well as jre/lib - Sync the copy of the portable specfile with the latest update +- Remove libffi.so copying workaround now the portable build installs it in lib +- Add bundled libffi.so to _privatelibs +- Remove libffi.so copy if we are building on the same platform as the portable - Resolves: RHEL-73540 - Related: RHEL-74304