Create a copy of java as alt-java with alternatives and man pages

- java-11-openjdk doesn't have a JRE tree, so don't try and copy alt-java there...
This commit is contained in:
Jiri 2020-11-23 23:16:42 +01:00 committed by Petra Mikova
parent 2bee3e2f1a
commit 5b6ac33d17
1 changed files with 24 additions and 4 deletions

View File

@ -63,8 +63,8 @@
# the ghosts are here to allow installation via query like `dnf install /usr/bin/java`
# you can list those files, with appropriate sections: cat *.spec | grep -e --install -e --slave -e post_
# TODO - fix those hardcoded lists via single list
# those files ,must *NOT* be ghosted for *slowdebug* packages
# FIXME - if you are moving jshell or jlink or simialr, always modify all three sections
# Those files must *NOT* be ghosted for *slowdebug* packages
# FIXME - if you are moving jshell or jlink or similar, always modify all three sections
# you can check via headless and devels:
# rpm -ql --noghost java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin
# == rpm -ql java-11-openjdk-headless-slowdebug-11.0.1.13-8.fc29.x86_64.rpm | grep bin
@ -240,7 +240,7 @@
%global top_level_dir_name %{origin}
%global minorver 0
%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
%if %is_system_jdk
%global priority %( printf '%02d%02d%02d%02d' %{majorver} %{minorver} %{securityver} %{buildver} )
@ -321,6 +321,8 @@
%global sdkbindir() %{expand:%{_jvmdir}/%{sdkdir %%1}/bin}
%global jrebindir() %{expand:%{_jvmdir}/%{sdkdir %%1}/bin}
%global alt_java_name alt-java
%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
%if %{with_systemtap}
@ -366,11 +368,14 @@ ext=.gz
alternatives \\
--install %{_bindir}/java java %{jrebindir %%1}/java $PRIORITY --family %{name}.%{_arch} \\
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{sdkdir %%1} \\
--slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir %%1}/%{alt_java_name} \\
--slave %{_bindir}/keytool keytool %{jrebindir %%1}/keytool \\
--slave %{_bindir}/rmid rmid %{jrebindir %%1}/rmid \\
--slave %{_bindir}/rmiregistry rmiregistry %{jrebindir %%1}/rmiregistry \\
--slave %{_mandir}/man1/java.1$ext java.1$ext \\
%{_mandir}/man1/java-%{uniquesuffix %%1}.1$ext \\
--slave %{_mandir}/man1/%{alt_java_name}.1$ext %{alt_java_name}.1$ext \\
%{_mandir}/man1/%{alt_java_name}-%{uniquesuffix %%1}.1$ext \\
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
%{_mandir}/man1/keytool-%{uniquesuffix %%1}.1$ext \\
--slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\
@ -584,6 +589,7 @@ exit 0
%{_jvmdir}/%{jrelnk %%1}
%dir %{_jvmdir}/%{sdkdir %%1}/bin
%{_jvmdir}/%{sdkdir %%1}/bin/java
%{_jvmdir}/%{sdkdir %%1}/bin/%{alt_java_name}
%{_jvmdir}/%{sdkdir %%1}/bin/keytool
%{_jvmdir}/%{sdkdir %%1}/bin/rmid
%{_jvmdir}/%{sdkdir %%1}/bin/rmiregistry
@ -640,6 +646,7 @@ exit 0
%{_jvmdir}/%{sdkdir %%1}/lib/jfr/default.jfc
%{_jvmdir}/%{sdkdir %%1}/lib/jfr/profile.jfc
%{_mandir}/man1/java-%{uniquesuffix %%1}.1*
%{_mandir}/man1/%{alt_java_name}-%{uniquesuffix %%1}.1*
%{_mandir}/man1/keytool-%{uniquesuffix %%1}.1*
%{_mandir}/man1/rmid-%{uniquesuffix %%1}.1*
%{_mandir}/man1/rmiregistry-%{uniquesuffix %%1}.1*
@ -683,6 +690,7 @@ exit 0
%if %is_system_jdk
%if %{is_release_build %%1}
%ghost %{_bindir}/java
%ghost %{_bindir}/%{alt_java_name}
%ghost %{_jvmdir}/jre
%ghost %{_bindir}/keytool
%ghost %{_bindir}/pack200
@ -775,6 +783,7 @@ exit 0
%if %{is_release_build %%1}
%ghost %{_bindir}/javac
%ghost %{_jvmdir}/java
%ghost %{_jvmdir}/%{alt_java_name}
%ghost %{_bindir}/jaotc
%ghost %{_bindir}/jlink
%ghost %{_bindir}/jmod
@ -1603,6 +1612,14 @@ install -m 644 nss.cfg $JAVA_HOME/conf/security/
rm $JAVA_HOME/lib/tzdb.dat
ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/lib/tzdb.dat
# Create fake alt-java as a placeholder for future alt-java
pushd ${JAVA_HOME}
cp -a bin/java bin/%{alt_java_name}
# 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
# build cycles
done
@ -1754,7 +1771,6 @@ pushd %{buildoutputdir $suffix}/images/%{jdkimage}
ln -sf %{sdkdir $suffix} %{jrelnk $suffix}
popd
# Install man pages
install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
for manpage in man/man1/*
@ -2040,6 +2056,10 @@ require "copy_jdk_configs.lua"
%endif
%changelog
* Mon Nov 23 2020 Jiri Vanek <jvanek@redhat.com> - 1:15.0.1.9-2.rolling
- Create a copy of java as alt-java with alternatives and man pages
- java-11-openjdk doesn't have a JRE tree, so don't try and copy alt-java there...
* Sun Oct 25 2020 Petra Alice Mikova <pmikova@redhat.com> - 1:15.0.1.9-1.rolling
- updated to October CPU 2020 sources