From b5340fbdd89ce5df4faec5aecffe2ccdd319f2fb Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Tue, 5 Aug 2014 17:06:43 +0200 Subject: [PATCH 1/5] break package. The jdk8 packages have been left out of minor bugfixes which meat 7. This must be fixed before f21 release. Some work done now, but more awaiting. Pushing for today --- java-1.8.0-openjdk.spec | 569 ++++++++++++++++++++++++++-------------- java-abrt-launcher.in | 7 - jconsole.desktop.in | 6 +- nss.cfg | 3 +- policytool.desktop.in | 6 +- 5 files changed, 386 insertions(+), 205 deletions(-) delete mode 100644 java-abrt-launcher.in diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index ef77a0b..e9afc12 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -4,7 +4,7 @@ %global aarch64_hg_tag 992 %global aarch64 aarch64 arm64 armv8 -%global multilib_arches %{power64} sparc64 x86_64 %{aarch64} +%global multilib_arches %{power64} sparc64 x86_64 %global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} # sometimes we need to distinguish big and little endian PPC64 @@ -12,6 +12,17 @@ %global ppc64le ppc64le %global ppc64be ppc64 ppc64p7 +# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path +# the initialisation must be here. LAter the pkg-connfig have bugy behaviour +#looks liekopenjdk RPM specific bug +# Always set this so the nss.cfg file is not broken +%global NSS_LIBDIR %(pkg-config --variable=libdir nss) + +#fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349 +%global _privatelibs libmawt[.]so.* +%global __provides_exclude ^(%{_privatelibs})$ +%global __requires_exclude ^(%{_privatelibs})$ + %ifarch x86_64 %global archinstall amd64 %endif @@ -81,10 +92,8 @@ %ifarch %{multilib_arches} %global syslibdir %{_prefix}/lib64 %global _libdir %{_prefix}/lib -%global archname %{name}.%{_arch} %else %global syslibdir %{_libdir} -%global archname %{name} %endif # Standard JPackage naming and versioning defines. @@ -98,24 +107,19 @@ %global javaver 1.8.0 # Standard JPackage directories and symbolic links. -# Make 64-bit JDKs just another alternative on 64-bit architectures. -%ifarch %{multilib_arches} -%global sdklnk java-%{javaver}-%{origin}.%{_arch} -%global jrelnk jre-%{javaver}-%{origin}.%{_arch} -%global sdkdir %{name}-%{version}.%{_arch} -%else -%global sdklnk java-%{javaver}-%{origin} -%global jrelnk jre-%{javaver}-%{origin} -%global sdkdir %{name}-%{version} -%endif +%global sdkdir %{uniquesuffix} +%global jrelnk jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch} + %global jredir %{sdkdir}/jre -%global sdkbindir %{_jvmdir}/%{sdklnk}/bin -%global jrebindir %{_jvmdir}/%{jrelnk}/bin -%ifarch %{multilib_arches} -%global jvmjardir %{_jvmjardir}/%{name}-%{version}.%{_arch} -%else -%global jvmjardir %{_jvmjardir}/%{name}-%{version} -%endif +%global sdkbindir %{_jvmdir}/%{sdkdir}/bin +%global jrebindir %{_jvmdir}/%{jredir}/bin +%global jvmjardir %{_jvmjardir}/%{uniquesuffix} + +%global fullversion %{name}-%{version}-%{release} + +%global uniquesuffix %{fullversion}.%{_arch} +#we can copy the javadoc to not arched dir, or made it not noarch +%global uniquejavadocdir %{fullversion} %if %{with_systemtap} # Where to install systemtap tapset (links) @@ -135,7 +139,7 @@ Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 8.%{buildver}%{?dist} +Release: 10.%{buildver}%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -161,8 +165,6 @@ Source1: aarch64-hotspot-jdk8-%{aarch64_buildver}-aarch64-%{aarch64_hg_tag}.tar # Custom README for -src subpackage Source2: README.src -Source3: java-abrt-launcher.in - # Use 'generate_tarballs.sh' to generate the following tarballs # They are based on code contained in the IcedTea7 project. @@ -254,11 +256,13 @@ BuildRequires: libXi-devel BuildRequires: libXinerama-devel BuildRequires: libXt-devel BuildRequires: libXtst-devel +# Requirements for setting up the nss.cfg +BuildRequires: nss-devel BuildRequires: pkgconfig BuildRequires: xorg-x11-proto-devel #BuildRequires: redhat-lsb BuildRequires: zip -BuildRequires: java-1.8.0-openjdk-devel +BuildRequires: java-1.7.0-openjdk-devel # Zero-assembler build requirement. %ifnarch %{jit_arches} BuildRequires: libffi-devel @@ -280,6 +284,8 @@ Requires: xorg-x11-fonts-Type1 # Requires rest of java Requires: %{name}-headless = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} + # Standard JPackage base provides. Provides: jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release} @@ -298,7 +304,6 @@ Provides: java-1.7.0-openjdk = %{epoch}:%{version}-%{release} %description The OpenJDK runtime environment. - %package headless Summary: OpenJDK Runtime Environment Group: Development/Languages @@ -319,7 +324,7 @@ Provides: jre-%{javaver}-%{origin}-headless = %{epoch}:%{version}-%{release} Provides: jre-%{origin}-headless = %{epoch}:%{version}-%{release} Provides: jre-%{javaver}-headless = %{epoch}:%{version}-%{release} Provides: java-%{javaver}-headless = %{epoch}:%{version}-%{release} -Provides: jre-headless = %{javaver} +Provides: jre-headless = %{epoch}:%{javaver} Provides: java-%{origin}-headless = %{epoch}:%{version}-%{release} Provides: java-headless = %{epoch}:%{javaver} # Standard JPackage extensions provides. @@ -340,13 +345,13 @@ Provides: java-1.7.0-openjdk-headless = %{epoch}:%{version}-%{release} %description headless The OpenJDK runtime environment without audio and video support. - %package devel Summary: OpenJDK Development Environment Group: Development/Tools # Require base package. Requires: %{name} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} # Post requires alternatives to install tool alternatives. Requires(post): %{_sbindir}/alternatives # Postun requires alternatives to uninstall tool alternatives. @@ -372,6 +377,7 @@ Summary: OpenJDK Demos Group: Development/Languages Requires: %{name} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} Obsoletes: java-1.7.0-openjdk-demo <= 1:1.7.0.60-2.5.0.2 Provides: java-1.7.0-openjdk-demo = %{epoch}:%{version}-%{release} @@ -397,6 +403,7 @@ Group: Documentation Requires: jpackage-utils BuildArch: noarch +OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} # Post requires alternatives to install javadoc alternative. Requires(post): %{_sbindir}/alternatives # Postun requires alternatives to uninstall javadoc alternative. @@ -412,11 +419,11 @@ Provides: java-1.7.0-openjdk-javadoc = %{epoch}:%{version}-%{release} %description javadoc The OpenJDK API documentation. - %package accessibility Summary: OpenJDK accessibility connector Requires: java-atk-wrapper Requires: %{name} = %{epoch}:%{version}-%{release} +OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} Obsoletes: java-1.7.0-openjdk-accessibility <= 1:1.7.0.60-2.5.0.2 Provides: java-1.7.0-openjdk-accessibility = %{epoch}:%{version}-%{release} @@ -498,7 +505,7 @@ for file in tapset/*.in; do OUTPUT_FILE=`echo $file | sed -e s:\.in$::g` sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1 -# TODO find out which architectures other than ix86 have a client vm +# TODO find out which architectures other than i686 have a client vm %ifarch %{ix86} sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE %else @@ -514,8 +521,8 @@ done # Prepare desktop files for file in %{SOURCE9} %{SOURCE10} ; do OUTPUT_FILE=`basename $file | sed -e s:\.in$::g` - sed -e s:@JAVA_HOME@:%{_jvmdir}/%{sdkdir}:g $file > $OUTPUT_FILE - sed -i -e s:@VERSION@:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE + sed -e s:#JAVA_HOME#:%{sdkbindir}:g $file > $OUTPUT_FILE + sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE done %build @@ -524,13 +531,15 @@ export NUM_PROC=`/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :` export NUM_PROC=${NUM_PROC:-1} # Build IcedTea and OpenJDK. -%ifarch s390x sparc64 alpha %{power64} +%ifarch s390x sparc64 alpha %{power64} %{aarch64} export ARCH_DATA_MODEL=64 %endif %ifarch alpha export CFLAGS="$CFLAGS -mieee" %endif +export CFLAGS="$CFLAGS -fstack-protector-strong" + (cd jdk8/common/autoconf bash ./autogen.sh ) @@ -589,12 +598,12 @@ find images/j2sdk-image -iname '*.debuginfo' -exec rm {} \; popd >& /dev/null +# Install nss.cfg right away as we will be using the JRE above export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/j2sdk-image -# Install java-abrt-luncher -mv $JAVA_HOME/jre/bin/java $JAVA_HOME/jre/bin/java-abrt -cat %{SOURCE3} | sed -e s:@JAVA_PATH@:%{_jvmdir}/%{jredir}/bin/java-abrt:g -e s:@LIB_DIR@:%{LIBDIR}/libabrt-java-connector.so:g > $JAVA_HOME/jre/bin/java -chmod 755 $JAVA_HOME/jre/bin/java +# Install nss.cfg right away as we will be using the JRE above +install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/ + # Use system-wide tzdata rm $JAVA_HOME/jre/lib/tzdb.dat @@ -630,6 +639,10 @@ popd pushd %{buildoutputdir}/images/j2sdk-image +#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}/lib/%{archinstall}/client/ + # Install main files. install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} @@ -639,7 +652,7 @@ pushd %{buildoutputdir}/images/j2sdk-image %if %{with_systemtap} # Install systemtap support files. install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset - cp -a $RPM_BUILD_DIR/%{name}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/ + cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/ install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir} pushd $RPM_BUILD_ROOT%{tapsetdir} RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir}) @@ -680,17 +693,15 @@ pushd %{buildoutputdir}/images/j2sdk-image popd # Install JCE policy symlinks. - install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{archname}/jce/vanilla + install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix}/jce/vanilla - # Install versionless symlinks. + # Install versioned symlinks. pushd $RPM_BUILD_ROOT%{_jvmdir} ln -sf %{jredir} %{jrelnk} - ln -sf %{sdkdir} %{sdklnk} popd pushd $RPM_BUILD_ROOT%{_jvmjardir} ln -sf %{sdkdir} %{jrelnk} - ln -sf %{sdkdir} %{sdklnk} popd # Remove javaws man page @@ -704,7 +715,7 @@ pushd %{buildoutputdir}/images/j2sdk-image iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp mv -f $manpage.tmp $manpage install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \ - $manpage .1)-%{name}.1 + $manpage .1)-%{uniquesuffix}.1 done # Install demos and samples. @@ -716,13 +727,9 @@ pushd %{buildoutputdir}/images/j2sdk-image popd -# Install nss.cfg -install -m 644 %{SOURCE11} $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/ - - # Install Javadoc documentation. install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir} -cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{name} +cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir} # Install icons and menu entries. for s in 16 24 32 48 ; do @@ -734,10 +741,14 @@ done # Install desktop files. install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps} for e in jconsole policytool ; do - desktop-file-install --vendor=%{name} --mode=644 \ + desktop-file-install --vendor=%{uniquesuffix} --mode=644 \ --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop done +# Install /etc/.java/.systemPrefs/ directory +# See https://bugzilla.redhat.com/show_bug.cgi?id=741821 +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs + # Find JRE directories. find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \ | grep -v jre/lib/security \ @@ -751,24 +762,24 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \ #split %{name}.files to %{name}.files-headless and %{name}.files #see https://bugzilla.redhat.com/show_bug.cgi?id=875408 NOT_HEADLESS=\ -"%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjsoundalsa.so -%{_jvmdir}/%{jredir}/lib/%{archinstall}/libpulse-java.so -%{_jvmdir}/%{jredir}/lib/%{archinstall}/libsplashscreen.so -%{_jvmdir}/%{jredir}/lib/%{archinstall}/libawt_xawt.so -%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjawt.so" +"%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libjsoundalsa.so +%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libpulse-java.so +%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libsplashscreen.so +%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libawt_xawt.so +%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libjawt.so" #filter %{name}.files from %{name}.files.all to %{name}.files-headless ALL=`cat %{name}.files.all` -for file in $ALL ; do - INLCUDE="NO" ; - for blacklist in $NOT_HEADLESS ; do - # we can not match normally, because rpmbuild will evaluate !0 result as script failure +for file in $ALL ; do + INLCUDE="NO" ; + for blacklist in $NOT_HEADLESS ; do +#we can not match normally, because rpmbuild will evaluate !0 result as script failure q=`expr match "$file" "$blacklist"` || : - l=`expr length "$blacklist"` || : - if [ $q -eq $l ]; then - INLCUDE="YES" ; + l=`expr length "$blacklist"` || : + if [ $q -eq $l ]; then + INLCUDE="YES" ; fi; done -if [ "x$INLCUDE" = "xNO" ]; then +if [ "x$INLCUDE" = "xNO" ]; then echo "$file" >> %{name}.files-headless else echo "$file" >> %{name}.files @@ -815,18 +826,195 @@ find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ echo "" >> accessibility.properties popd -%post +%pretrans headless -p +-- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue + +local posix = require "posix" + +local currentjvm = "%{uniquesuffix}" +local jvmdir = "%{_jvmdir}" +local jvmDestdir = jvmdir +local origname = "%{name}" +local origjavaver = "%{javaver}" +--trasnform substitute names to lua patterns +--all percentages must be doubled for case of RPM escapingg +local name = string.gsub(string.gsub(origname, "%%-", "%%%%-"), "%%.", "%%%%.") +local javaver = string.gsub(origjavaver, "%%.", "%%%%.") +local arch ="%{_arch}" +local debug = false; + +local jvms = { } + +local caredFiles = {"jre/lib/calendars.properties", + "jre/lib/content-types.properties", + "jre/lib/flavormap.properties", + "jre/lib/logging.properties", + "jre/lib/net.properties", + "jre/lib/psfontj2d.properties", + "jre/lib/sound.properties", + "jre/lib/tz.properties", + "jre/lib/deployment.properties", + "jre/lib/deployment.config", + "jre/lib/security/US_export_policy.jar", + "jre/lib/security/java.policy", + "jre/lib/security/java.security", + "jre/lib/security/local_policy.jar", + "jre/lib/security/nss.cfg,", + "jre/lib/ext"} + +function splitToTable(source, pattern) + local i1 = string.gmatch(source, pattern) + local l1 = {} + for i in i1 do + table.insert(l1, i) + end + return l1 +end + +if (debug) then + print("started") +end; + +foundJvms = posix.dir(jvmdir); +if (foundJvms == nil) then + if (debug) then + print("no, or nothing in "..jvmdir.." exit") + end; + return +end + +if (debug) then + print("found "..#foundJvms.."jvms") +end; + +for i,p in pairs(foundJvms) do +-- regex similar to %{_jvmdir}/%{name}-%{javaver}*%{_arch} bash command +--all percentages must be doubled for case of RPM escapingg + if (string.find(p, name.."%%-"..javaver..".*"..arch) ~= nil ) then + if (debug) then + print("matched: "..p) + end; + if (currentjvm == p) then + if (debug) then + print("this jdk is already installed. exiting lua script") + end; + return + end ; + table.insert(jvms, p) + else + if (debug) then + print("NOT matched: "..p) + end; + end +end + +if (#jvms <=0) then + if (debug) then + print("no matching jdk in "..jvmdir.." exit") + end; + return +end; + +if (debug) then + print("matched "..#jvms.." jdk in "..jvmdir) +end; + +--full names are like java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64 +table.sort(jvms , function(a,b) +-- version-sort +-- split on non word: . - + local l1 = splitToTable(a, "[^%.-]+") + local l2 = splitToTable(b, "[^%.-]+") + for x = 1, math.min(#l1, #l2) do + local l1x = tonumber(l1[x]) + local l2x = tonumber(l2[x]) + if (l1x ~= nil and l2x ~= nil)then +--if hunks are numbers, go with them + if (l1x < l2x) then return true; end + if (l1x > l2x) then return false; end + else + if (l1[x] < l2[x]) then return true; end + if (l1[x] > l2[x]) then return false; end + end +-- if hunks are equals then move to another pair of hunks + end +return a /dev/null || : /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : exit 0 + # FIXME: identical binaries are copied, not linked. This needs to be # fixed upstream. %post headless +%ifarch %{jit_arches} +#see https://bugzilla.redhat.com/show_bug.cgi?id=513605 +%{jrebindir}/java -Xshare:dump >/dev/null 2>/dev/null +%endif + ext=.gz alternatives \ --install %{_bindir}/java java %{jrebindir}/java %{priority} \ - --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \ + --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir} \ --slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \ --slave %{_bindir}/jjs jjs %{jrebindir}/jjs \ --slave %{_bindir}/keytool keytool %{jrebindir}/keytool \ @@ -838,37 +1026,36 @@ alternatives \ --slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \ --slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \ --slave %{_mandir}/man1/java.1$ext java.1$ext \ - %{_mandir}/man1/java-%{name}.1$ext \ + %{_mandir}/man1/java-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \ - %{_mandir}/man1/jjs-%{name}.1$ext \ + %{_mandir}/man1/jjs-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \ - %{_mandir}/man1/keytool-%{name}.1$ext \ + %{_mandir}/man1/keytool-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \ - %{_mandir}/man1/orbd-%{name}.1$ext \ + %{_mandir}/man1/orbd-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \ - %{_mandir}/man1/pack200-%{name}.1$ext \ + %{_mandir}/man1/pack200-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \ - %{_mandir}/man1/rmid-%{name}.1$ext \ + %{_mandir}/man1/rmid-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \ - %{_mandir}/man1/rmiregistry-%{name}.1$ext \ + %{_mandir}/man1/rmiregistry-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \ - %{_mandir}/man1/servertool-%{name}.1$ext \ + %{_mandir}/man1/servertool-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \ - %{_mandir}/man1/tnameserv-%{name}.1$ext \ + %{_mandir}/man1/tnameserv-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \ - %{_mandir}/man1/unpack200-%{name}.1$ext + %{_mandir}/man1/unpack200-%{uniquesuffix}.1$ext -alternatives \ - --install %{_jvmdir}/jre-%{origin} \ - jre_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \ - --slave %{_jvmjardir}/jre-%{origin} \ - jre_%{origin}_exports %{_jvmjardir}/%{jrelnk} +for X in %{origin} %{javaver} ; do + alternatives \ + --install %{_jvmdir}/jre-"$X" \ + jre_"$X" %{_jvmdir}/%{jredir} %{priority} \ + --slave %{_jvmjardir}/jre-"$X" \ + jre_"$X"_exports %{_jvmjardir}/%{jredir} +done -alternatives \ - --install %{_jvmdir}/jre-%{javaver} \ - jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority} \ - --slave %{_jvmjardir}/jre-%{javaver} \ - jre_%{javaver}_exports %{_jvmjardir}/%{jrelnk} +update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \ +--slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports %{jvmjardir} update-desktop-database %{_datadir}/applications &> /dev/null || : @@ -886,13 +1073,13 @@ fi exit 0 + %postun headless -if [ $1 -eq 0 ] -then alternatives --remove java %{jrebindir}/java - alternatives --remove jre_%{origin} %{_jvmdir}/%{jrelnk} - alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk} -fi + alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir} + alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir} + alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk} + %posttrans /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : @@ -901,8 +1088,8 @@ fi ext=.gz alternatives \ --install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \ - --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdklnk} \ - --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdklnk} \ + --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir} \ + --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir} \ --slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \ --slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \ --slave %{_bindir}/idlj idlj %{sdkbindir}/idlj \ @@ -933,77 +1120,76 @@ alternatives \ --slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \ --slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \ --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \ - %{_mandir}/man1/appletviewer-%{name}.1$ext \ + %{_mandir}/man1/appletviewer-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \ - %{_mandir}/man1/extcheck-%{name}.1$ext \ + %{_mandir}/man1/extcheck-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \ - %{_mandir}/man1/idlj-%{name}.1$ext \ + %{_mandir}/man1/idlj-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jar.1$ext jar.1$ext \ - %{_mandir}/man1/jar-%{name}.1$ext \ + %{_mandir}/man1/jar-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \ - %{_mandir}/man1/jarsigner-%{name}.1$ext \ + %{_mandir}/man1/jarsigner-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/javac.1$ext javac.1$ext \ - %{_mandir}/man1/javac-%{name}.1$ext \ + %{_mandir}/man1/javac-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \ - %{_mandir}/man1/javadoc-%{name}.1$ext \ + %{_mandir}/man1/javadoc-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/javah.1$ext javah.1$ext \ - %{_mandir}/man1/javah-%{name}.1$ext \ + %{_mandir}/man1/javah-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/javap.1$ext javap.1$ext \ - %{_mandir}/man1/javap-%{name}.1$ext \ + %{_mandir}/man1/javap-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \ - %{_mandir}/man1/jcmd-%{name}.1$ext \ + %{_mandir}/man1/jcmd-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \ - %{_mandir}/man1/jconsole-%{name}.1$ext \ + %{_mandir}/man1/jconsole-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \ - %{_mandir}/man1/jdb-%{name}.1$ext \ + %{_mandir}/man1/jdb-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \ - %{_mandir}/man1/jdeps-%{name}.1$ext \ + %{_mandir}/man1/jdeps-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \ - %{_mandir}/man1/jhat-%{name}.1$ext \ + %{_mandir}/man1/jhat-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \ - %{_mandir}/man1/jinfo-%{name}.1$ext \ + %{_mandir}/man1/jinfo-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \ - %{_mandir}/man1/jmap-%{name}.1$ext \ + %{_mandir}/man1/jmap-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jps.1$ext jps.1$ext \ - %{_mandir}/man1/jps-%{name}.1$ext \ + %{_mandir}/man1/jps-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \ - %{_mandir}/man1/jrunscript-%{name}.1$ext \ + %{_mandir}/man1/jrunscript-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \ - %{_mandir}/man1/jsadebugd-%{name}.1$ext \ + %{_mandir}/man1/jsadebugd-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \ - %{_mandir}/man1/jstack-%{name}.1$ext \ + %{_mandir}/man1/jstack-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \ - %{_mandir}/man1/jstat-%{name}.1$ext \ + %{_mandir}/man1/jstat-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \ - %{_mandir}/man1/jstatd-%{name}.1$ext \ + %{_mandir}/man1/jstatd-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \ - %{_mandir}/man1/native2ascii-%{name}.1$ext \ + %{_mandir}/man1/native2ascii-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \ - %{_mandir}/man1/policytool-%{name}.1$ext \ + %{_mandir}/man1/policytool-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \ - %{_mandir}/man1/rmic-%{name}.1$ext \ + %{_mandir}/man1/rmic-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \ - %{_mandir}/man1/schemagen-%{name}.1$ext \ + %{_mandir}/man1/schemagen-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \ - %{_mandir}/man1/serialver-%{name}.1$ext \ + %{_mandir}/man1/serialver-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \ - %{_mandir}/man1/wsgen-%{name}.1$ext \ + %{_mandir}/man1/wsgen-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \ - %{_mandir}/man1/wsimport-%{name}.1$ext \ + %{_mandir}/man1/wsimport-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \ - %{_mandir}/man1/xjc-%{name}.1$ext + %{_mandir}/man1/xjc-%{uniquesuffix}.1$ext -alternatives \ - --install %{_jvmdir}/java-%{origin} \ - java_sdk_%{origin} %{_jvmdir}/%{sdklnk} %{priority} \ - --slave %{_jvmjardir}/java-%{origin} \ - java_sdk_%{origin}_exports %{_jvmjardir}/%{sdklnk} +for X in %{origin} %{javaver} ; do + alternatives \ + --install %{_jvmdir}/java-"$X" \ + java_sdk_"$X" %{_jvmdir}/%{sdkdir} %{priority} \ + --slave %{_jvmjardir}/java-"$X" \ + java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir} +done -alternatives \ - --install %{_jvmdir}/java-%{javaver} \ - java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority} \ - --slave %{_jvmjardir}/java-%{javaver} \ - java_sdk_%{javaver}_exports %{_jvmjardir}/%{sdklnk} +update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir} %{priority} \ +--slave %{_jvmjardir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir} update-desktop-database %{_datadir}/applications &> /dev/null || : /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : @@ -1011,38 +1197,33 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : exit 0 %postun devel -if [ $1 -eq 0 ] -then alternatives --remove javac %{sdkbindir}/javac - alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdklnk} - alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} -fi + alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir} + alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir} + alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir} update-desktop-database %{_datadir}/applications &> /dev/null || : if [ $1 -eq 0 ] ; then - /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null - /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : fi - exit 0 -%posttrans devel +%posttrans devel /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + %post javadoc alternatives \ - --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{name}/api \ + --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir}/api \ %{priority} exit 0 %postun javadoc -if [ $1 -eq 0 ] -then - alternatives --remove javadocdir %{_javadocdir}/%{name}/api -fi + alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir}/api exit 0 @@ -1050,13 +1231,13 @@ exit 0 %files -f %{name}.files %{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png - -%files headless -f %{name}.files-headless +# 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 +%files headless -f %{name}.files-headless %defattr(-,root,root,-) %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} @@ -1067,20 +1248,27 @@ exit 0 %config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy %config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security %config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs -%{_mandir}/man1/java-%{name}.1* -%{_mandir}/man1/jjs-%{name}.1* -%{_mandir}/man1/keytool-%{name}.1* -%{_mandir}/man1/orbd-%{name}.1* -%{_mandir}/man1/pack200-%{name}.1* -%{_mandir}/man1/rmid-%{name}.1* -%{_mandir}/man1/rmiregistry-%{name}.1* -%{_mandir}/man1/servertool-%{name}.1* -%{_mandir}/man1/tnameserv-%{name}.1* -%{_mandir}/man1/unpack200-%{name}.1* -%{_jvmdir}/%{jredir}/lib/security/nss.cfg +%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 +%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/audio/ %{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar %{_jvmdir}/%{jredir}/lib/security/local_policy.jar +%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/ +%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ %files devel %defattr(-,root,root,-) @@ -1099,40 +1287,39 @@ exit 0 %if %{with_systemtap} %{_jvmdir}/%{sdkdir}/tapset/*.stp %endif -%{_jvmdir}/%{sdklnk} -%{_jvmjardir}/%{sdklnk} +%{_jvmjardir}/%{sdkdir} %{_datadir}/applications/*jconsole.desktop %{_datadir}/applications/*policytool.desktop -%{_mandir}/man1/appletviewer-%{name}.1* -%{_mandir}/man1/extcheck-%{name}.1* -%{_mandir}/man1/idlj-%{name}.1* -%{_mandir}/man1/jar-%{name}.1* -%{_mandir}/man1/jarsigner-%{name}.1* -%{_mandir}/man1/javac-%{name}.1* -%{_mandir}/man1/javadoc-%{name}.1* -%{_mandir}/man1/javah-%{name}.1* -%{_mandir}/man1/javap-%{name}.1* -%{_mandir}/man1/jconsole-%{name}.1* -%{_mandir}/man1/jcmd-%{name}.1* -%{_mandir}/man1/jdb-%{name}.1* -%{_mandir}/man1/jdeps-%{name}.1* -%{_mandir}/man1/jhat-%{name}.1* -%{_mandir}/man1/jinfo-%{name}.1* -%{_mandir}/man1/jmap-%{name}.1* -%{_mandir}/man1/jps-%{name}.1* -%{_mandir}/man1/jrunscript-%{name}.1* -%{_mandir}/man1/jsadebugd-%{name}.1* -%{_mandir}/man1/jstack-%{name}.1* -%{_mandir}/man1/jstat-%{name}.1* -%{_mandir}/man1/jstatd-%{name}.1* -%{_mandir}/man1/native2ascii-%{name}.1* -%{_mandir}/man1/policytool-%{name}.1* -%{_mandir}/man1/rmic-%{name}.1* -%{_mandir}/man1/schemagen-%{name}.1* -%{_mandir}/man1/serialver-%{name}.1* -%{_mandir}/man1/wsgen-%{name}.1* -%{_mandir}/man1/wsimport-%{name}.1* -%{_mandir}/man1/xjc-%{name}.1* +%{_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 @@ -1148,7 +1335,7 @@ exit 0 %files javadoc %defattr(-,root,root,-) -%doc %{_javadocdir}/%{name} +%doc %{_javadocdir}/%{uniquejavadocdir} %doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE %files accessibility diff --git a/java-abrt-launcher.in b/java-abrt-launcher.in deleted file mode 100644 index d2a7485..0000000 --- a/java-abrt-launcher.in +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -if [ -e @LIB_DIR@ ] ; then - exec -a java @JAVA_PATH@ -agentpath:@LIB_DIR@=abrt=on "$@" -else - exec -a java @JAVA_PATH@ "$@" -fi - diff --git a/jconsole.desktop.in b/jconsole.desktop.in index 2a3bbdb..4f3edda 100644 --- a/jconsole.desktop.in +++ b/jconsole.desktop.in @@ -1,7 +1,7 @@ [Desktop Entry] -Name=OpenJDK 8 Monitoring & Management Console -Comment=Monitor and manage OpenJDK applications for @VERSION@ -Exec=@JAVA_HOME@/bin/jconsole +Name=OpenJDK 8 Monitoring & Management Console #ARCH# +Comment=Monitor and manage OpenJDK applications for #ARCH# +Exec=#JAVA_HOME#/bin/jconsole Icon=java Terminal=false Type=Application diff --git a/nss.cfg b/nss.cfg index c510dd0..377a39c 100644 --- a/nss.cfg +++ b/nss.cfg @@ -1,4 +1,5 @@ name = NSS -nssLibraryDirectory = +nssLibraryDirectory = @NSS_LIBDIR@ nssDbMode = noDb attributes = compatibility +handleStartupErrors = ignoreMultipleInitialisation diff --git a/policytool.desktop.in b/policytool.desktop.in index 0c2f454..1ffe2d9 100644 --- a/policytool.desktop.in +++ b/policytool.desktop.in @@ -1,7 +1,7 @@ [Desktop Entry] -Name=OpenJDK 8 Policy Tool -Comment=Manage OpenJDK policy files (@VERSION@) -Exec=@JAVA_HOME@/bin/policytool +Name=OpenJDK 8 Policy Tool #ARCH# +Comment=Manage OpenJDK policy files #ARCH# +Exec=#JAVA_HOME#/bin/policytool Icon=java Terminal=false Type=Application From f2604780e727165d10f7c3c2d3190b5257a72f34 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Tue, 12 Aug 2014 10:22:25 +0200 Subject: [PATCH 2/5] - backporting old fixes - get rid of jre-abrt, uniquesuffix, parallel install, jsa files, config(norepalce) bug, -fstack-protector-strong, OrderWithRequires, nss config, multilib arches, provides/requires excludes - some additional cosmetic changes --- java-1.8.0-openjdk.spec | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index e9afc12..8073469 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -4,14 +4,12 @@ %global aarch64_hg_tag 992 %global aarch64 aarch64 arm64 armv8 +# sometimes we need to distinguish big and little endian PPC64 +%global ppc64le ppc64le +%global ppc64be ppc64 ppc64p7 %global multilib_arches %{power64} sparc64 x86_64 %global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} -# sometimes we need to distinguish big and little endian PPC64 -# taken from the openjdk-1.7 spec -%global ppc64le ppc64le -%global ppc64be ppc64 ppc64p7 - # With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path # the initialisation must be here. LAter the pkg-connfig have bugy behaviour #looks liekopenjdk RPM specific bug @@ -606,8 +604,8 @@ install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/ # Use system-wide tzdata -rm $JAVA_HOME/jre/lib/tzdb.dat -ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat +#rm $JAVA_HOME/jre/lib/tzdb.dat +#ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat # Check unlimited policy has been used $JAVA_HOME/bin/javac -d . %{SOURCE13} @@ -652,7 +650,7 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ %if %{with_systemtap} # Install systemtap support files. install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset - cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/ + cp -a $RPM_BUILD_DIR/%{name}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/ install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir} pushd $RPM_BUILD_ROOT%{tapsetdir} RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir}) @@ -753,20 +751,20 @@ mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \ | grep -v jre/lib/security \ | sed 's|'$RPM_BUILD_ROOT'|%dir |' \ - > %{name}.files.headless + > %{name}.files-headless # Find JRE files. find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \ | grep -v jre/lib/security \ | sed 's|'$RPM_BUILD_ROOT'||' \ - >> %{name}.files.all + > %{name}.files.all #split %{name}.files to %{name}.files-headless and %{name}.files #see https://bugzilla.redhat.com/show_bug.cgi?id=875408 NOT_HEADLESS=\ -"%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libjsoundalsa.so -%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libpulse-java.so -%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libsplashscreen.so -%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libawt_xawt.so -%{_jvmdir}/%{uniquesuffix}/lib/%{archinstall}/libjawt.so" +"%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjsoundalsa.so +%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libpulse-java.so +%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libsplashscreen.so +%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libawt_xawt.so +%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so" #filter %{name}.files from %{name}.files.all to %{name}.files-headless ALL=`cat %{name}.files.all` for file in $ALL ; do @@ -1344,6 +1342,13 @@ exit 0 %{_jvmdir}/%{jredir}/lib/accessibility.properties %changelog +* Tue Aug 12 2014 Jiri Vanek - 1:1.8.0.11-11.b12 +- backporting old fixes: +- get rid of jre-abrt, uniquesuffix, parallel install, jsa files, + config(norepalce) bug, -fstack-protector-strong, OrderWithRequires, + nss config, multilib arches, provides/requires excludes +- some additional cosmetic changes + * Tue Jul 22 2014 Omair Majid - 1:1.8.0.11-8.b12 - Modify aarch64-specific jvm.cfg to list server vm first From db534fa543b71304b6f665aa2776df0e4f19dd45 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Tue, 12 Aug 2014 12:38:04 +0200 Subject: [PATCH 3/5] bumped release to build by previous release, forcing rebuild by jdk8, uncommenting forgotten comment on tzdb link --- java-1.8.0-openjdk.spec | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index 8073469..f25acb9 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -137,7 +137,7 @@ Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 10.%{buildver}%{?dist} +Release: 11.%{buildver}%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -260,7 +260,7 @@ BuildRequires: pkgconfig BuildRequires: xorg-x11-proto-devel #BuildRequires: redhat-lsb BuildRequires: zip -BuildRequires: java-1.7.0-openjdk-devel +BuildRequires: java-1.8.0-openjdk-devel # Zero-assembler build requirement. %ifnarch %{jit_arches} BuildRequires: libffi-devel @@ -604,8 +604,8 @@ install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/ # Use system-wide tzdata -#rm $JAVA_HOME/jre/lib/tzdb.dat -#ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat +rm $JAVA_HOME/jre/lib/tzdb.dat +ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat # Check unlimited policy has been used $JAVA_HOME/bin/javac -d . %{SOURCE13} @@ -1342,6 +1342,11 @@ exit 0 %{_jvmdir}/%{jredir}/lib/accessibility.properties %changelog +* Tue Aug 12 2014 Jiri Vanek - 1:1.8.0.11-12.b12 +- bumped release to build by previous release. +- forcing rebuild by jdk8 +- uncommenting forgotten comment on tzdb link + * Tue Aug 12 2014 Jiri Vanek - 1:1.8.0.11-11.b12 - backporting old fixes: - get rid of jre-abrt, uniquesuffix, parallel install, jsa files, From 2a29878ccee895e77c7afb0a5ed96e56c7c4deaa Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Wed, 13 Aug 2014 12:36:48 +0200 Subject: [PATCH 4/5] fixing tapset to support multipleinstalls, added more config/norepalce, policitool moved to jre --- java-1.8.0-openjdk.spec | 23 +++++++++++++++-------- jconsole.desktop.in | 2 +- policytool.desktop.in | 2 +- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index f25acb9..e099822 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -137,7 +137,7 @@ Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 11.%{buildver}%{?dist} +Release: 13.%{buildver}%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -501,7 +501,7 @@ tar xzf %{SOURCE8} for file in tapset/*.in; do - OUTPUT_FILE=`echo $file | sed -e s:\.in$::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 # TODO find out which architectures other than i686 have a client vm %ifarch %{ix86} @@ -520,6 +520,7 @@ done for file in %{SOURCE9} %{SOURCE10} ; do OUTPUT_FILE=`basename $file | sed -e s:\.in$::g` sed -e s:#JAVA_HOME#:%{sdkbindir}:g $file > $OUTPUT_FILE + sed -i -e s:#JRE_HOME#:%{jrebindir}:g $OUTPUT_FILE sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE done @@ -650,7 +651,7 @@ mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ %if %{with_systemtap} # Install systemtap support files. install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset - cp -a $RPM_BUILD_DIR/%{name}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/ + cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/ install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir} pushd $RPM_BUILD_ROOT%{tapsetdir} RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir}) @@ -1027,6 +1028,7 @@ alternatives \ %{_mandir}/man1/java-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \ %{_mandir}/man1/jjs-%{uniquesuffix}.1$ext \ + --slave %{_bindir}/policytool policytool %{jrebindir}/policytool \ --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \ %{_mandir}/man1/keytool-%{uniquesuffix}.1$ext \ --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \ @@ -1110,7 +1112,6 @@ alternatives \ --slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \ --slave %{_bindir}/jstatd jstatd %{sdkbindir}/jstatd \ --slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \ - --slave %{_bindir}/policytool policytool %{sdkbindir}/policytool \ --slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \ --slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \ --slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \ @@ -1228,6 +1229,7 @@ exit 0 %files -f %{name}.files %{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png +%{_datadir}/applications/*policytool.desktop # 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 @@ -1243,6 +1245,8 @@ exit 0 %{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 @@ -1258,13 +1262,12 @@ exit 0 %{_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/audio/ -%{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar -%{_jvmdir}/%{jredir}/lib/security/local_policy.jar + %{_jvmdir}/%{jredir}/lib/%{archinstall}/server/ %{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ @@ -1287,7 +1290,6 @@ exit 0 %endif %{_jvmjardir}/%{sdkdir} %{_datadir}/applications/*jconsole.desktop -%{_datadir}/applications/*policytool.desktop %{_mandir}/man1/appletviewer-%{uniquesuffix}.1* %{_mandir}/man1/extcheck-%{uniquesuffix}.1* %{_mandir}/man1/idlj-%{uniquesuffix}.1* @@ -1342,6 +1344,11 @@ exit 0 %{_jvmdir}/%{jredir}/lib/accessibility.properties %changelog +* Tue Aug 12 2014 Jiri Vanek - 1:1.8.0.11-13.b12 +- fixing tapset to support multipleinstalls +- added more config/norepalce +- policitool moved to jre + * Tue Aug 12 2014 Jiri Vanek - 1:1.8.0.11-12.b12 - bumped release to build by previous release. - forcing rebuild by jdk8 diff --git a/jconsole.desktop.in b/jconsole.desktop.in index 4f3edda..407fd8f 100644 --- a/jconsole.desktop.in +++ b/jconsole.desktop.in @@ -1,7 +1,7 @@ [Desktop Entry] Name=OpenJDK 8 Monitoring & Management Console #ARCH# Comment=Monitor and manage OpenJDK applications for #ARCH# -Exec=#JAVA_HOME#/bin/jconsole +Exec=#JAVA_HOME#/jconsole Icon=java Terminal=false Type=Application diff --git a/policytool.desktop.in b/policytool.desktop.in index 1ffe2d9..24d7958 100644 --- a/policytool.desktop.in +++ b/policytool.desktop.in @@ -1,7 +1,7 @@ [Desktop Entry] Name=OpenJDK 8 Policy Tool #ARCH# Comment=Manage OpenJDK policy files #ARCH# -Exec=#JAVA_HOME#/bin/policytool +Exec=#JRE_HOME#/policytool Icon=java Terminal=false Type=Application From 34d18138bdaf082a8ceb4fc8aab228760826cc1f Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Wed, 13 Aug 2014 12:56:44 +0200 Subject: [PATCH 5/5] forced to build in fully versioned dir --- java-1.8.0-openjdk.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index e099822..03fde83 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -137,7 +137,7 @@ Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 13.%{buildver}%{?dist} +Release: 14.%{buildver}%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -438,7 +438,7 @@ need to. %prep -%setup -q -c -n %{name} -T -a 0 +%setup -q -c -n %{uniquesuffix} -T -a 0 %ifarch %{aarch64} pushd jdk8 rm -r hotspot @@ -766,7 +766,7 @@ NOT_HEADLESS=\ %{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libsplashscreen.so %{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libawt_xawt.so %{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so" -#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` for file in $ALL ; do INLCUDE="NO" ; @@ -1344,6 +1344,9 @@ exit 0 %{_jvmdir}/%{jredir}/lib/accessibility.properties %changelog +* Tue Aug 12 2014 Jiri Vanek - 1:1.8.0.11-14.b12 +- forced to build in fully versioned dir + * Tue Aug 12 2014 Jiri Vanek - 1:1.8.0.11-13.b12 - fixing tapset to support multipleinstalls - added more config/norepalce