Blame SPECS/java-1.7.0-openjdk.spec

d557d5
# If debug is 1, OpenJDK is built with all debug info present.
d557d5
%global debug 0
d557d5
aa8380
# If hsbootstrap is 1, build HotSpot alone first and use that in the bootstrap JDK
aa8380
# This avoids issues where HotSpot is broken in the bootstrap JDK
aa8380
%ifarch ppc
aa8380
%global hsbootstrap 1
aa8380
%else
aa8380
%global hsbootstrap 0
aa8380
%endif
aa8380
d557d5
# we remove the build id notes explicitly to avoid generating (potentially
d557d5
# conflicting) files in the -debuginfo package
d557d5
%undefine _missing_build_ids_terminate_build
d557d5
aa8380
%global icedtea_version 2.5.3
d557d5
%global hg_tag icedtea-{icedtea_version}
d557d5
0a1101
%global aarch64_rev 360d11d249a6
0a1101
%global aarch64_tag jdk7u60_b30_aarch64_%{aarch64_rev}
0a1101
d557d5
%global aarch64			aarch64 arm64 armv8
0a1101
#sometimes we need to distinguish big and little endian PPC64
0a1101
%global ppc64le			ppc64le
0a1101
%global ppc64be			ppc64 ppc64p7
0a1101
%global multilib_arches %{power64} sparc64 x86_64 
0a1101
%global jit_arches		%{ix86} x86_64 sparcv9 sparc64 %{ppc64be} %{ppc64le} %{aarch64}
d557d5
d557d5
# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path
d557d5
# the initialisation must be here. LAter the pkg-connfig have bugy behaviour
d557d5
#looks liekopenjdk RPM specific bug
7d28d3
# Always set this so the nss.cfg file is not broken
d557d5
%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
d557d5
d557d5
%ifarch x86_64
d557d5
%global archbuild amd64
d557d5
%global archinstall amd64
d557d5
%endif
d557d5
%ifarch ppc
d557d5
%global archbuild ppc
d557d5
%global archinstall ppc
d557d5
%global archdef PPC
d557d5
%endif
0a1101
%ifarch %{ppc64be}
d557d5
%global archbuild ppc64
d557d5
%global archinstall ppc64
d557d5
%global archdef PPC
d557d5
%endif
0a1101
%ifarch %{ppc64le}
0a1101
%global archbuild ppc64le
0a1101
%global archinstall ppc64le
0a1101
%global archdef PPC64
0a1101
%endif
d557d5
%ifarch %{ix86}
d557d5
%global archbuild i586
d557d5
%global archinstall i386
d557d5
%endif
d557d5
%ifarch ia64
d557d5
%global archbuild ia64
d557d5
%global archinstall ia64
d557d5
%endif
d557d5
%ifarch s390
d557d5
%global archbuild s390
d557d5
%global archinstall s390
d557d5
%global archdef S390
d557d5
%endif
d557d5
%ifarch s390x
d557d5
%global archbuild s390x
d557d5
%global archinstall s390x
d557d5
%global archdef S390
d557d5
%endif
d557d5
%ifarch %{arm}
d557d5
%global archbuild arm
d557d5
%global archinstall arm
d557d5
%global archdef ARM
d557d5
%endif
d557d5
%ifarch %{aarch64}
d557d5
%global archbuild aarch64
d557d5
%global archinstall aarch64
d557d5
%global archdef AARCH64
d557d5
%endif
d557d5
# 32 bit sparc, optimized for v9
d557d5
%ifarch sparcv9
d557d5
%global archbuild sparc
d557d5
%global archinstall sparc
d557d5
%endif
d557d5
# 64 bit sparc
d557d5
%ifarch sparc64
d557d5
%global archbuild sparcv9
d557d5
%global archinstall sparcv9
d557d5
%endif
d557d5
%ifnarch %{jit_arches}
d557d5
%global archbuild %{_arch}
d557d5
%global archinstall %{_arch}
d557d5
%endif
d557d5
d557d5
%if %{debug}
d557d5
%global debugbuild debug_build
d557d5
%else
d557d5
%global debugbuild %{nil}
d557d5
%endif
d557d5
0a1101
%if %{debug}
0a1101
%global buildoutputdir openjdk/build/linux-%{archbuild}-debug
0a1101
%else
d557d5
%global buildoutputdir openjdk/build/linux-%{archbuild}
0a1101
%endif
0a1101
%ifnarch %{ppc64le}
d557d5
%global with_pulseaudio 1
0a1101
%else
0a1101
%global with_pulseaudio 0
0a1101
%endif
d557d5
d557d5
%ifarch %{jit_arches}
d557d5
%global with_systemtap 1
d557d5
%else
d557d5
%global with_systemtap 0
d557d5
%endif
d557d5
d557d5
# Convert an absolute path to a relative path.  Each symbolic link is
d557d5
# specified relative to the directory in which it is installed so that
d557d5
# it will resolve properly within chrooted installations.
d557d5
%global script 'use File::Spec; print File::Spec->abs2rel($ARGV[0], $ARGV[1])'
d557d5
%global abs2rel %{__perl} -e %{script}
d557d5
d557d5
# Hard-code libdir on 64-bit architectures to make the 64-bit JDK
d557d5
# simply be another alternative.
d557d5
%global LIBDIR       %{_libdir}
d557d5
#backuped original one
d557d5
%ifarch %{multilib_arches}
d557d5
%global syslibdir       %{_prefix}/lib64
d557d5
%global _libdir         %{_prefix}/lib
d557d5
%else
d557d5
%global syslibdir       %{_libdir}
d557d5
%endif
d557d5
d557d5
# Standard JPackage naming and versioning defines.
d557d5
%global origin          openjdk
aa8380
%global updatever       71
aa8380
%global buildver        14
d557d5
# Keep priority on 6digits in case updatever>9
d557d5
%global priority        1700%{updatever}
d557d5
%global javaver         1.7.0
d557d5
d557d5
%global sdkdir          %{uniquesuffix}
d557d5
%global jrelnk          jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}
d557d5
d557d5
%global jredir          %{sdkdir}/jre
d557d5
%global sdkbindir       %{_jvmdir}/%{sdkdir}/bin
d557d5
%global jrebindir       %{_jvmdir}/%{jredir}/bin
d557d5
%global jvmjardir       %{_jvmjardir}/%{uniquesuffix}
d557d5
d557d5
%global fullversion     %{name}-%{version}-%{release}
d557d5
d557d5
%global uniquesuffix          %{fullversion}.%{_arch}
d557d5
#we can copy the javadoc to not arched dir, or made it not noarch
d557d5
%global uniquejavadocdir       %{fullversion}
d557d5
d557d5
%ifarch %{jit_arches}
d557d5
# Where to install systemtap tapset (links)
d557d5
# We would like these to be in a package specific subdir,
d557d5
# but currently systemtap doesn't support that, so we have to
d557d5
# use the root tapset dir for now. To distinquish between 64
d557d5
# and 32 bit architectures we place the tapsets under the arch
d557d5
# specific dir (note that systemtap will only pickup the tapset
d557d5
# for the primary arch for now). Systemtap uses the machine name
d557d5
# aka build_cpu as architecture specific directory name.
d557d5
%global tapsetroot /usr/share/systemtap
d557d5
  %ifarch %{ix86}
d557d5
    %global tapsetdir %{tapsetroot}/tapset/i386
d557d5
  %else
d557d5
    %global tapsetdir %{tapsetroot}/tapset/%{_build_cpu}
d557d5
  %endif
d557d5
%endif
d557d5
d557d5
# Prevent brp-java-repack-jars from being run.
d557d5
%global __jar_repack 0
d557d5
d557d5
Name:    java-%{javaver}-%{origin}
d557d5
Version: %{javaver}.%{updatever}
aa8380
Release: %{icedtea_version}.1%{?dist}
d557d5
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons,
d557d5
# and this change was brought into RHEL-4.  java-1.5.0-ibm packages
d557d5
# also included the epoch in their virtual provides.  This created a
d557d5
# situation where in-the-wild java-1.5.0-ibm packages provided "java =
d557d5
# 1:1.5.0".  In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is
d557d5
# interpreted as 0:1.6.0.  So the "java >= 1.6.0" requirement would be
d557d5
# satisfied by the 1:1.5.0 packages.  Thus we need to set the epoch in
d557d5
# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual
d557d5
# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
d557d5
Epoch:   1
d557d5
Summary: OpenJDK Runtime Environment
d557d5
Group:   Development/Languages
d557d5
d557d5
License:  ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with exceptions and LGPL+ and LGPLv2 and MPLv1.0 and MPLv1.1 and Public Domain and W3C
d557d5
URL:      http://openjdk.java.net/
d557d5
d557d5
#head
d557d5
#REPO=http://icedtea.classpath.org/hg/icedtea7-forest
d557d5
#current release
d557d5
#REPO=http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4
d557d5
# hg clone $REPO/ openjdk -r %{hg_tag}
d557d5
# hg clone $REPO/corba/ openjdk/corba -r %{hg_tag}
d557d5
# hg clone $REPO/hotspot/ openjdk/hotspot -r %{hg_tag}
d557d5
# hg clone $REPO/jaxp/ openjdk/jaxp -r %{hg_tag}
d557d5
# hg clone $REPO/jaxws/ openjdk/jaxws -r %{hg_tag}
d557d5
# hg clone $REPO/jdk/ openjdk/jdk -r %{hg_tag}
d557d5
# hg clone $REPO/langtools/ openjdk/langtools -r %{hg_tag}
d557d5
# find openjdk -name ".hg" -exec rm -rf '{}' \;
7d28d3
# sh /git/java-1.7.0-openjdk/rhel-7.0/fsg.sh
d557d5
# tar cJf openjdk-icedtea-%{icedtea_version}.tar.xz openjdk
d557d5
Source0:  openjdk-icedtea-%{icedtea_version}.tar.xz
0a1101
# wget http://hg.openjdk.java.net/aarch64-port/jdk7u/hotspot/archive/%{aarch64_tag}.tar.bz2
0a1101
Source1:  %{aarch64_tag}.tar.bz2
d557d5
d557d5
# README file
d557d5
# This source is under maintainer's/java-team's control
d557d5
Source2:  README.src
d557d5
d557d5
# Sources 6-12 are taken from hg clone http://icedtea.classpath.org/hg/icedtea7
d557d5
# Unless said differently, there is directory with required sources which should be enough to pack/rename
d557d5
d557d5
# Class rewrite to rewrite rhino hierarchy
d557d5
Source5: class-rewriter.tar.gz
d557d5
d557d5
# Systemtap tapsets. Zipped up to keep it small.
d557d5
# last update from http://icedtea.classpath.org/hg/icedtea7/file/8599fdfc398d/tapset
0a1101
Source6: systemtap-tapset-2014-03-19.tar.xz
d557d5
d557d5
# .desktop files. 
d557d5
Source7:  policytool.desktop
d557d5
Source77: jconsole.desktop
d557d5
d557d5
# nss configuration file
d557d5
Source8: nss.cfg
d557d5
d557d5
# FIXME: Taken from IcedTea snapshot 877ad5f00f69, but needs to be moved out
d557d5
# hg clone -r 877ad5f00f69 http://icedtea.classpath.org/hg/icedtea7
d557d5
Source9: pulseaudio.tar.gz
d557d5
d557d5
# Removed libraries that we link instead
d557d5
Source10: remove-intree-libraries.sh
d557d5
d557d5
#http://icedtea.classpath.org/hg/icedtea7/file/933d082ec889/fsg.sh
d557d5
# file to clean tarball, should be ketp updated as possible
d557d5
Source1111: fsg.sh
d557d5
d557d5
# Remove build ids from binaries
d557d5
Source11: remove-buildids.sh
d557d5
d557d5
# Ensure we aren't using the limited crypto policy
d557d5
Source12: TestCryptoLevel.java
d557d5
d557d5
Source13: java-abrt-luncher
d557d5
0a1101
# Remove $ORIGIN from RPATHS
0a1101
Source14: remove-origin-from-rpaths
0a1101
d557d5
# RPM/distribution specific patches
d557d5
d557d5
# Allow TCK to pass with access bridge wired in
d557d5
Patch1:   java-1.7.0-openjdk-java-access-bridge-tck.patch
d557d5
d557d5
# Disable access to access-bridge packages by untrusted apps
d557d5
Patch3:   java-1.7.0-openjdk-java-access-bridge-security.patch
d557d5
d557d5
# Ignore AWTError when assistive technologies are loaded 
d557d5
Patch4:   java-1.7.0-openjdk-accessible-toolkit.patch
d557d5
d557d5
# Build docs even in debug
d557d5
Patch5:   java-1.7.0-openjdk-debugdocs.patch
d557d5
d557d5
# Add debuginfo where missing
d557d5
Patch6:   %{name}-debuginfo.patch
d557d5
d557d5
#
d557d5
# OpenJDK specific patches
d557d5
#
d557d5
d557d5
# Add rhino support
d557d5
Patch100: rhino.patch
d557d5
745a16
Patch106: %{name}-freetype-check-fix.patch
d557d5
d557d5
# allow to create hs_pid.log in tmp (in 700 permissions) if working directory is unwritable
d557d5
Patch200: abrt_friendly_hs_log_jdk7.patch
d557d5
d557d5
#
d557d5
# Optional component packages
d557d5
#
d557d5
d557d5
# Make the ALSA based mixer the default when building with the pulseaudio based
d557d5
# mixer
d557d5
Patch300: pulse-soundproperties.patch
d557d5
0a1101
# Make the curves reported by Java's SSL implementation match those of NSS
0a1101
Patch400: rh1022017.patch
0a1101
d557d5
# Temporary patches
0a1101
d557d5
#Workaround RH902004
d557d5
Patch403: PStack-808293.patch
0a1101
Patch4030: PStack-808293-aarch64.patch
d557d5
# End of tmp patches
d557d5
0a1101
0a1101
d557d5
BuildRequires: autoconf
d557d5
BuildRequires: automake
d557d5
BuildRequires: gcc-c++
d557d5
BuildRequires: alsa-lib-devel
0a1101
BuildRequires: chrpath
d557d5
BuildRequires: cups-devel
d557d5
BuildRequires: desktop-file-utils
d557d5
BuildRequires: giflib-devel
d557d5
BuildRequires: lcms2-devel >= 2.5
d557d5
BuildRequires: libX11-devel
d557d5
BuildRequires: libXi-devel
d557d5
BuildRequires: libXp-devel
d557d5
BuildRequires: libXt-devel
d557d5
BuildRequires: libXtst-devel
d557d5
BuildRequires: libjpeg-devel
d557d5
BuildRequires: libpng-devel
d557d5
BuildRequires: wget
d557d5
BuildRequires: libxslt
d557d5
BuildRequires: xorg-x11-proto-devel
d557d5
BuildRequires: ant
d557d5
BuildRequires: libXinerama-devel
d557d5
BuildRequires: rhino
d557d5
BuildRequires: redhat-lsb
d557d5
BuildRequires: zip
d557d5
BuildRequires: fontconfig
d557d5
BuildRequires: xorg-x11-fonts-Type1
d557d5
BuildRequires: zlib > 1.2.3-6
d557d5
BuildRequires: java-1.7.0-openjdk-devel
d557d5
BuildRequires: fontconfig
d557d5
BuildRequires: at-spi-devel
d557d5
BuildRequires: gawk
d557d5
BuildRequires: pkgconfig >= 0.9.0
d557d5
BuildRequires: xorg-x11-utils
0a1101
# Requirements for setting up the nss.cfg
0a1101
BuildRequires: nss-devel
0a1101
# Required for NIO2
0a1101
BuildRequires: libattr-devel
0a1101
# Build requirements for SunEC system NSS support
0a1101
#BuildRequires: nss-softokn-freebl-devel >= 3.16.1
0a1101
BuildRequires: python
d557d5
# PulseAudio build requirements.
d557d5
%if %{with_pulseaudio}
d557d5
BuildRequires: pulseaudio-libs-devel >= 0.9.11
d557d5
%endif
d557d5
# Zero-assembler build requirement.
d557d5
%ifnarch %{jit_arches}
d557d5
BuildRequires: libffi-devel >= 3.0.10
d557d5
%endif
d557d5
d557d5
# cacerts build requirement.
d557d5
BuildRequires: openssl
d557d5
# execstack build requirement.
d557d5
# no prelink on ARM yet
0a1101
%ifnarch %{arm} %{aarch64} %{ppc64le}
d557d5
BuildRequires: prelink
d557d5
%endif
d557d5
%ifarch %{jit_arches}
d557d5
#systemtap build requirement.
d557d5
BuildRequires: systemtap-sdt-devel
d557d5
%endif
d557d5
d557d5
Requires: fontconfig
d557d5
Requires: xorg-x11-fonts-Type1
d557d5
#requires rest of java
d557d5
Requires: %{name}-headless = %{epoch}:%{version}-%{release}
745a16
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
d557d5
d557d5
d557d5
# Standard JPackage base provides.
d557d5
Provides: jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
d557d5
Provides: jre-%{origin} = %{epoch}:%{version}-%{release}
d557d5
Provides: jre-%{javaver} = %{epoch}:%{version}-%{release}
d557d5
Provides: java-%{javaver} = %{epoch}:%{version}-%{release}
d557d5
Provides: jre = %{javaver}
d557d5
Provides: java-%{origin} = %{epoch}:%{version}-%{release}
d557d5
Provides: java = %{epoch}:%{javaver}
d557d5
# Standard JPackage extensions provides.
d557d5
Provides: java-fonts = %{epoch}:%{version}
d557d5
d557d5
# Obsolete older 1.6 packages as it cannot use the new bytecode
d557d5
# Obsoletes: java-1.6.0-openjdk
d557d5
# Obsoletes: java-1.6.0-openjdk-demo
d557d5
# Obsoletes: java-1.6.0-openjdk-devel
d557d5
# Obsoletes: java-1.6.0-openjdk-javadoc
d557d5
# Obsoletes: java-1.6.0-openjdk-src
d557d5
d557d5
%description
d557d5
The OpenJDK runtime environment.
d557d5
d557d5
%package headless
d557d5
Summary: The OpenJDK runtime environment without audio and video support
d557d5
Group:   Development/Languages
d557d5
d557d5
Requires: lcms2 >= 2.5
d557d5
Requires: libjpeg = 6b
d557d5
# Require /etc/pki/java/cacerts.
d557d5
Requires: ca-certificates
d557d5
# Require jpackage-utils for ant.
d557d5
Requires: jpackage-utils >= 1.7.3-1jpp.2
d557d5
# Require zoneinfo data provided by tzdata-java subpackage.
d557d5
Requires: tzdata-java
d557d5
# Post requires alternatives to install tool alternatives.
d557d5
Requires(post):   %{_sbindir}/alternatives
d557d5
# Postun requires alternatives to uninstall tool alternatives.
d557d5
Requires(postun): %{_sbindir}/alternatives
d557d5
d557d5
Provides: jre-%{javaver}-%{origin}-headless = %{epoch}:%{version}-%{release}
d557d5
Provides: jre-%{origin}-headless = %{epoch}:%{version}-%{release}
d557d5
Provides: jre-%{javaver}-headless = %{epoch}:%{version}-%{release}
d557d5
Provides: java-%{javaver}-headless = %{epoch}:%{version}-%{release}
745a16
Provides: jre-headless = %{epoch}:%{javaver}
d557d5
Provides: java-%{origin}-headless = %{epoch}:%{version}-%{release}
d557d5
Provides: java-headless = %{epoch}:%{javaver}
d557d5
# Standard JPackage extensions provides.
d557d5
Provides: jndi = %{epoch}:%{version}
d557d5
Provides: jndi-ldap = %{epoch}:%{version}
d557d5
Provides: jndi-cos = %{epoch}:%{version}
d557d5
Provides: jndi-rmi = %{epoch}:%{version}
d557d5
Provides: jndi-dns = %{epoch}:%{version}
d557d5
Provides: jaas = %{epoch}:%{version}
d557d5
Provides: jsse = %{epoch}:%{version}
d557d5
Provides: jce = %{epoch}:%{version}
d557d5
Provides: jdbc-stdext = 4.1
d557d5
Provides: java-sasl = %{epoch}:%{version}
d557d5
d557d5
%description headless
d557d5
The OpenJDK runtime environment without audio and video 
d557d5
d557d5
%package devel
d557d5
Summary: OpenJDK Development Environment
d557d5
Group:   Development/Tools
d557d5
d557d5
# Require base package.
d557d5
Requires:         %{name} = %{epoch}:%{version}-%{release}
745a16
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
d557d5
# Post requires alternatives to install tool alternatives.
d557d5
Requires(post):   %{_sbindir}/alternatives
d557d5
# Postun requires alternatives to uninstall tool alternatives.
d557d5
Requires(postun): %{_sbindir}/alternatives
d557d5
d557d5
# Standard JPackage devel provides.
d557d5
Provides: java-sdk-%{javaver}-%{origin} = %{epoch}:%{version}
d557d5
Provides: java-sdk-%{javaver} = %{epoch}:%{version}
d557d5
Provides: java-sdk-%{origin} = %{epoch}:%{version}
d557d5
Provides: java-sdk = %{epoch}:%{javaver}
d557d5
Provides: java-%{javaver}-devel = %{epoch}:%{version}
d557d5
Provides: java-devel-%{origin} = %{epoch}:%{version}
d557d5
Provides: java-devel = %{epoch}:%{javaver}
d557d5
d557d5
d557d5
%description devel
d557d5
The OpenJDK development tools.
d557d5
d557d5
%package demo
d557d5
Summary: OpenJDK Demos
d557d5
Group:   Development/Languages
d557d5
d557d5
Requires: %{name} = %{epoch}:%{version}-%{release}
745a16
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
d557d5
d557d5
%description demo
d557d5
The OpenJDK demos.
d557d5
d557d5
%package src
d557d5
Summary: OpenJDK Source Bundle
d557d5
Group:   Development/Languages
d557d5
d557d5
Requires: %{name} = %{epoch}:%{version}-%{release}
d557d5
d557d5
%description src
d557d5
The OpenJDK source bundle.
d557d5
d557d5
%package javadoc
d557d5
Summary: OpenJDK API Documentation
d557d5
Group:   Documentation
d557d5
Requires: jpackage-utils
d557d5
BuildArch: noarch
d557d5
745a16
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
d557d5
# Post requires alternatives to install javadoc alternative.
d557d5
Requires(post):   %{_sbindir}/alternatives
d557d5
# Postun requires alternatives to uninstall javadoc alternative.
d557d5
Requires(postun): %{_sbindir}/alternatives
d557d5
d557d5
# Standard JPackage javadoc provides.
d557d5
Provides: java-javadoc = %{epoch}:%{version}-%{release}
d557d5
Provides: java-%{javaver}-javadoc = %{epoch}:%{version}-%{release}
d557d5
d557d5
%description javadoc
d557d5
The OpenJDK API documentation.
d557d5
d557d5
%package accessibility
d557d5
Summary: OpenJDK accessibility connector
d557d5
Requires: java-atk-wrapper
d557d5
Requires: %{name} = %{epoch}:%{version}-%{release}
745a16
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release}
d557d5
d557d5
%description accessibility
d557d5
Enables accessibility support in OpenJDK by using java-at-wrapper. This allows compatible at-spi2 based accessibility programs to work for AWT and Swing-based programs.
d557d5
Please note, the java-atk-wrapper is still in beta, and also OpenJDK itself is still in phase of tuning to be working with accessibility features.
d557d5
Although working pretty fine, there are known issues with accessibility on, so do not rather install this package unless you really need.
d557d5
d557d5
%prep
d557d5
%setup -q -c -n %{uniquesuffix} -T -a 0
d557d5
cp %{SOURCE2} .
d557d5
0a1101
%ifarch %{aarch64}
0a1101
pushd openjdk
0a1101
rm -r hotspot
0a1101
tar xf %{SOURCE1}
0a1101
mv hotspot-%{aarch64_rev} hotspot
0a1101
popd
0a1101
%endif
0a1101
d557d5
# OpenJDK patches
d557d5
%patch100
d557d5
d557d5
# pulseaudio support
d557d5
%if %{with_pulseaudio}
d557d5
%patch300
d557d5
%endif
d557d5
0a1101
# ECC fix
0a1101
%patch400
0a1101
d557d5
# Add systemtap patches if enabled
d557d5
%if %{with_systemtap}
d557d5
%endif
d557d5
d557d5
# Remove libraries that are linked
d557d5
sh %{SOURCE10}
d557d5
d557d5
# Copy jaxp, jaf and jaxws drops
d557d5
mkdir drops/
d557d5
d557d5
# Extract the rewriter (to rewrite rhino classes)
d557d5
tar xzf %{SOURCE5}
d557d5
d557d5
# Extract systemtap tapsets
d557d5
%if %{with_systemtap}
d557d5
0a1101
tar xf %{SOURCE6}
d557d5
d557d5
for file in tapset/*.in; do
d557d5
d557d5
    OUTPUT_FILE=`echo $file | sed -e s:%{javaver}\.stp\.in$:%{version}-%{release}.stp:g`
d557d5
    sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1
d557d5
# FIXME this should really be %if %{has_client_jvm}
d557d5
%ifarch %{ix86}
d557d5
    sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE
d557d5
%else
d557d5
    sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE
d557d5
%endif
d557d5
    sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir}:g $OUTPUT_FILE
d557d5
    sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE
d557d5
d557d5
done
d557d5
d557d5
%endif
d557d5
d557d5
# Pulseaudio
d557d5
%if %{with_pulseaudio}
d557d5
tar xzf %{SOURCE9}
d557d5
%endif
d557d5
d557d5
d557d5
%patch3
d557d5
%patch4
d557d5
d557d5
%if %{debug}
d557d5
%patch5
d557d5
%patch6
d557d5
%endif
d557d5
d557d5
%patch106
0a1101
%ifnarch %{aarch64}
0a1101
#friendly hserror is not applicable in head, needs to be revisited
745a16
%patch200
0a1101
%endif
d557d5
0a1101
%ifarch %{aarch64}
0a1101
%patch4030
0a1101
%else
d557d5
%patch403
0a1101
%endif
745a16
d557d5
%build
d557d5
# How many cpu's do we have?
d557d5
export NUM_PROC=`/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :`
d557d5
export NUM_PROC=${NUM_PROC:-1}
d557d5
d557d5
# Build IcedTea and OpenJDK.
d557d5
%ifarch s390x sparc64 alpha %{power64} %{aarch64}
d557d5
export ARCH_DATA_MODEL=64
d557d5
%endif
d557d5
%ifarch alpha
d557d5
export CFLAGS="$CFLAGS -mieee"
d557d5
%endif
d557d5
745a16
export CFLAGS="$CFLAGS -fstack-protector-strong"
745a16
d557d5
# Build the re-written rhino jar
d557d5
mkdir -p rhino/{old,new}
d557d5
d557d5
# Compile the rewriter
d557d5
(cd rewriter 
d557d5
 javac com/redhat/rewriter/ClassRewriter.java
d557d5
)
d557d5
d557d5
# Extract rhino.jar contents and rewrite
d557d5
(cd rhino/old 
d557d5
 jar xf /usr/share/java/rhino.jar
d557d5
)
d557d5
d557d5
java -cp rewriter com.redhat.rewriter.ClassRewriter \
d557d5
    $PWD/rhino/old \
d557d5
    $PWD/rhino/new \
d557d5
    org.mozilla \
d557d5
    sun.org.mozilla
d557d5
d557d5
(cd rhino/old
d557d5
 for file in `find -type f -not -name '*.class'` ; do
d557d5
     new_file=../new/`echo $file | sed -e 's#org#sun/org#'`
d557d5
     mkdir -pv `dirname $new_file`
d557d5
     cp -v $file $new_file
d557d5
     sed -ie 's#org\.mozilla#sun.org.mozilla#g' $new_file
d557d5
 done
d557d5
)
d557d5
d557d5
(cd rhino/new
d557d5
   jar cfm ../rhino.jar META-INF/MANIFEST.MF sun
d557d5
)
d557d5
0a1101
export JDK_TO_BUILD_WITH=/usr/lib/jvm/java-1.7.0-openjdk
d557d5
d557d5
d557d5
d557d5
pushd openjdk >& /dev/null
d557d5
d557d5
export ALT_BOOTDIR="$JDK_TO_BUILD_WITH"
d557d5
d557d5
# Save old umask as jdk_generic_profile overwrites it
d557d5
oldumask=`umask`
d557d5
d557d5
# Set generic profile
d557d5
%ifnarch %{jit_arches}
d557d5
export ZERO_BUILD=true
d557d5
%endif
d557d5
source jdk/make/jdk_generic_profile.sh
d557d5
d557d5
# Restore old umask
d557d5
umask $oldumask
d557d5
aa8380
%if %{hsbootstrap}
aa8380
aa8380
mkdir bootstrap
aa8380
aa8380
make \
aa8380
  DISABLE_INTREE_EC=true \
aa8380
  UNLIMITED_CRYPTO=true \
aa8380
  ANT="/usr/bin/ant" \
aa8380
  DISTRO_NAME="Red Hat Enterprise Linux 7" \
aa8380
  DISTRO_PACKAGE_VERSION="rhel-%{release}-%{_arch} u%{updatever}-b%{buildver}" \
aa8380
  JDK_UPDATE_VERSION=`printf "%02d" %{updatever}` \
aa8380
  JDK_BUILD_NUMBER=b`printf "%02d" %{buildver}` \
aa8380
  JRE_RELEASE_VERSION=%{javaver}_`printf "%02d" %{updatever}`-b`printf "%02d" %{buildver}` \
aa8380
%ifarch %{aarch64}
aa8380
  HOTSPOT_BUILD_VERSION="aarch64_%{aarch64_rev}" \
aa8380
%endif
aa8380
  MILESTONE="fcs" \
aa8380
  ALT_PARALLEL_COMPILE_JOBS="$NUM_PROC" \
aa8380
  HOTSPOT_BUILD_JOBS="$NUM_PROC" \
aa8380
  STATIC_CXX="false" \
aa8380
  RHINO_JAR="$PWD/../rhino/rhino.jar" \
aa8380
  GENSRCDIR="$PWD/generated.build" \
aa8380
  FT2_CFLAGS="`pkg-config --cflags freetype2` " \
aa8380
  FT2_LIBS="`pkg-config --libs freetype2` " \
aa8380
  DEBUG_CLASSFILES="true" \
aa8380
  DEBUG_BINARIES="true" \
aa8380
  STRIP_POLICY="no_strip" \
aa8380
  JAVAC_WARNINGS_FATAL="false" \
aa8380
  INSTALL_LOCATION=%{_jvmdir}/%{sdkdir} \
aa8380
  BUILD_JAXP=false BUILD_JAXWS=false BUILD_LANGTOOLS=false BUILD_JDK=false BUILD_CORBA=false \
aa8380
  ALT_JDK_IMPORT_PATH=${JDK_TO_BUILD_WITH} ALT_OUTPUTDIR=${PWD}/bootstrap \
aa8380
  %{debugbuild}
aa8380
aa8380
cp -dR ${JDK_TO_BUILD_WITH}-* bootstrap-vm
aa8380
rm -vf bootstrap-vm/jre/lib/%{archinstall}/server/libjvm.so
aa8380
cp -av bootstrap/hotspot/outputdir/linux_%{archinstall}*/product/libjvm.so bootstrap-vm/jre/lib/%{archinstall}/server
aa8380
aa8380
export ALT_BOOTDIR=${PWD}/bootstrap-vm
aa8380
  
aa8380
%endif
aa8380
d557d5
make \
d557d5
  DISABLE_INTREE_EC=true \
d557d5
  UNLIMITED_CRYPTO=true \
d557d5
  ANT="/usr/bin/ant" \
d557d5
  DISTRO_NAME="Red Hat Enterprise Linux 7" \
d557d5
  DISTRO_PACKAGE_VERSION="rhel-%{release}-%{_arch} u%{updatever}-b%{buildver}" \
d557d5
  JDK_UPDATE_VERSION=`printf "%02d" %{updatever}` \
d557d5
  JDK_BUILD_NUMBER=b`printf "%02d" %{buildver}` \
745a16
  JRE_RELEASE_VERSION=%{javaver}_`printf "%02d" %{updatever}`-b`printf "%02d" %{buildver}` \
0a1101
%ifarch %{aarch64}
0a1101
  HOTSPOT_BUILD_VERSION="aarch64_%{aarch64_rev}" \
0a1101
%endif
d557d5
  MILESTONE="fcs" \
745a16
  ALT_PARALLEL_COMPILE_JOBS="$NUM_PROC" \
d557d5
  HOTSPOT_BUILD_JOBS="$NUM_PROC" \
d557d5
  STATIC_CXX="false" \
d557d5
  RHINO_JAR="$PWD/../rhino/rhino.jar" \
d557d5
  GENSRCDIR="$PWD/generated.build" \
745a16
  FT2_CFLAGS="`pkg-config --cflags freetype2` " \
745a16
  FT2_LIBS="`pkg-config --libs freetype2` " \
d557d5
  DEBUG_CLASSFILES="true" \
d557d5
  DEBUG_BINARIES="true" \
d557d5
  STRIP_POLICY="no_strip" \
0a1101
  JAVAC_WARNINGS_FATAL="false" \
0a1101
  INSTALL_LOCATION=%{_jvmdir}/%{sdkdir} \
d557d5
  %{debugbuild}
d557d5
d557d5
popd >& /dev/null
d557d5
0a1101
if [ -e $(pwd)/%{buildoutputdir}/j2sdk-image/lib/sa-jdi.jar ]; then 
0a1101
  chmod 644 $(pwd)/%{buildoutputdir}/j2sdk-image/lib/sa-jdi.jar;
0a1101
fi
d557d5
d557d5
export JAVA_HOME=$(pwd)/%{buildoutputdir}/j2sdk-image
d557d5
d557d5
# Install java-abrt-luncher
d557d5
mkdir  $JAVA_HOME/jre-abrt
d557d5
mkdir  $JAVA_HOME/jre-abrt/bin
d557d5
mv  $JAVA_HOME/jre/bin/java $JAVA_HOME/jre-abrt/bin/java
d557d5
ln -s %{_jvmdir}/%{sdkdir}/jre/lib $JAVA_HOME/jre-abrt/lib
d557d5
cat %{SOURCE13} | sed -e s:@JAVA_PATH@:%{_jvmdir}/%{sdkdir}/jre-abrt/bin/java:g -e s:@LIB_DIR@:%{LIBDIR}/libabrt-java-connector.so:g >  $JAVA_HOME/jre/bin/java
d557d5
chmod 755 $JAVA_HOME/jre/bin/java
d557d5
d557d5
# Install nss.cfg right away as we will be using the JRE above
d557d5
cp -a %{SOURCE8} $JAVA_HOME/jre/lib/security/
d557d5
sed -i -e s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g $JAVA_HOME/jre/lib/security/nss.cfg
d557d5
d557d5
# Build pulseaudio and install it to JDK build location
d557d5
%if %{with_pulseaudio}
d557d5
pushd pulseaudio
d557d5
make JAVA_HOME=$JAVA_HOME -f Makefile.pulseaudio
d557d5
cp -pPRf build/native/libpulse-java.so $JAVA_HOME/jre/lib/%{archinstall}/
d557d5
cp -pPRf build/pulse-java.jar $JAVA_HOME/jre/lib/ext/
d557d5
popd
d557d5
%endif
d557d5
d557d5
# Copy tz.properties
d557d5
echo "sun.zoneinfo.dir=/usr/share/javazi" >> $JAVA_HOME/jre/lib/tz.properties
d557d5
d557d5
#remove all fontconfig files. This change should be usptreamed soon
d557d5
rm -f %{buildoutputdir}/j2re-image/lib/fontconfig*.properties.src
d557d5
rm -f %{buildoutputdir}/j2re-image/lib/fontconfig*.bfc
d557d5
rm -f %{buildoutputdir}/j2sdk-image/jre/lib/fontconfig*.properties.src
d557d5
rm -f %{buildoutputdir}/j2sdk-image/jre/lib/fontconfig*.bfc
d557d5
rm -f %{buildoutputdir}/lib/fontconfig*.properties.src
d557d5
rm -f %{buildoutputdir}/lib/fontconfig*.bfc
d557d5
d557d5
# Check unlimited policy has been used
d557d5
$JAVA_HOME/bin/javac -d . %{SOURCE12}
d557d5
$JAVA_HOME/bin/java TestCryptoLevel
d557d5
0a1101
files=$(find $(pwd)/%{buildoutputdir}/j2sdk-image/ -type f | xargs file | grep ELF | cut -d: -f1)
0a1101
python %{SOURCE14} $files
0a1101
d557d5
sh %{SOURCE11} ${JAVA_HOME}
d557d5
d557d5
%install
d557d5
rm -rf $RPM_BUILD_ROOT
d557d5
STRIP_KEEP_SYMTAB=libjvm*
d557d5
d557d5
# Install symlink to default soundfont
d557d5
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio
d557d5
pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio
d557d5
ln -s %{_datadir}/soundfonts/default.sf2
d557d5
popd
d557d5
d557d5
pushd %{buildoutputdir}/j2sdk-image
d557d5
d557d5
#install jsa directories so we can owe them
d557d5
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/
d557d5
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
d557d5
d557d5
  # Install main files.
d557d5
  install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
d557d5
  cp -a jre-abrt bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
d557d5
  install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
d557d5
  cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
d557d5
  cp -a ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
d557d5
d557d5
%ifarch %{jit_arches}
d557d5
  # Install systemtap support files.
d557d5
  install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset
d557d5
  cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/
d557d5
  install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
d557d5
  pushd $RPM_BUILD_ROOT%{tapsetdir}
d557d5
    RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir})
d557d5
    ln -sf $RELATIVE/*.stp .
d557d5
  popd
d557d5
%endif
d557d5
d557d5
  # Install cacerts symlink.
d557d5
  rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/cacerts
d557d5
  pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security
d557d5
    RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \
d557d5
      %{_jvmdir}/%{jredir}/lib/security)
d557d5
    ln -sf $RELATIVE/cacerts .
d557d5
  popd
d557d5
d557d5
  # Install extension symlinks.
d557d5
  install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir}
d557d5
  pushd $RPM_BUILD_ROOT%{jvmjardir}
d557d5
    RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir}/lib %{jvmjardir})
d557d5
    ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar
d557d5
    ln -sf $RELATIVE/jce.jar jce-%{version}.jar
d557d5
    ln -sf $RELATIVE/rt.jar jndi-%{version}.jar
d557d5
    ln -sf $RELATIVE/rt.jar jndi-ldap-%{version}.jar
d557d5
    ln -sf $RELATIVE/rt.jar jndi-cos-%{version}.jar
d557d5
    ln -sf $RELATIVE/rt.jar jndi-rmi-%{version}.jar
d557d5
    ln -sf $RELATIVE/rt.jar jaas-%{version}.jar
d557d5
    ln -sf $RELATIVE/rt.jar jdbc-stdext-%{version}.jar
d557d5
    ln -sf jdbc-stdext-%{version}.jar jdbc-stdext-3.0.jar
d557d5
    ln -sf $RELATIVE/rt.jar sasl-%{version}.jar
d557d5
    for jar in *-%{version}.jar
d557d5
    do
d557d5
      if [ x%{version} != x%{javaver} ]
d557d5
      then
d557d5
        ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|-%{javaver}.jar|g")
d557d5
      fi
d557d5
      ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|.jar|g")
d557d5
    done
d557d5
  popd
d557d5
d557d5
  # Install JCE policy symlinks.
d557d5
  install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix}/jce/vanilla
d557d5
d557d5
  # Install versioned symlinks.
d557d5
  pushd $RPM_BUILD_ROOT%{_jvmdir}
d557d5
    ln -sf %{jredir} %{jrelnk}
d557d5
  popd
d557d5
d557d5
  pushd $RPM_BUILD_ROOT%{_jvmjardir}
d557d5
    ln -sf %{sdkdir} %{jrelnk}
d557d5
  popd
d557d5
d557d5
  # Remove javaws man page
d557d5
  rm -f man/man1/javaws*
d557d5
d557d5
  # Install man pages.
d557d5
  install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
d557d5
  for manpage in man/man1/*
d557d5
  do
d557d5
    # Convert man pages to UTF8 encoding.
d557d5
    iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
d557d5
    mv -f $manpage.tmp $manpage
d557d5
    install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
d557d5
      $manpage .1)-%{uniquesuffix}.1
d557d5
  done
d557d5
d557d5
  # Install demos and samples.
d557d5
  cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
d557d5
  mkdir -p sample/rmi
d557d5
  mv bin/java-rmi.cgi sample/rmi
d557d5
  cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
d557d5
d557d5
popd
d557d5
d557d5
d557d5
# Install Javadoc documentation.
d557d5
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
d557d5
cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir}
d557d5
d557d5
# Install icons and menu entries.
d557d5
for s in 16 24 32 48 ; do
d557d5
  install -D -p -m 644 \
d557d5
    openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
d557d5
    $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}.png
d557d5
done
d557d5
d557d5
# Install desktop files.
d557d5
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
d557d5
for e in %{SOURCE7} %{SOURCE77} ; do
d557d5
    sed -i "s/#ARCH#/%{_arch}-%{release}/g" $e
d557d5
    sed -i "s|/usr/bin|%{sdkbindir}/|g" $e
d557d5
    desktop-file-install --vendor=%{uniquesuffix} --mode=644 \
d557d5
        --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e
d557d5
done
d557d5
d557d5
# Install /etc/.java/.systemPrefs/ directory
d557d5
# See https://bugzilla.redhat.com/show_bug.cgi?id=741821
d557d5
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
d557d5
d557d5
# Find JRE directories.
d557d5
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \
d557d5
  | grep -v jre/lib/security \
d557d5
  | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
d557d5
  > %{name}.files-headless
d557d5
# Find JRE files.
d557d5
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \
d557d5
  | grep -v jre/lib/security \
d557d5
  | sed 's|'$RPM_BUILD_ROOT'||' \
d557d5
  > %{name}.files.all
d557d5
#split %{name}.files to %{name}.files-headless and %{name}.files
d557d5
#see https://bugzilla.redhat.com/show_bug.cgi?id=875408
d557d5
NOT_HEADLESS=\
d557d5
"%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjsoundalsa.so 
d557d5
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libpulse-java.so 
d557d5
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libsplashscreen.so 
d557d5
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/xawt/libmawt.so
d557d5
%{_jvmdir}/%{uniquesuffix}/jre-abrt/lib/%{archinstall}/libjsoundalsa.so 
d557d5
%{_jvmdir}/%{uniquesuffix}/jre-abrt/lib/%{archinstall}/libpulse-java.so 
d557d5
%{_jvmdir}/%{uniquesuffix}/jre-abrt/lib/%{archinstall}/libsplashscreen.so 
d557d5
%{_jvmdir}/%{uniquesuffix}/jre-abrt/lib/%{archinstall}/xawt/libmawt.so"
d557d5
#filter  %{name}.files from  %{name}.files.all to  %{name}.files-headless
d557d5
ALL=`cat %{name}.files.all`
d557d5
for file in $ALL ; do 
d557d5
  INLCUDE="NO" ; 
d557d5
  for blacklist in $NOT_HEADLESS ; do
d557d5
#we can not match normally, because rpmbuild will evaluate !0 result as script failure
d557d5
    q=`expr match "$file" "$blacklist"` || :
d557d5
    l=`expr length  "$blacklist"` || :
d557d5
    if [ $q -eq $l  ]; then 
d557d5
      INLCUDE="YES" ; 
d557d5
    fi;
d557d5
  done
d557d5
    if [ "x$INLCUDE" = "xNO"  ]; then 
d557d5
      echo "$file" >> %{name}.files-headless
d557d5
    else
d557d5
      echo "$file" >> %{name}.files
d557d5
    fi
d557d5
done
d557d5
# Find demo directories.
d557d5
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
d557d5
  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample -type d \
d557d5
  | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
d557d5
  > %{name}-demo.files
d557d5
d557d5
# FIXME: remove SONAME entries from demo DSOs.  See
d557d5
# https://bugzilla.redhat.com/show_bug.cgi?id=436497
d557d5
d557d5
# Find non-documentation demo files.
d557d5
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
d557d5
  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \
d557d5
  -type f -o -type l | sort \
d557d5
  | grep -v README \
d557d5
  | sed 's|'$RPM_BUILD_ROOT'||' \
d557d5
  >> %{name}-demo.files
d557d5
# Find documentation demo files.
d557d5
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
d557d5
  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \
d557d5
  -type f -o -type l | sort \
d557d5
  | grep README \
d557d5
  | sed 's|'$RPM_BUILD_ROOT'||' \
d557d5
  | sed 's|^|%doc |' \
d557d5
  >> %{name}-demo.files
d557d5
d557d5
# intentionally after the files generation, as it goes to separate package
d557d5
# Create links which leads to separately installed java-atk-bridge and allow configuration
d557d5
# links points to java-atk-wrapper - an dependence
d557d5
  pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/%{archinstall}
d557d5
    ln -s %{syslibdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
d557d5
  popd
d557d5
  pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/ext
d557d5
     ln -s %{syslibdir}/java-atk-wrapper/java-atk-wrapper.jar  java-atk-wrapper.jar
d557d5
  popd
d557d5
  pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/
d557d5
    echo "#Config file to  enable java-atk-wrapper" > accessibility.properties
d557d5
    echo "" >> accessibility.properties
d557d5
    echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties
d557d5
    echo "" >> accessibility.properties
d557d5
  popd
d557d5
745a16
%pretrans headless -p <lua>
745a16
-- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue 
745a16
745a16
local posix = require "posix"
745a16
745a16
local currentjvm = "%{uniquesuffix}"
745a16
local jvmdir = "%{_jvmdir}"
745a16
local jvmDestdir = jvmdir
745a16
local origname = "%{name}"
745a16
local origjavaver = "%{javaver}"
745a16
--trasnform substitute names to lua patterns
745a16
--all percentages must be doubled for case of RPM escapingg
745a16
local name = string.gsub(string.gsub(origname, "%%-", "%%%%-"), "%%.", "%%%%.")
745a16
local javaver = string.gsub(origjavaver, "%%.", "%%%%.")
745a16
local arch ="%{_arch}"
745a16
local  debug = false;
745a16
745a16
local jvms = { }
745a16
745a16
local caredFiles = {"jre/lib/calendars.properties",
745a16
              "jre/lib/content-types.properties",
745a16
              "jre/lib/flavormap.properties",
745a16
              "jre/lib/logging.properties",
745a16
              "jre/lib/net.properties",
745a16
              "jre/lib/psfontj2d.properties",
745a16
              "jre/lib/sound.properties",
745a16
              "jre/lib/tz.properties",
745a16
              "jre/lib/deployment.properties",
745a16
              "jre/lib/deployment.config",
745a16
              "jre/lib/security/US_export_policy.jar",
745a16
              "jre/lib/security/java.policy",
745a16
              "jre/lib/security/java.security",
745a16
              "jre/lib/security/local_policy.jar",
745a16
              "jre/lib/security/nss.cfg,",
745a16
              "jre/lib/ext"}
745a16
745a16
function splitToTable(source, pattern)
745a16
  local i1 = string.gmatch(source, pattern) 
745a16
  local l1 = {}
745a16
  for i in i1 do
745a16
    table.insert(l1, i)
745a16
  end
745a16
  return l1
745a16
end
745a16
745a16
if (debug) then
745a16
  print("started")
745a16
end;
745a16
745a16
foundJvms = posix.dir(jvmdir);
745a16
if (foundJvms == nil) then
745a16
  if (debug) then
745a16
    print("no, or nothing in "..jvmdir.." exit")
745a16
  end;
745a16
  return
745a16
end
745a16
745a16
if (debug) then
745a16
  print("found "..#foundJvms.."jvms")
745a16
end;
745a16
745a16
for i,p in pairs(foundJvms) do
745a16
-- regex similar to %{_jvmdir}/%{name}-%{javaver}*%{_arch} bash command
745a16
--all percentages must be doubled for case of RPM escapingg
745a16
  if (string.find(p, name.."%%-"..javaver..".*"..arch) ~= nil ) then
745a16
    if (debug) then
745a16
      print("matched:  "..p)
745a16
    end;
0a1101
    if (currentjvm ==  p) then
0a1101
      if (debug) then
0a1101
        print("this jdk is already installed. exiting lua script")
0a1101
      end;
0a1101
      return
0a1101
    end ;
745a16
    table.insert(jvms, p)
745a16
  else
745a16
    if (debug) then
745a16
      print("NOT matched:  "..p)
745a16
    end;
745a16
  end
745a16
end
745a16
745a16
if (#jvms <=0) then 
745a16
  if (debug) then
745a16
    print("no matching jdk in "..jvmdir.." exit")
745a16
  end;
745a16
  return
745a16
end;
745a16
745a16
if (debug) then
745a16
  print("matched "..#jvms.." jdk in "..jvmdir)
745a16
end;
745a16
745a16
--full names are like java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64
745a16
table.sort(jvms , function(a,b) 
745a16
-- version-sort
745a16
-- split on non word: . - 
745a16
  local l1 = splitToTable(a, "[^%.-]+") 
745a16
  local l2 = splitToTable(b, "[^%.-]+") 
745a16
  for x = 1, math.min(#l1, #l2) do
745a16
    local l1x = tonumber(l1[x])
745a16
    local l2x = tonumber(l2[x])
745a16
    if (l1x ~= nil and l2x ~= nil)then
745a16
--if hunks are numbers, go with them 
745a16
      if (l1x < l2x) then return true; end
745a16
      if (l1x > l2x) then return false; end
745a16
    else
745a16
      if (l1[x] < l2[x]) then return true; end
745a16
      if (l1[x] > l2[x]) then return false; end
745a16
    end
745a16
-- if hunks are equals then move to another pair of hunks
745a16
  end
745a16
return a
745a16
745a16
end)
745a16
745a16
if (debug) then
745a16
  print("sorted lsit of jvms")
745a16
  for i,file in pairs(jvms) do
745a16
    print(file)
745a16
  end
745a16
end
745a16
745a16
latestjvm = jvms[#jvms]
745a16
745a16
745a16
for i,file in pairs(caredFiles) do
745a16
  local SOURCE=jvmdir.."/"..latestjvm.."/"..file
745a16
  local DEST=jvmDestdir.."/"..currentjvm.."/"..file
745a16
  if (debug) then
745a16
    print("going to copy "..SOURCE)
745a16
    print("to  "..DEST)
745a16
  end;
745a16
  local stat1 = posix.stat(SOURCE, "type");
745a16
  if (stat1 ~= nil) then
745a16
  if (debug) then
745a16
    print(SOURCE.." exists")
745a16
  end;
745a16
  local s = ""
745a16
  local dirs = splitToTable(DEST, "[^/]+") 
745a16
  for i,d in pairs(dirs) do
745a16
    if (i == #dirs) then
745a16
      break
745a16
    end
745a16
    s = s.."/"..d
745a16
    local stat2 = posix.stat(s, "type");
745a16
    if (stat2 == nil) then
745a16
      if (debug) then
745a16
        print(s.." does not exists, creating")
745a16
      end;
745a16
      posix.mkdir(s)
745a16
    else
745a16
      if (debug) then
745a16
        print(s.." exists,not creating")
745a16
      end;
745a16
    end
745a16
  end
745a16
-- Copy with -a to keep everything intact
745a16
    local exe = "cp".." -ar "..SOURCE.." "..DEST
745a16
    if (debug) then
745a16
      print("executing "..exe)
745a16
    end;    
745a16
    os.execute(exe)
745a16
  else
745a16
    if (debug) then
745a16
      print(SOURCE.." does not exists")
745a16
    end;
745a16
  end
745a16
end
745a16
745a16
d557d5
%post 
d557d5
update-desktop-database %{_datadir}/applications &> /dev/null || :
d557d5
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
d557d5
exit 0
d557d5
d557d5
d557d5
# FIXME: identical binaries are copied, not linked. This needs to be
d557d5
# fixed upstream.
d557d5
%post headless
d557d5
%ifarch %{jit_arches}
d557d5
#see https://bugzilla.redhat.com/show_bug.cgi?id=513605
d557d5
%{jrebindir}/java -Xshare:dump >/dev/null 2>/dev/null
d557d5
%endif
d557d5
d557d5
ext=.gz
d557d5
alternatives \
d557d5
  --install %{_bindir}/java java %{jrebindir}/java %{priority} \
d557d5
  --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir} \
d557d5
  --slave %{_jvmjardir}/jre jre_exports %{jvmjardir} \
d557d5
  --slave %{_bindir}/keytool keytool %{jrebindir}/keytool \
d557d5
  --slave %{_bindir}/orbd orbd %{jrebindir}/orbd \
d557d5
  --slave %{_bindir}/pack200 pack200 %{jrebindir}/pack200 \
d557d5
  --slave %{_bindir}/rmid rmid %{jrebindir}/rmid \
d557d5
  --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir}/rmiregistry \
d557d5
  --slave %{_bindir}/servertool servertool %{jrebindir}/servertool \
d557d5
  --slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \
d557d5
  --slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \
d557d5
  --slave %{_mandir}/man1/java.1$ext java.1$ext \
d557d5
  %{_mandir}/man1/java-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \
d557d5
  %{_mandir}/man1/keytool-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \
d557d5
  %{_mandir}/man1/orbd-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \
d557d5
  %{_mandir}/man1/pack200-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \
d557d5
  %{_mandir}/man1/rmid-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \
d557d5
  %{_mandir}/man1/rmiregistry-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \
d557d5
  %{_mandir}/man1/servertool-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \
d557d5
  %{_mandir}/man1/tnameserv-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \
d557d5
  %{_mandir}/man1/unpack200-%{uniquesuffix}.1$ext
d557d5
d557d5
for X in %{origin} %{javaver} ; do
d557d5
  alternatives \
d557d5
    --install %{_jvmdir}/jre-"$X" \
d557d5
    jre_"$X" %{_jvmdir}/%{jredir} %{priority} \
d557d5
    --slave %{_jvmjardir}/jre-"$X" \
d557d5
    jre_"$X"_exports %{jvmjardir}
d557d5
done
d557d5
d557d5
update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \
d557d5
--slave %{_jvmjardir}/jre-%{javaver}       jre_%{javaver}_%{origin}_exports      %{jvmjardir}
d557d5
0a1101
update-desktop-database %{_datadir}/applications &> /dev/null || :
0a1101
0a1101
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
0a1101
d557d5
exit 0
d557d5
d557d5
%postun
d557d5
update-desktop-database %{_datadir}/applications &> /dev/null || :
d557d5
d557d5
if [ $1 -eq 0 ] ; then
d557d5
    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
d557d5
    /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
d557d5
fi
d557d5
d557d5
exit 0
d557d5
d557d5
d557d5
%postun headless
d557d5
  alternatives --remove java %{jrebindir}/java
d557d5
  alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir}
d557d5
  alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir}
d557d5
  alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk}
d557d5
745a16
  # avoid unnecessary failure
745a16
  if [ -e %{_jvmdir}/%{uniquesuffix} ]  ; then 
745a16
    # as lua copied all necessary config files, we do not wont the double rpmnew and rpm.save
745a16
    rm -rf %{_jvmdir}/%{uniquesuffix}  
745a16
  fi
d557d5
exit 0
d557d5
745a16
%posttrans
d557d5
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
d557d5
d557d5
d557d5
d557d5
%post devel
d557d5
ext=.gz
d557d5
alternatives \
d557d5
  --install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \
d557d5
  --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir} \
d557d5
  --slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir} \
d557d5
  --slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \
d557d5
  --slave %{_bindir}/apt apt %{sdkbindir}/apt \
d557d5
  --slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \
d557d5
  --slave %{_bindir}/idlj idlj %{sdkbindir}/idlj \
d557d5
  --slave %{_bindir}/jar jar %{sdkbindir}/jar \
d557d5
  --slave %{_bindir}/jarsigner jarsigner %{sdkbindir}/jarsigner \
d557d5
  --slave %{_bindir}/javadoc javadoc %{sdkbindir}/javadoc \
d557d5
  --slave %{_bindir}/javah javah %{sdkbindir}/javah \
d557d5
  --slave %{_bindir}/javap javap %{sdkbindir}/javap \
d557d5
  --slave %{_bindir}/jcmd jcmd %{sdkbindir}/jcmd \
d557d5
  --slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \
d557d5
  --slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \
d557d5
  --slave %{_bindir}/jhat jhat %{sdkbindir}/jhat \
d557d5
  --slave %{_bindir}/jinfo jinfo %{sdkbindir}/jinfo \
d557d5
  --slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \
d557d5
  --slave %{_bindir}/jps jps %{sdkbindir}/jps \
d557d5
  --slave %{_bindir}/jrunscript jrunscript %{sdkbindir}/jrunscript \
d557d5
  --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir}/jsadebugd \
d557d5
  --slave %{_bindir}/jstack jstack %{sdkbindir}/jstack \
d557d5
  --slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \
d557d5
  --slave %{_bindir}/jstatd jstatd %{sdkbindir}/jstatd \
d557d5
  --slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \
d557d5
  --slave %{_bindir}/policytool policytool %{sdkbindir}/policytool \
d557d5
  --slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \
d557d5
  --slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \
d557d5
  --slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \
d557d5
  --slave %{_bindir}/wsgen wsgen %{sdkbindir}/wsgen \
d557d5
  --slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \
d557d5
  --slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \
d557d5
  --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \
d557d5
  %{_mandir}/man1/appletviewer-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/apt.1$ext apt.1$ext \
d557d5
  %{_mandir}/man1/apt-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \
d557d5
  %{_mandir}/man1/extcheck-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jar.1$ext jar.1$ext \
d557d5
  %{_mandir}/man1/jar-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \
d557d5
  %{_mandir}/man1/jarsigner-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/javac.1$ext javac.1$ext \
d557d5
  %{_mandir}/man1/javac-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \
d557d5
  %{_mandir}/man1/javadoc-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/javah.1$ext javah.1$ext \
d557d5
  %{_mandir}/man1/javah-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/javap.1$ext javap.1$ext \
d557d5
  %{_mandir}/man1/javap-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \
d557d5
  %{_mandir}/man1/jconsole-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \
d557d5
  %{_mandir}/man1/jdb-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \
d557d5
  %{_mandir}/man1/jhat-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \
d557d5
  %{_mandir}/man1/jinfo-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \
d557d5
  %{_mandir}/man1/jmap-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jps.1$ext jps.1$ext \
d557d5
  %{_mandir}/man1/jps-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \
d557d5
  %{_mandir}/man1/jrunscript-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \
d557d5
  %{_mandir}/man1/jsadebugd-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \
d557d5
  %{_mandir}/man1/jstack-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \
d557d5
  %{_mandir}/man1/jstat-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \
d557d5
  %{_mandir}/man1/jstatd-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \
d557d5
  %{_mandir}/man1/native2ascii-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \
d557d5
  %{_mandir}/man1/policytool-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \
d557d5
  %{_mandir}/man1/rmic-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \
d557d5
  %{_mandir}/man1/schemagen-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \
d557d5
  %{_mandir}/man1/serialver-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \
d557d5
  %{_mandir}/man1/wsgen-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \
d557d5
  %{_mandir}/man1/wsimport-%{uniquesuffix}.1$ext \
d557d5
  --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \
d557d5
  %{_mandir}/man1/xjc-%{uniquesuffix}.1$ext
d557d5
d557d5
for X in %{origin} %{javaver} ; do
d557d5
  alternatives \
d557d5
    --install %{_jvmdir}/java-"$X" \
d557d5
    java_sdk_"$X" %{_jvmdir}/%{sdkdir} %{priority} \
d557d5
    --slave %{_jvmjardir}/java-"$X" \
d557d5
    java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir}
d557d5
done
d557d5
d557d5
update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir} %{priority} \
d557d5
--slave %{_jvmjardir}/java-%{javaver}-%{origin}       java_sdk_%{javaver}_%{origin}_exports      %{_jvmjardir}/%{sdkdir}
d557d5
d557d5
update-desktop-database %{_datadir}/applications &> /dev/null || :
d557d5
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
d557d5
d557d5
exit 0
d557d5
d557d5
%postun devel
d557d5
  alternatives --remove javac %{sdkbindir}/javac
d557d5
  alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir}
d557d5
  alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir}
d557d5
  alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir}
d557d5
d557d5
update-desktop-database %{_datadir}/applications &> /dev/null || :
d557d5
d557d5
if [ $1 -eq 0 ] ; then
d557d5
    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
d557d5
    /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
d557d5
fi
d557d5
d557d5
exit 0
d557d5
d557d5
%posttrans  devel
d557d5
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
d557d5
d557d5
d557d5
%post javadoc
d557d5
alternatives \
d557d5
  --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir}/api \
d557d5
  %{priority}
d557d5
d557d5
exit 0
d557d5
d557d5
%postun javadoc
d557d5
  alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir}/api
d557d5
d557d5
exit 0
d557d5
d557d5
d557d5
%files -f %{name}.files
d557d5
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
d557d5
0a1101
# important note, see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue 
0a1101
# all config/norepalce files (and more) have to be declared in pretrans. See pretrans
d557d5
%files headless  -f %{name}.files-headless
d557d5
%defattr(-,root,root,-)
d557d5
%doc %{_jvmdir}/%{sdkdir}/ASSEMBLY_EXCEPTION
d557d5
%doc %{_jvmdir}/%{sdkdir}/LICENSE
d557d5
%doc %{_jvmdir}/%{sdkdir}/THIRD_PARTY_README
d557d5
%dir %{_jvmdir}/%{sdkdir}
0a1101
%dir %{_jvmdir}/%{sdkdir}/jre/lib/
0a1101
%dir %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}
0a1101
%ifarch x86_64
0a1101
%dir %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/xawt
0a1101
%endif
d557d5
%{_jvmdir}/%{jrelnk}
d557d5
%{_jvmjardir}/%{jrelnk}
d557d5
%{_jvmprivdir}/*
d557d5
%{jvmjardir}
d557d5
%dir %{_jvmdir}/%{jredir}/lib/security
d557d5
%{_jvmdir}/%{jredir}/lib/security/cacerts
d557d5
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar
d557d5
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/local_policy.jar
d557d5
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
d557d5
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
d557d5
%config(noreplace) %{_jvmdir}/%{jredir}/lib/logging.properties
d557d5
%{_mandir}/man1/java-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/keytool-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/orbd-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/pack200-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/rmid-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/rmiregistry-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/servertool-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/tnameserv-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/unpack200-%{uniquesuffix}.1*
d557d5
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/nss.cfg
d557d5
%{_jvmdir}/%{jredir}/lib/audio/
d557d5
%ifarch %{jit_arches}
d557d5
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/server/classes.jsa
d557d5
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/client/classes.jsa
d557d5
%endif
d557d5
%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/
d557d5
%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/
d557d5
%{_sysconfdir}/.java/
d557d5
%{_sysconfdir}/.java/.systemPrefs
d557d5
%{_jvmdir}/%{sdkdir}/jre-abrt
d557d5
d557d5
d557d5
%files devel
d557d5
%defattr(-,root,root,-)
d557d5
%doc %{_jvmdir}/%{sdkdir}/ASSEMBLY_EXCEPTION
d557d5
%doc %{_jvmdir}/%{sdkdir}/LICENSE
d557d5
%doc %{_jvmdir}/%{sdkdir}/THIRD_PARTY_README
d557d5
%dir %{_jvmdir}/%{sdkdir}/bin
d557d5
%dir %{_jvmdir}/%{sdkdir}/include
d557d5
%dir %{_jvmdir}/%{sdkdir}/lib
d557d5
%ifarch %{jit_arches}
d557d5
%dir %{_jvmdir}/%{sdkdir}/tapset
d557d5
%endif
d557d5
%{_jvmdir}/%{sdkdir}/bin/*
d557d5
%{_jvmdir}/%{sdkdir}/include/*
d557d5
%{_jvmdir}/%{sdkdir}/lib/*
d557d5
%ifarch %{jit_arches}
d557d5
%{_jvmdir}/%{sdkdir}/tapset/*.stp
d557d5
%endif
d557d5
%{_jvmjardir}/%{sdkdir}
d557d5
%{_datadir}/applications/*jconsole.desktop
d557d5
%{_datadir}/applications/*policytool.desktop
d557d5
%{_mandir}/man1/appletviewer-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/apt-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/extcheck-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/idlj-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jar-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jarsigner-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/javac-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/javadoc-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/javah-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/javap-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jconsole-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jcmd-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jdb-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jhat-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jinfo-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jmap-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jps-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jrunscript-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jsadebugd-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jstack-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jstat-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/jstatd-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/native2ascii-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/policytool-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/rmic-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/schemagen-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/serialver-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/wsgen-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/wsimport-%{uniquesuffix}.1*
d557d5
%{_mandir}/man1/xjc-%{uniquesuffix}.1*
d557d5
%ifarch %{jit_arches}
d557d5
%{tapsetroot}
d557d5
%endif
d557d5
d557d5
%files demo -f %{name}-demo.files
d557d5
%defattr(-,root,root,-)
d557d5
%doc %{_jvmdir}/%{sdkdir}/LICENSE
d557d5
d557d5
%files src
d557d5
%defattr(-,root,root,-)
d557d5
%doc README.src
d557d5
%{_jvmdir}/%{sdkdir}/src.zip
d557d5
d557d5
%files javadoc
d557d5
%defattr(-,root,root,-)
d557d5
%doc %{_javadocdir}/%{uniquejavadocdir}
d557d5
%doc %{buildoutputdir}/j2sdk-image/jre/LICENSE
d557d5
d557d5
%files accessibility
d557d5
%{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so
d557d5
%{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar
d557d5
%{_jvmdir}/%{jredir}/lib/accessibility.properties
d557d5
d557d5
%changelog
aa8380
* Thu Oct 02 2014 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.7.0.65-2.5.3.1
aa8380
- Bump to 2.5.3 for latest security fixes.
aa8380
- Remove obsolete patches.
aa8380
- Add hsbootstrap option to pre-build HotSpot when required.
aa8380
- Resolves: rhbz#1148893
aa8380
0a1101
* Mon Jul 14 2014 Jiri Vanek  <jvanek@redhat.com> - 1.7.0.65-2.5.1.2
0a1101
- added and applied fix for samrtcard io patch405, pr1864_smartcardIO.patch
0a1101
- Resolves: rhbz#1115876
0a1101
0a1101
* Mon Jul 07 2014 Jiri Vanek  <jvanek@redhat.com> - 1.7.0.65-2.5.1.1
0a1101
- updated to security patched icedtea7-forest-2.5.1
0a1101
- Resolves: rhbz#1115876
0a1101
0a1101
* Wed Jul 02 2014 Jiri Vanek  <jvanek@redhat.com> - 1.7.0.60-2.5.0.1
0a1101
- updated to icedtea7-forest-2.5.0 (rh1114934)
0a1101
- Resolves: rhbz#1115876
0a1101
7d28d3
* Fri May 30 2014 Andrew John Hughes <gnu.andrew@redhat.com> - 1.7.0.55-2.4.7.2
7d28d3
- Remove NSS patches. Issues with PKCS11 provider mean it shouldn't be enabled.
7d28d3
- Always setup nss.cfg and depend on nss-devel at build-time to do so.
7d28d3
- This allows users who wish to use PKCS11+NSS to just add it to java.security.
7d28d3
- Patches to PKCS11 provider will be included upstream in 2.4.8 (ETA July 2014)
7d28d3
- Resolves: rhbz#1099565
7d28d3
7d28d3
* Tue May 20 2014 Jiri Vanek <jvanek@redhat.com> - 1.7.0.55-2.4.7.0.el7
7d28d3
- bumped to future icedtea-forest 2.4.7
7d28d3
- updatever set to 55, buildver se to 13, release reset to 0
7d28d3
- removed upstreamed patch402 gstackbounds.patch
7d28d3
- removed Requires: rhino, BuildRequires is enough
7d28d3
- ppc64 repalced by power64 macro
7d28d3
- patch111 applied as dry-run (6.6 forward port)
7d28d3
- nss enabled, but notused as default (6.6 forward port)
7d28d3
- Resolves: rhbz#1099565
7d28d3
745a16
* Fri Apr 04 2014 Jiri Vanek <jvanek@redhat.com> - 1.7.0.51-2.4.5.5.el7
745a16
- added OrderWithRequires on headless where possible
745a16
- Resolves: rhbz#1038092
745a16
745a16
* Thu Mar 27 2014 Jiri Vanek <jvanek@redhat.com> - 1.7.0.51-2.4.5.3.el7
745a16
- synced lua script from fedora.
745a16
- Resolves: rhbz#1038092
745a16
745a16
* Fri Mar 14 2014 Jiri Vanek <jvanek@redhat.com> - 1.7.0.51-2.4.5.2.el7
745a16
- added fstack-protector-strong to CFLAGS
745a16
- Resolves: rhbz#1070816
745a16
745a16
* Thu Mar 06 2014 Jiri Vanek <jvanek@redhat.com> - 1.7.0.51-2.4.5.1.el7
745a16
- diabled NSS. Missuisng 1038092 for it as it is in hurry.
745a16
- Related: rhbz#1038092
745a16
745a16
* Thu Jan 30 2014 Jiri Vanek <jvanek@redhat.com> - 1.7.0.51-2.4.5.0.el7
745a16
- updated to icedtea 2.4.5 + sync with f21
745a16
 - http://blog.fuseyism.com/index.php/2014/01/29/icedtea-2-4-5-released/
745a16
- removed buildRequires: pulseaudio >= 0.9.11, as not neccessary
745a16
 -  but kept libs-devel)
745a16
- removed upstreamed or unwonted patches (thanx to gnu_andrew to pointing them out)
745a16
 - patch410 1015432.patch (upstreamed)
745a16
 - patch411 1029588.patch
745a16
 - patch412 zero-x32.diff
745a16
 - patch104 java-1.7.0-ppc-zero-jdk.patch
745a16
 - patch105 java-1.7.0-ppc-zero-hotspot.patch
745a16
- patch402 gstackbounds.patch and patch403 PStack-808293.patch applied always
745a16
 (again thanx to gnu_andrew)
745a16
- merged other gnu_andrew's changes
745a16
 - FT2_CFLAGS and FT2_LIBS hardoced values replaced by correct pkg-config calls 
745a16
 - buildver bumbed to 31
745a16
- added build requires  nss-devel
745a16
- removed build requires mercurial
745a16
- added JRE_RELEASE_VERSION and ALT_PARALLEL_COMPILE_JOBS into make call
745a16
- Related: rhbz1038092
745a16
745a16
* Tue Jan 28 2014 Daniel Mach <dmach@redhat.com> - 1.7.0.51-2.4.4.1
745a16
- Mass rebuild 2014-01-24
745a16
745a16
* Fri Jan 10 2014 Jiri Vanek <jvanek@redhat.com> - 1.7.0.51-2.4.4.0.el7
745a16
- updated to security icedtea 2.4.4
745a16
 - icedtea_version set to 2.4.4
745a16
 - updatever bumped to       51
745a16
 - release reset to 0
745a16
- sync with fedora
745a16
 - added and applied patch411 1029588.patch (rh 1029588)
745a16
 - added aand applied patch410, 1015432 (rh 1015432)
745a16
 - and so removed patch121 FixPPC64StackOverflow.patch
745a16
- added patch412 zero-x32.diff to try to fix zero builds build
745a16
- Resolves: rhbz#1053280
745a16
745a16
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.7.0.45-2.4.3.5.el7 
745a16
- Mass rebuild 2013-12-27
745a16
d557d5
* Thu Oct 31 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.3.4.fel7
d557d5
- Removed obsoletes for java-1.6.0-openjdk* ,  until decided its presence in el7
d557d5
- Resolves:rhbz#1018680
d557d5
d557d5
* Thu Oct 31 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.3.3.fel7
d557d5
- just bumped release, need to confirm, that   patch121, FixPPC64StackOverflow.patch
d557d5
  really works
d557d5
- Resolves:rhbz#1018680
d557d5
d557d5
* Wed Oct 16 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.3.2.fel7
d557d5
- added and applied patch121, FixPPC64StackOverflow.patch
d557d5
- all redundant ppc64 strings replaced by power64 macro
d557d5
- Resolves:rhbz#1018680
d557d5
d557d5
* Wed Oct 16 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.3.1.fel7
d557d5
- updated to new  CPU sources 2.4.3
d557d5
- Resolves:rhbz#1018680
d557d5
d557d5
* Mon Oct 14 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.3.0.fel7
d557d5
- updated to latest CPU sources 2.4.3
d557d5
- Resolves:rhbz#1018680
d557d5
d557d5
* Mon Oct 14 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.2.12.fel7
d557d5
- jdk splitted to headless and rest
d557d5
- Resolves:rhbz#875408
d557d5
d557d5
* Fri Oct 04 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.2.11.fel7
d557d5
- another tapset fix 
d557d5
- Resolves:rhbz#875408
d557d5
d557d5
* Fri Oct 04 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.2.10.fel7
d557d5
- abrt changed to soft dependece
d557d5
- Resolves:rhbz#875408
d557d5
d557d5
* Thu Oct 03 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.2.9.el7
d557d5
- renamed tapset source to be "versioned"
d557d5
- improved agent placement
d557d5
- Resolves:rhbz#875408
d557d5
d557d5
* Wed Oct 02 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.2.8.el7
d557d5
- updated tapset to current head (825824)
d557d5
- Resolves:rhbz#875408
d557d5
d557d5
* Tue Oct 01 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.2.7.el7
d557d5
- fixed incorrect  _jvmdir/jre-javaver_origin to  _jvmdir/jre-javaver-origin link
d557d5
- Resolves:rhbz#875408
d557d5
d557d5
* Tue Oct 01 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.2.6.el7
d557d5
- syncing with f20 - abrt connector
d557d5
- Resolves:rhbz#875408
d557d5
d557d5
* Tue Oct 01 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.40-2.4.2.3.el7
d557d5
- syncing with f19/rhel-6.5
d557d5
- Resolves:rhbz#875408
d557d5
d557d5
d557d5
* Wed Aug 07 2013 Deepak Bhole <dbhole@redhat.com> - 1.7.0.25-2.3.12.3.el7
d557d5
- Removed obsoletes for java-1.6.0-openjdk*
d557d5
d557d5
* Fri Jul 26 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.25-2.3.12.2.el7
d557d5
- refreshed icedtea7-forest 2.3.12
d557d5
- fix broken jre_exports alternatives links (thanx to orion bug #979128)
d557d5
d557d5
* Thu Jul 25 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.25-2.3.11.0.el7
d557d5
- added new alternatives jre-1.7.0-openjdk and java-1.7.0-openjdk 
d557d5
- finally merged arm and main source tarballs
d557d5
- updated to icedtea 2.3.11
d557d5
 - http://blog.fuseyism.com/index.php/2013/07/25/icedtea-2-3-11-released/
d557d5
- added removal of new jre-1.7.0-openjdk and java-1.7.0-openjdk alternatives
d557d5
- removed patch 400, rhino for 2.1 and other 2.1 conditional stuff
d557d5
- removed patch 103 arm-fixes.patch
d557d5
- removed "dir" from files which was duplicating jre in sdk
d557d5
d557d5
* Fri Jul 19 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.25-2.3.10.6.el7
d557d5
- jrelnk is now just lnk, everything is pointing through jredir
d557d5
d557d5
* Thu Jul 18 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.25-2.3.10.6.el7
d557d5
- minor cleaning
d557d5
- sdklnk removed, and substitued by  sdkdir
d557d5
d557d5
* Wed Jul 03 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.25-2.3.10.5.fel7
d557d5
- moved to xz compression of sources
d557d5
- updated 2.1 tarball
d557d5
d557d5
* Thu Jun 27 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.25-2.3.10.4.el7
d557d5
- Sync with upstream IcedTea7-forest 2.3.10 tag
d557d5
- Fixes regressions as introduced with 1.7.0.25-2.3.10.3.el6:
d557d5
  rhbz#978005, rhbz#977979, rhbz#976693, IcedTeaBZ#1487.
d557d5
- all patch commands repalced by patch macro
d557d5
  - updated java-1.7.0-openjdk-ppc-zero-hotspot.patch to pass without loose patching
d557d5
d557d5
* Wed Jun 19 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.25-2.3.10.3.el7
d557d5
- update of IcedTea7-forest 2.3.10 tarball
d557d5
- removed patch1000 MBeanFix.patch to fix regressions caused by security patches
d557d5
d557d5
d557d5
* Thu Jun 13 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.25-2.3.10.2.el7
d557d5
- added patch1000 MBeanFix.patch to fix regressions caused by security patches
d557d5
d557d5
* Thu Jun 13 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.25-2.3.10.1.el7
d557d5
- arm tarball updated to 2.1.9
d557d5
- build bumped to 25
d557d5
d557d5
* Wed Jun 12 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.19-2.3.10.0.el7
d557d5
- fixed RH972717 by enabling patch110 java-1.7.0-openjdk-nss-icedtea-e9c857dcb964.patch
d557d5
- temporarly swithced to intree lcms as it have security fixes (patch 500)
d557d5
 - added  GENSRCDIR="$PWD/generated.build" to be able to
d557d5
 - removed (build)requires  lcms2(-devel)
d557d5
- Updated to latest IcedTea7-forest 2.3.10
d557d5
d557d5
* Wed Jun 05 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.19-2.3.9.14.fc19
d557d5
- Added client/server directories so they can be owned
d557d5
- Renamed patch 107 to 200
d557d5
- Added nss support from 6.5
d557d5
- Added fix for RH857717, owned /etc/.java/ and /etc/.java/.systemPrefs
d557d5
- Removed ant-nodeps, should not be needed
d557d5
d557d5
* Tue May 28 2013 Jiri Vanek <jvanek@redhat.com> - 1.7.0.19-2.3.9.13.el7
d557d5
- javadoc put into fully versioned directory, but without arch (to be kept noarch)
d557d5
 - uniquejavadocdir
d557d5
- updated to latest 2.3.9 tarball - fixing the rhbz#967436
d557d5
d557d5
* Mon May 27 2013 Omair Majid <omajid@redhat.com> - 1.7.0.19-2.3.9.12.el7
d557d5
- Allowed multiple OpenJDKs to be installed in parallel
d557d5
- Removed archname
d557d5
- Added arch to all, not only multilib arches
d557d5
- uniquesuffix is now holding fully versioned name
d557d5
- Intorduced source11 remove-buildids.sh
d557d5
d557d5
* Fri May 17 2013 Omair Majid <omajid@redhat.com> - 1.7.0.19-2.3.9.12.el7
d557d5
- Replace %{name} with %{uniquesuffix} where it's used as a unique suffix.
d557d5
d557d5
* Thu May 16 2013 Jiri Vanek <jvanek@redhat.com>
d557d5
- added variable arm_arches as restriction to some cases of not jit_arches
d557d5
d557d5
* Tue May 14 2013 Jiri Vanek <jvanek@redhat.com>
d557d5
- patch402 gstackbounds.patch applied only to jit arches
d557d5
- patch403 PStack-808293.patch likewise
d557d5
d557d5
* Mon May 13 2013 Jiri Vanek <jvanek@redhat.com>
d557d5
- initial, not buildable, sync with f19