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
This commit is contained in:
Andrew Hughes 2025-01-17 13:53:45 +00:00
parent 18975a67ae
commit 03d7c28615

View File

@ -349,7 +349,8 @@
%global rpmrelease 2 %global rpmrelease 2
# Settings used by the portable build # Settings used by the portable build
%global portablerelease 1 %global portablerelease 1
%global portablesuffix el8 %global portablerhel 8
%global portablesuffix el%{portablerhel}
%global portablebuilddir /builddir/build/BUILD %global portablebuilddir /builddir/build/BUILD
# Define milestone (EA for pre-releases, GA ("fcs") for releases) # Define milestone (EA for pre-releases, GA ("fcs") for releases)
@ -393,7 +394,7 @@
# as to why some libraries *cannot* be excluded. In particular, # as to why some libraries *cannot* be excluded. In particular,
# these are: # these are:
# libjsig.so, libjava.so, libjawt.so, libjvm.so and libverify.so # 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 __provides_exclude ^(%{_privatelibs})$
%global __requires_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}/libawt_headless.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so
%ifarch %{zero_arches} %ifarch %{zero_arches}
%if 0%{?rhel} != %{portablerhel}
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libffi.so.* %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libffi.so.*
%endif %endif
%endif
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so
%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libinstrument.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}
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/jli %dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/jli
%ifarch %{zero_arches} %ifarch %{zero_arches}
%if 0%{?rhel} != %{portablerhel}
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/libffi.so.* %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/libffi.so.*
%endif %endif
%endif
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/libjawt.so %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/libjawt.so
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/jli/libjli.so %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}/jli/libjli.so
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym %{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym
@ -2067,8 +2072,10 @@ for suffix in %{build_loop} ; do
tar -xJf ${jdkzip} tar -xJf ${jdkzip}
mv %{name}* ${installdir} mv %{name}* ${installdir}
%ifarch %{zero_arches} %ifarch %{zero_arches}
# FIXME: Workaround libffi only being in jre/lib not lib # We do not need the local copy of libffi.so if we are building on the same platform as the portable
cp -av ${installdir}/jre/lib/%{archinstall}/libffi.* ${installdir}/lib/%{archinstall} %if 0%{?rhel} == %{portablerhel}
rm -vf ${installdir}/{,jre/}lib/%{archinstall}/libffi.*
%endif
%endif %endif
# Fix build paths in ELF files so it looks like we built them # Fix build paths in ELF files so it looks like we built them
portablenvr="%{name}-portable-%{pversion}-%{prelease}.%{portablesuffix}.%{_arch}" portablenvr="%{name}-portable-%{pversion}-%{prelease}.%{portablesuffix}.%{_arch}"
@ -2714,6 +2721,9 @@ cjc.mainProgram(args)
- Switch to GA mode for final release - Switch to GA mode for final release
- Revise JDK-8141590 backport to install libffi.so* in lib as well as jre/lib - 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 - 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 - Resolves: RHEL-73540
- Related: RHEL-74304 - Related: RHEL-74304