Included first part for dual build. Right nw the package will build, In case of include_debug_build 0, but the scriplets will be wrong. Work in rpogress.

This commit is contained in:
Jiri Vanek 2014-10-30 16:24:52 +01:00
parent c02b449769
commit cc7ef6b6fd

View File

@ -1,5 +1,33 @@
# If debug is 1, OpenJDK is built with all debug info present. #note, parametrised macros are order-senisitve (unlike not-parametrized)
%global debug 0 %global debug_suffix "-debug"
%global normal_suffix ""
# by default we build normal build always.
%global include_normal_build 1
%if %{include_normal_build}
%global build_loop1 %{normal_suffix}
%else
%global build_loop1 %{nil}
%endif
# by default we build debug build during main build only on intel arches
%ifarch %{ix86} x86_64
%global include_debug_build 1
%else
%global include_debug_build 0
%endif
%if %{include_debug_build}
%global build_loop2 %{debug_suffix}
%else
%global build_loop2 %{nil}
%endif
# if you disable both builds, then build fails
%global build_loop %{build_loop1} %{build_loop2}
# note, that order normal_suffix debug_suffix, in case of both enabled,
# is expected in one single case at the end of build
%global aarch64 aarch64 arm64 armv8 %global aarch64 aarch64 arm64 armv8
# sometimes we need to distinguish big and little endian PPC64 # sometimes we need to distinguish big and little endian PPC64
@ -58,11 +86,6 @@
%global archinstall %{_arch} %global archinstall %{_arch}
%endif %endif
%if %{debug}
%global debugbuild slowdebug
%else
%global debugbuild release
%endif
%global buildoutputdir jdk8/build/jdk8.build %global buildoutputdir jdk8/build/jdk8.build
@ -90,21 +113,24 @@
%global priority 18000%{updatever} %global priority 18000%{updatever}
%global javaver 1.8.0 %global javaver 1.8.0
# Standard JPackage directories and symbolic links. # parametrized macros are order-sensitive
%global sdkdir %{uniquesuffix}
%global jrelnk jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}
%global jredir %{sdkdir}/jre
%global sdkbindir %{_jvmdir}/%{sdkdir}/bin
%global jrebindir %{_jvmdir}/%{jredir}/bin
%global jvmjardir %{_jvmjardir}/%{uniquesuffix}
%global fullversion %{name}-%{version}-%{release} %global fullversion %{name}-%{version}-%{release}
#images stub
%global uniquesuffix %{fullversion}.%{_arch} %global j2sdkimage() %{expand:j2sdk-image%1}
#main id and dir of this jdk
%global uniquesuffix() %{expand:%{fullversion}.%{_arch}%1}
#we can copy the javadoc to not arched dir, or made it not noarch #we can copy the javadoc to not arched dir, or made it not noarch
%global uniquejavadocdir %{fullversion} %global uniquejavadocdir %{fullversion}
# Standard JPackage directories and symbolic links.
%global sdkdir() %{expand:%{uniquesuffix %%1}}
%global jrelnk() %{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%1}
%global jredir() %{expand:%{sdkdir %%1}/jre}
%global sdkbindir() %{expand:%{_jvmdir}/%{sdkdir %%1}/bin}
%global jrebindir() %{expand:%{_jvmdir}/%{jredir %%1}/bin}
%global jvmjardir() %{expand:%{_jvmjardir}/%{uniquesuffix %%1}}
%if %{with_systemtap} %if %{with_systemtap}
# Where to install systemtap tapset (links) # Where to install systemtap tapset (links)
# We would like these to be in a package specific subdir, # We would like these to be in a package specific subdir,
@ -118,6 +144,127 @@
%global tapsetdir %{tapsetroot}/tapset/%{_build_cpu} %global tapsetdir %{tapsetroot}/tapset/%{_build_cpu}
%endif %endif
%global files_jre() %{expand:
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
%{_datadir}/applications/*policytool.desktop
}
%global files_jre_headless() %{expand:
%defattr(-,root,root,-)
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir}
%{_jvmdir}/%{jrelnk %%1}
%{_jvmjardir}/%{jrelnk %%1}
%{_jvmprivdir}/*
%{jvmjardir %%1}
%dir %{_jvmdir}/%{jredir %%1}/lib/security
%{_jvmdir}/%{jredir %%1}/lib/security/cacerts
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/US_export_policy.jar
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/local_policy.jar
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/java.security
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/blacklisted.certs
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/logging.properties
%{_mandir}/man1/java-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jjs-%{uniquesuffix %%1}.1*
%{_mandir}/man1/keytool-%{uniquesuffix %%1}.1*
%{_mandir}/man1/orbd-%{uniquesuffix %%1}.1*
%{_mandir}/man1/pack200-%{uniquesuffix %%1}.1*
%{_mandir}/man1/rmid-%{uniquesuffix %%1}.1*
%{_mandir}/man1/rmiregistry-%{uniquesuffix %%1}.1*
%{_mandir}/man1/servertool-%{uniquesuffix %%1}.1*
%{_mandir}/man1/tnameserv-%{uniquesuffix %%1}.1*
%{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1*
%config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/nss.cfg
%{_jvmdir}/%{jredir %%1}/lib/audio/
%ifarch %{jit_arches}
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/server/classes.jsa
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/client/classes.jsa
%endif
%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/server/
%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/client/
}
%global files_devel() %{expand:
%defattr(-,root,root,-)
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/LICENSE
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir %%1}/bin
%dir %{_jvmdir}/%{sdkdir %%1}/include
%dir %{_jvmdir}/%{sdkdir %%1}/lib
%if %{with_systemtap}
%dir %{_jvmdir}/%{sdkdir %%1}/tapset
%endif
%{_jvmdir}/%{sdkdir %%1}/bin/*
%{_jvmdir}/%{sdkdir %%1}/include/*
%{_jvmdir}/%{sdkdir %%1}/lib/*
%if %{with_systemtap}
%{_jvmdir}/%{sdkdir %%1}/tapset/*.stp
%endif
%{_jvmjardir}/%{sdkdir %%1}
%{_datadir}/applications/*jconsole.desktop
%{_mandir}/man1/appletviewer-%{uniquesuffix %%1}.1*
%{_mandir}/man1/extcheck-%{uniquesuffix %%1}.1*
%{_mandir}/man1/idlj-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jar-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jarsigner-%{uniquesuffix %%1}.1*
%{_mandir}/man1/javac-%{uniquesuffix %%1}.1*
%{_mandir}/man1/javadoc-%{uniquesuffix %%1}.1*
%{_mandir}/man1/javah-%{uniquesuffix %%1}.1*
%{_mandir}/man1/javap-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jconsole-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jcmd-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jdb-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jdeps-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jhat-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jinfo-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jmap-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jps-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jrunscript-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jsadebugd-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jstack-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jstat-%{uniquesuffix %%1}.1*
%{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1*
%{_mandir}/man1/native2ascii-%{uniquesuffix %%1}.1*
%{_mandir}/man1/policytool-%{uniquesuffix %%1}.1*
%{_mandir}/man1/rmic-%{uniquesuffix %%1}.1*
%{_mandir}/man1/schemagen-%{uniquesuffix %%1}.1*
%{_mandir}/man1/serialver-%{uniquesuffix %%1}.1*
%{_mandir}/man1/wsgen-%{uniquesuffix %%1}.1*
%{_mandir}/man1/wsimport-%{uniquesuffix %%1}.1*
%{_mandir}/man1/xjc-%{uniquesuffix %%1}.1*
%if %{with_systemtap}
%{tapsetroot}
%endif
}
%global files_demo() %{expand:
%defattr(-,root,root,-)
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
}
%global files_src() %{expand:
%defattr(-,root,root,-)
%doc README.src
%{_jvmdir}/%{sdkdir %%1}/src.zip
}
%global files_javadoc() %{expand:
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{uniquejavadocdir}
%doc %{buildoutputdir}/images/%{j2sdkimage %%1}/jre/LICENSE
}
%global files_accessibility() %{expand:
%{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/libatk-wrapper.so
%{_jvmdir}/%{jredir %%1}/lib/ext/java-atk-wrapper.jar
%{_jvmdir}/%{jredir %%1}/lib/accessibility.properties
}
# Prevent brp-java-repack-jars from being run. # Prevent brp-java-repack-jars from being run.
%global __jar_repack 0 %global __jar_repack 0
@ -417,7 +564,23 @@ need to.
%prep %prep
%setup -q -c -n %{uniquesuffix} -T -a 0 if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then
echo "include_normal_build is %{include_normal_build}"
else
echo "include_normal_build is %{include_normal_build}, thats invalid. Use 1 for yes or 0 for no"
exit 11
fi
if [ %{include_debug_build} -eq 0 -o %{include_debug_build} -eq 1 ] ; then
echo "include_debug_build is %{include_debug_build}"
else
echo "include_debug_build is %{include_debug_build}, thats invalid. Use 1 for yes or 0 for no"
exit 12
fi
if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then
echo "you have disabled both include_debug_build and enclude_debug_build. no go."
exit 13
fi
%setup -q -c -n %{uniquesuffix ""} -T -a 0
%ifarch %{aarch64} %ifarch %{aarch64}
pushd jdk8 pushd jdk8
rm -r hotspot rm -r hotspot
@ -474,29 +637,39 @@ tar xzf %{SOURCE8}
%patch300 %patch300
for file in tapset/*.in; do %if %{include_debug_build}
cp -r tapset tapset%{debug_suffix}
%endif
for suffix in %{build_loop} ; do
for file in "tapset"$suffix/*.in; do
OUTPUT_FILE=`echo $file | sed -e s:%{javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g` OUTPUT_FILE=`echo $file | sed -e s:%{javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g`
sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1 sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir $suffix}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1
# TODO find out which architectures other than i686 have a client vm # TODO find out which architectures other than i686 have a client vm
%ifarch %{ix86} %ifarch %{ix86}
sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir $suffix}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE
%else %else
sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE
%endif %endif
sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir}:g $OUTPUT_FILE sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir $suffix}:g $OUTPUT_FILE
sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE
done
done done
# systemtap tapsets ends
%endif %endif
# Prepare desktop files # Prepare desktop files
for suffix in %{build_loop} ; do
for file in %{SOURCE9} %{SOURCE10} ; do for file in %{SOURCE9} %{SOURCE10} ; do
OUTPUT_FILE=`basename $file | sed -e s:\.in$::g` FILE=`basename $file | sed -e s:\.in$::g`
sed -e s:#JAVA_HOME#:%{sdkbindir}:g $file > $OUTPUT_FILE EXT="${FILE##*.}"
sed -i -e s:#JRE_HOME#:%{jrebindir}:g $OUTPUT_FILE NAME="${FILE%.*}"
sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE OUTPUT_FILE=$NAME$suffix.$EXT
sed -e s:#JAVA_HOME#:%{sdkbindir $suffix}:g $file > $OUTPUT_FILE
sed -i -e s:#JRE_HOME#:%{jrebindir $suffix}:g $OUTPUT_FILE
sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}$suffix:g $OUTPUT_FILE
done
done done
%build %build
@ -529,8 +702,17 @@ export EXTRA_CFLAGS
bash ./autogen.sh bash ./autogen.sh
) )
mkdir -p %{buildoutputdir} # backup of normal image for case of dual build on
normalBuildStore=`mktemp -d`
for suffix in %{build_loop} ; do
if [ "$suffix" = "%{debug_suffix}" ] ; then
debugbuild=slowdebug
else
debugbuild=release
fi
mkdir -p %{buildoutputdir}
pushd %{buildoutputdir} pushd %{buildoutputdir}
bash ../../configure \ bash ../../configure \
@ -548,7 +730,7 @@ bash ../../configure \
--with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}" \ --with-user-release-suffix="aarch64-%{aarch64_updatever}-%{aarch64_buildver}-%{aarch64_changesetid}" \
%endif %endif
--with-boot-jdk=/usr/lib/jvm/java-openjdk \ --with-boot-jdk=/usr/lib/jvm/java-openjdk \
--with-debug-level=%{debugbuild} \ --with-debug-level=$debugbuild \
--enable-unlimited-crypto \ --enable-unlimited-crypto \
--with-zlib=system \ --with-zlib=system \
--with-libjpeg=system \ --with-libjpeg=system \
@ -575,17 +757,17 @@ make \
# the build (erroneously) removes read permissions from some jars # the build (erroneously) removes read permissions from some jars
# this is a regression in OpenJDK 7 (our compiler): # this is a regression in OpenJDK 7 (our compiler):
# http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437 # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
find images/j2sdk-image -iname '*.jar' -exec chmod ugo+r {} \; find images/%{j2sdkimage ""} -iname '*.jar' -exec chmod ugo+r {} \;
chmod ugo+r images/j2sdk-image/lib/ct.sym chmod ugo+r images/%{j2sdkimage ""}/lib/ct.sym
# remove redundant *diz and *debuginfo files # remove redundant *diz and *debuginfo files
find images/j2sdk-image -iname '*.diz' -exec rm {} \; find images/%{j2sdkimage ""} -iname '*.diz' -exec rm {} \;
find images/j2sdk-image -iname '*.debuginfo' -exec rm {} \; find images/%{j2sdkimage ""} -iname '*.debuginfo' -exec rm {} \;
popd >& /dev/null popd >& /dev/null
# Install nss.cfg right away as we will be using the JRE above # Install nss.cfg right away as we will be using the JRE above
export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/j2sdk-image export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/%{j2sdkimage ""}
# Install nss.cfg right away as we will be using the JRE above # Install nss.cfg right away as we will be using the JRE above
install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/ install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/
@ -616,51 +798,75 @@ fi
# Check src.zip has all sources. See RHBZ#1130490 # Check src.zip has all sources. See RHBZ#1130490
jar -tf $JAVA_HOME/src.zip | grep Unsafe jar -tf $JAVA_HOME/src.zip | grep Unsafe
pushd %{buildoutputdir}
#note, that order is normal_suffix debug_suffix (in case of both enabled)
if [ "$suffix" = "%{debug_suffix}" ] ; then
# debug build passed, mv it to j2sdk-image-%%{debug_suffix}
mv images/%{j2sdkimage ""} images/%{j2sdkimage debug}
fi
if [ %{include_normal_build} -eq 1 -a %{include_debug_build} -eq 1 ] ; then
if [ "$suffix" = "%{normal_suffix}" ] ; then
# normal build just passed, and debug one is going to run
mv images/%{j2sdkimage ""} $normalBuildStore
make clean
fi
if [ "$suffix" = "%{debug_suffix}" ] ; then
# debug build just passed, restore normal one (see that debug one already renamed)
mv $normalBuildStore/%{j2sdkimage ""} images/
fi
fi
popd
#build cycles
done
%install %install
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
STRIP_KEEP_SYMTAB=libjvm* STRIP_KEEP_SYMTAB=libjvm*
for suffix in %{build_loop} ; do
# Install symlink to default soundfont # Install symlink to default soundfont
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/audio
pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/audio
ln -s %{_datadir}/soundfonts/default.sf2 ln -s %{_datadir}/soundfonts/default.sf2
popd popd
pushd %{buildoutputdir}/images/j2sdk-image pushd %{buildoutputdir}/images/%{j2sdkimage $suffix}
#install jsa directories so we can owe them #install jsa directories so we can owe them
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/server/
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}/client/
# Install main files. # Install main files.
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}
cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}
%if %{with_systemtap} %if %{with_systemtap}
# Install systemtap support files. # Install systemtap support files.
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset
cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/ # note, that uniquesuffix is in BUILD dir in this case
cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset/
install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir} install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
pushd $RPM_BUILD_ROOT%{tapsetdir} pushd $RPM_BUILD_ROOT%{tapsetdir}
RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir}) RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir $suffix}/tapset %{tapsetdir})
ln -sf $RELATIVE/*.stp . ln -sf $RELATIVE/*.stp .
popd popd
%endif %endif
# Install cacerts symlink. # Install cacerts symlink.
rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/cacerts rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security/cacerts
pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix}/lib/security
RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \ RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \
%{_jvmdir}/%{jredir}/lib/security) %{_jvmdir}/%{jredir $suffix}/lib/security)
ln -sf $RELATIVE/cacerts . ln -sf $RELATIVE/cacerts .
popd popd
# Install extension symlinks. # Install extension symlinks.
install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir} install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir $suffix}
pushd $RPM_BUILD_ROOT%{jvmjardir} pushd $RPM_BUILD_ROOT%{jvmjardir $suffix}
RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir}/lib %{jvmjardir}) RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir $suffix}/lib %{jvmjardir $suffix})
ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar
ln -sf $RELATIVE/jce.jar jce-%{version}.jar ln -sf $RELATIVE/jce.jar jce-%{version}.jar
ln -sf $RELATIVE/rt.jar jndi-%{version}.jar ln -sf $RELATIVE/rt.jar jndi-%{version}.jar
@ -682,15 +888,15 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
popd popd
# Install JCE policy symlinks. # Install JCE policy symlinks.
install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix}/jce/vanilla install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix $suffix}/jce/vanilla
# Install versioned symlinks. # Install versioned symlinks.
pushd $RPM_BUILD_ROOT%{_jvmdir} pushd $RPM_BUILD_ROOT%{_jvmdir}
ln -sf %{jredir} %{jrelnk} ln -sf %{jredir $suffix} %{jrelnk $suffix}
popd popd
pushd $RPM_BUILD_ROOT%{_jvmjardir} pushd $RPM_BUILD_ROOT%{_jvmjardir}
ln -sf %{sdkdir} %{jrelnk} ln -sf %{sdkdir $suffix} %{jrelnk $suffix}
popd popd
# Remove javaws man page # Remove javaws man page
@ -704,14 +910,17 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
mv -f $manpage.tmp $manpage mv -f $manpage.tmp $manpage
install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \ install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
$manpage .1)-%{uniquesuffix}.1 $manpage .1)-%{uniquesuffix $suffix}.1
done done
# Install demos and samples. # Install demos and samples.
cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
mkdir -p sample/rmi mkdir -p sample/rmi
mv bin/java-rmi.cgi sample/rmi if [ ! -e sample/rmi/java-rmi.cgi ] ; then
cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} # hack to allow --short-circuit on install
mv bin/java-rmi.cgi sample/rmi
fi
cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
popd popd
@ -729,8 +938,8 @@ done
# Install desktop files. # Install desktop files.
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps} install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
for e in jconsole policytool ; do for e in jconsole$suffix policytool$suffix ; do
desktop-file-install --vendor=%{uniquesuffix} --mode=644 \ desktop-file-install --vendor=%{uniquesuffix $suffix} --mode=644 \
--dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
done done
@ -739,26 +948,26 @@ done
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
# Find JRE directories. # Find JRE directories.
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \ find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix} -type d \
| grep -v jre/lib/security \ | grep -v jre/lib/security \
| sed 's|'$RPM_BUILD_ROOT'|%dir |' \ | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
> %{name}.files-headless > %{name}.files-headless"$suffix"
# Find JRE files. # Find JRE files.
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \ find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir $suffix} -type f -o -type l \
| grep -v jre/lib/security \ | grep -v jre/lib/security \
| sed 's|'$RPM_BUILD_ROOT'||' \ | sed 's|'$RPM_BUILD_ROOT'||' \
> %{name}.files.all > %{name}.files.all"$suffix"
#split %%{name}.files to %%{name}.files-headless and %%{name}.files #split %%{name}.files to %%{name}.files-headless and %%{name}.files
#see https://bugzilla.redhat.com/show_bug.cgi?id=875408 #see https://bugzilla.redhat.com/show_bug.cgi?id=875408
NOT_HEADLESS=\ NOT_HEADLESS=\
"%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjsoundalsa.so "%{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libjsoundalsa.so
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libpulse-java.so %{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libpulse-java.so
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libsplashscreen.so %{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libsplashscreen.so
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libawt_xawt.so %{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libawt_xawt.so
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so %{_jvmdir}/%{uniquesuffix $suffix}/jre/lib/%{archinstall}/libjawt.so
%{_jvmdir}/%{uniquesuffix}/jre/bin/policytool" %{_jvmdir}/%{uniquesuffix $suffix}/jre/bin/policytool"
#filter %%{name}.files from %%{name}.files.all to %%{name}.files-headless #filter %%{name}.files from %%{name}.files.all to %%{name}.files-headless
ALL=`cat %{name}.files.all` ALL=`cat %{name}.files.all"$suffix"`
for file in $ALL ; do for file in $ALL ; do
INLCUDE="NO" ; INLCUDE="NO" ;
for blacklist in $NOT_HEADLESS ; do for blacklist in $NOT_HEADLESS ; do
@ -770,59 +979,62 @@ for file in $ALL ; do
fi; fi;
done done
if [ "x$INLCUDE" = "xNO" ]; then if [ "x$INLCUDE" = "xNO" ]; then
echo "$file" >> %{name}.files-headless echo "$file" >> %{name}.files-headless"$suffix"
else else
echo "$file" >> %{name}.files echo "$file" >> %{name}.files"$suffix"
fi fi
done done
# Find demo directories. # Find demo directories.
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample -type d \ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample -type d \
| sed 's|'$RPM_BUILD_ROOT'|%dir |' \ | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
> %{name}-demo.files > %{name}-demo.files"$suffix"
# FIXME: remove SONAME entries from demo DSOs. See # FIXME: remove SONAME entries from demo DSOs. See
# https://bugzilla.redhat.com/show_bug.cgi?id=436497 # https://bugzilla.redhat.com/show_bug.cgi?id=436497
# Find non-documentation demo files. # Find non-documentation demo files.
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample \
-type f -o -type l | sort \ -type f -o -type l | sort \
| grep -v README \ | grep -v README \
| sed 's|'$RPM_BUILD_ROOT'||' \ | sed 's|'$RPM_BUILD_ROOT'||' \
>> %{name}-demo.files >> %{name}-demo.files"$suffix"
# Find documentation demo files. # Find documentation demo files.
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/demo \
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/sample \
-type f -o -type l | sort \ -type f -o -type l | sort \
| grep README \ | grep README \
| sed 's|'$RPM_BUILD_ROOT'||' \ | sed 's|'$RPM_BUILD_ROOT'||' \
| sed 's|^|%doc |' \ | sed 's|^|%doc |' \
>> %{name}-demo.files >> %{name}-demo.files"$suffix"
# intentionally after the files generation, as it goes to separate package # intentionally after the files generation, as it goes to separate package
# Create links which leads to separately installed java-atk-bridge and allow configuration # Create links which leads to separately installed java-atk-bridge and allow configuration
# links points to java-atk-wrapper - an dependence # links points to java-atk-wrapper - an dependence
pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/%{archinstall} pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/%{archinstall}
ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
popd popd
pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/ext pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/ext
ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar
popd popd
pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir $suffix}/lib/
echo "#Config file to enable java-atk-wrapper" > accessibility.properties echo "#Config file to enable java-atk-wrapper" > accessibility.properties
echo "" >> accessibility.properties echo "" >> accessibility.properties
echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties
echo "" >> accessibility.properties echo "" >> accessibility.properties
popd popd
# end, dual install
done
%pretrans headless -p <lua> %pretrans headless -p <lua>
-- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue -- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
local posix = require "posix" local posix = require "posix"
local currentjvm = "%{uniquesuffix}" local currentjvm = "%{uniquesuffix \"\"}"
local jvmdir = "%{_jvmdir}" local jvmdir = "%{_jvmdir \"\"}"
local jvmDestdir = jvmdir local jvmDestdir = jvmdir
local origname = "%{name}" local origname = "%{name}"
local origjavaver = "%{javaver}" local origjavaver = "%{javaver}"
@ -1221,120 +1433,27 @@ exit 0
%files -f %{name}.files %files -f %{name}.files
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png %{files_jre %{nil}}
%{_datadir}/applications/*policytool.desktop
# important note, see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue # important note, see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
# all config/norepalce files (and more) have to be declared in pretrans. See pretrans # all config/norepalce files (and more) have to be declared in pretrans. See pretrans
%files headless -f %{name}.files-headless %files headless -f %{name}.files-headless
%defattr(-,root,root,-) %{files_jre_headless %{nil}}
%doc %{buildoutputdir}/images/j2sdk-image/jre/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%doc %{buildoutputdir}/images/j2sdk-image/jre/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir}
%{_jvmdir}/%{jrelnk}
%{_jvmjardir}/%{jrelnk}
%{_jvmprivdir}/*
%{jvmjardir}
%dir %{_jvmdir}/%{jredir}/lib/security
%{_jvmdir}/%{jredir}/lib/security/cacerts
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/local_policy.jar
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs
%config(noreplace) %{_jvmdir}/%{jredir}/lib/logging.properties
%{_mandir}/man1/java-%{uniquesuffix}.1*
%{_mandir}/man1/jjs-%{uniquesuffix}.1*
%{_mandir}/man1/keytool-%{uniquesuffix}.1*
%{_mandir}/man1/orbd-%{uniquesuffix}.1*
%{_mandir}/man1/pack200-%{uniquesuffix}.1*
%{_mandir}/man1/rmid-%{uniquesuffix}.1*
%{_mandir}/man1/rmiregistry-%{uniquesuffix}.1*
%{_mandir}/man1/servertool-%{uniquesuffix}.1*
%{_mandir}/man1/tnameserv-%{uniquesuffix}.1*
%{_mandir}/man1/unpack200-%{uniquesuffix}.1*
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/nss.cfg
%{_jvmdir}/%{jredir}/lib/audio/
%ifarch %{jit_arches}
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/server/classes.jsa
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/client/classes.jsa
%endif
%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/
%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
%files devel %files devel
%defattr(-,root,root,-) %{files_devel %{nil}}
%doc %{buildoutputdir}/images/j2sdk-image/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}/images/j2sdk-image/LICENSE
%doc %{buildoutputdir}/images/j2sdk-image/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir}/bin
%dir %{_jvmdir}/%{sdkdir}/include
%dir %{_jvmdir}/%{sdkdir}/lib
%if %{with_systemtap}
%dir %{_jvmdir}/%{sdkdir}/tapset
%endif
%{_jvmdir}/%{sdkdir}/bin/*
%{_jvmdir}/%{sdkdir}/include/*
%{_jvmdir}/%{sdkdir}/lib/*
%if %{with_systemtap}
%{_jvmdir}/%{sdkdir}/tapset/*.stp
%endif
%{_jvmjardir}/%{sdkdir}
%{_datadir}/applications/*jconsole.desktop
%{_mandir}/man1/appletviewer-%{uniquesuffix}.1*
%{_mandir}/man1/extcheck-%{uniquesuffix}.1*
%{_mandir}/man1/idlj-%{uniquesuffix}.1*
%{_mandir}/man1/jar-%{uniquesuffix}.1*
%{_mandir}/man1/jarsigner-%{uniquesuffix}.1*
%{_mandir}/man1/javac-%{uniquesuffix}.1*
%{_mandir}/man1/javadoc-%{uniquesuffix}.1*
%{_mandir}/man1/javah-%{uniquesuffix}.1*
%{_mandir}/man1/javap-%{uniquesuffix}.1*
%{_mandir}/man1/jconsole-%{uniquesuffix}.1*
%{_mandir}/man1/jcmd-%{uniquesuffix}.1*
%{_mandir}/man1/jdb-%{uniquesuffix}.1*
%{_mandir}/man1/jdeps-%{uniquesuffix}.1*
%{_mandir}/man1/jhat-%{uniquesuffix}.1*
%{_mandir}/man1/jinfo-%{uniquesuffix}.1*
%{_mandir}/man1/jmap-%{uniquesuffix}.1*
%{_mandir}/man1/jps-%{uniquesuffix}.1*
%{_mandir}/man1/jrunscript-%{uniquesuffix}.1*
%{_mandir}/man1/jsadebugd-%{uniquesuffix}.1*
%{_mandir}/man1/jstack-%{uniquesuffix}.1*
%{_mandir}/man1/jstat-%{uniquesuffix}.1*
%{_mandir}/man1/jstatd-%{uniquesuffix}.1*
%{_mandir}/man1/native2ascii-%{uniquesuffix}.1*
%{_mandir}/man1/policytool-%{uniquesuffix}.1*
%{_mandir}/man1/rmic-%{uniquesuffix}.1*
%{_mandir}/man1/schemagen-%{uniquesuffix}.1*
%{_mandir}/man1/serialver-%{uniquesuffix}.1*
%{_mandir}/man1/wsgen-%{uniquesuffix}.1*
%{_mandir}/man1/wsimport-%{uniquesuffix}.1*
%{_mandir}/man1/xjc-%{uniquesuffix}.1*
%if %{with_systemtap}
%{tapsetroot}
%endif
%files demo -f %{name}-demo.files %files demo -f %{name}-demo.files
%defattr(-,root,root,-) %{files_demo %{nil}}
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%files src %files src
%defattr(-,root,root,-) %{files_src %{nil}}
%doc README.src
%{_jvmdir}/%{sdkdir}/src.zip
%files javadoc %files javadoc
%defattr(-,root,root,-) %{files_javadoc %{nil}}
%doc %{_javadocdir}/%{uniquejavadocdir}
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE
%files accessibility %files accessibility
%{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so %{files_accessibility %{nil}}
%{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar
%{_jvmdir}/%{jredir}/lib/accessibility.properties
%changelog %changelog
* Fri Oct 24 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.40-12.b02 * Fri Oct 24 2014 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.40-12.b02