File java-1_7_0-icedtea.spec of Package java-1_7_0-icedtea

#
# spec file for package java-1_7_0-icedtea (Version MACRO)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#



Name:           java-1_7_0-icedtea
%define         icedteaver 1.5
%define         openjdkver b24
%define         origin     icedtea
Version:        %{icedteaver}_%{openjdkver}
Release:        15
Summary:        Java runtime environment preview based on OpenJDK 7
Group:          Development/Libraries/Java
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
Url:            http://icedtea.classpath.org/
%define gcjbootstrap 0
%if %{gcjbootstrap}
BuildRequires:  ecj-bootstrap java-1_5_0-gcj-compat-devel
%else
BuildRequires:  java-1.7.0-icedtea java-1.7.0-icedtea-devel
%endif
Source0:        %{url}download/source/icedtea-%{icedteaver}.tar.bz2
%define		fedorazip openjdk-%{openjdkver}-fedora.zip
Source1:        %{fedorazip}
%define		accessmajorver 1.21
%define		accessver %{accessmajorver}.1
Source2:        http://ftp.gnome.org/pub/GNOME/sources/java-access-bridge/%{accessmajorver}/java-access-bridge-%{accessver}.tar.bz2
Source3:        http://cvs.fedoraproject.org/viewcvs/devel/java-1.7.0-icedtea/generate-fedora-zip.sh
Source4:        icedtea-new_zero_files
Patch0:         java-1.7.0-icedtea-win32.patch
Patch1:         java-1.7.0-icedtea-jhat.patch
Patch3:         execstack.patch
Patch4:         icedtea-openjdk_fixes.patch
Patch10:        icedtea-to_hg.patch
Patch15:        icedtea-ports.patch
Patch16:        icedtea-s390x.patch
Patch17:        java-enum_cell.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  ant ecj gcc-c++ xalan-j2
BuildRequires:  alsa-lib-devel cups-devel giflib-devel libjpeg-devel libpng-devel
BuildRequires:  openmotif-devel xorg-x11 xorg-x11-proto-devel
BuildRequires:  at-spi-devel gawk libbonobo-devel mercurial pkgconfig
BuildRequires:  fdupes glib2-devel gtk2-devel libffi-devel mozilla-xulrunner190-devel procps unzip zip
PreReq:         update-alternatives
Requires:       jpackage-utils >= 1.7.3
# Require /etc/pki/tls/certs/ca-bundle.crt instead of generating cacerts.
#Requires: openssl-cacerts
# Standard JPackage base provides.
Provides:       %(echo %name|sed s/_/./g)
%define		javaver 1.7.0
Provides:       jre-%{javaver}-%{origin} = %{version}-%{release}
Provides:       jre-%{origin} = %{version}-%{release}
Provides:       jre-%{javaver} = %{version}-%{release}
Provides:       java-%{javaver} = %{version}-%{release}
Provides:       jre = %{javaver}
Provides:       java-%{origin} = %{version}-%{release}
Provides:       java = %{javaver}
# Standard JPackage extensions provides.
Provides:       jndi = %{version}
Provides:       jndi-ldap = %{version}
Provides:       jndi-cos = %{version}
Provides:       jndi-rmi = %{version}
Provides:       jndi-dns = %{version}
Provides:       jaas = %{version}
Provides:       jsse = %{version}
Provides:       jce = %{version}
Provides:       jdbc-stdext = 3.0, jdbc-stdext = %{version}, java-sasl = %{version}
# Not yet building in ia64 and s390 and openjdk6 takes precendence over openjdk7 for this:
ExclusiveArch:  %ix86 x86_64
%ifarch x86_64 ppc64
%define archsuffix      .%{_arch}
%else
%define archsuffix      %{nil}
%endif
#
## Build-time and script-time only definitions:
#
#
# Standard JPackage directories and symbolic links:
#
%define sdkname         java-%{javaver}-%{origin}
%define archname        %{sdkname}%{archsuffix}
%define localpolicy     jce_%{javaver}_%{origin}_local_policy%{archsuffix}
%define uspolicy        jce_%{javaver}_%{origin}_us_export_policy%{archsuffix}
%define javaplugin      libjavaplugin.so%{archsuffix}
%define sdklnk          %{sdkname}
%define jrelnk          jre-%{javaver}-%{origin}
%define sdkdir          %{sdklnk}-%{version}
%define jredir          %{sdkdir}/jre
%define sdkbindir       %{_jvmdir}/%{sdklnk}/bin
%define jrebindir       %{_jvmdir}/%{jrelnk}/bin
%define jvmjardir       %{_jvmjardir}/%{sdkdir}
%define priority        7000
#
# Definitions of the output directories for %install, %files and scripts:
#
%define jvmjarlink      %{_jvmjardir}/%{sdklnk}
%ifarch x86_64
%define archinstall     amd64
%define archbuild       amd64
%else
%ifarch ppc ppc64 ia64 s390 s390x
%define archinstall     %{_arch}
%define archbuild       %{_arch}
%else
%define archinstall     i386
%define archbuild       i586
%endif
%endif
%define buildoutputdir  openjdk/build/linux-%{archbuild}
#
# For quicker turn-around cycles when developing updated install scripts:
#
%define do_prep         1
%define do_build        1
%define do_install      1
%define do_clean        1
%define mainfilelist    %{_builddir}/%{name}.files
%define demofilelist    %{_builddir}/%{name}-demo.files

%description
This package provides an early preview of the next Sun Java Runtime
Environment based on Sun's release of early sources for OpenJDK 7.

When OpenJDK 7 is released, it will implement the Java SE 7 Platform
Specification. Work on that specification is underway, but far from
final. Any APIs in the OpenJDK 7 implementation, whether new or old,
are therefore subject to minor adjustments, major revisions, or even
outright removal between now and the time that the Java SE 7 Platform
Specification is finalized.

For developing Java applications, it is therefore recommended to use a
Java Environment providing a released Java Specification such as Java
SE 6 which is provided by OpenJDK 6 or java-1_6_0-sun (Sun Java 6).

For information regarding Java on openSUSE, see:
http://en.opensuse.org/Java



%package devel
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
Summary:        The IcedTea Java runtime environment
Group:          Development/Libraries/Java
Requires:       %{name} = %{version}-%{release}
PreReq:         %{_sbindir}/update-alternatives
Provides:       %(echo %name|sed s/_/./g)-devel
Provides:       java-sdk-%{javaver}-%{origin} = %{version}
Provides:       java-sdk-%{javaver} = %{version}
Provides:       java-sdk-%{origin} = %{version}
Provides:       java-sdk = %{javaver}
Provides:       java-%{javaver}-devel = %{version}
Provides:       java-devel-%{origin} = %{version}
Provides:       java-devel = %{javaver}

%description devel
IcedTea is derived from OpenJDK, Sun's open-source implementation of
the Java SE platform. At this time the build from which IcedTea was
constructed corresponds to an early build of JDK 7. When JDK 7 is
complete it will implement the Java SE 7 Platform Specification. Work
on that specification is underway, but far from final. Any APIs in the
JDK 7 implementation, whether new or old, are therefore subject to
minor adjustments, major revisions, or even outright removal between
now and the time that the Java SE 7 Platform Specification is
finalized. Please take these facts into account before depending upon
IcedTea.



%package demo
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
Summary:        The IcedTea Java runtime environment
Group:          Development/Libraries/Java
Provides:       %(echo %name|sed s/_/./g)-demo
Requires:       %{name} = %{version}-%{release}

%description demo
IcedTea is derived from OpenJDK, Sun's open-source implementation of
the Java SE platform.

IcedTea was derived from early build of JDK 7. When JDK 7 is complete
it will implement the Java SE 7 Platform Specification. Work on that
specification is underway, but far from final. Any APIs in the JDK 7
implementation, whether new or old, are therefore subject to minor
adjustments, major revisions, or even outright removal between now and
the time that the Java SE 7 Platform Specification is finalized. Please
take these facts into account before depending upon IcedTea.



%package src
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
Summary:        The IcedTea Java runtime environment
Group:          Development/Libraries/Java
Requires:       %{name} = %{version}-%{release}

%description src
IcedTea is derived from OpenJDK, Sun's open-source implementation of
the Java SE platform. At this time the build from which IcedTea was
constructed corresponds to an early build of JDK 7. When JDK 7 is
complete it will implement the Java SE 7 Platform Specification. Work
on that specification is underway, but far from final. Any APIs in the
JDK 7 implementation, whether new or old, are therefore subject to
minor adjustments, major revisions, or even outright removal between
now and the time that the Java SE 7 Platform Specification is
finalized. Please take these facts into account before depending upon
IcedTea.



%package javadoc
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
Summary:        The IcedTea Java runtime environment
Group:          Development/Libraries/Java
PreReq:         %{_sbindir}/update-alternatives
Provides:       %(echo %name|sed s/_/./g)-javadoc
Provides:       java-javadoc = %{version}-%{release}
Provides:       java-%{javaver}-javadoc = %{version}-%{release}

%description javadoc
IcedTea is derived from OpenJDK, Sun's open-source implementation of
the Java SE platform. At this time the build from which IcedTea was
constructed corresponds to an early build of JDK 7. When JDK 7 is
complete it will implement the Java SE 7 Platform Specification. Work
on that specification is underway, but far from final. Any APIs in the
JDK 7 implementation, whether new or old, are therefore subject to
minor adjustments, major revisions, or even outright removal between
now and the time that the Java SE 7 Platform Specification is
finalized. Please take these facts into account before depending upon
IcedTea.



%package plugin
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
Summary:        The IcedTea Java runtime environment
Group:          Development/Libraries/Java
Requires:       %{name} = %{version}-%{release}
PreReq:         %{_sbindir}/update-alternatives
Provides:       %(echo %name|sed s/_/./g)-plugin
Provides:       java-plugin = %{javaver}
Provides:       java-%{javaver}-plugin = %{version}

%description plugin
IcedTea is derived from OpenJDK, Sun's open-source implementation of
the Java SE platform. At this time the build from which IcedTea was
constructed corresponds to an early build of JDK 7. When JDK 7 is
complete it will implement the Java SE 7 Platform Specification. Work
on that specification is underway, but far from final. Any APIs in the
JDK 7 implementation, whether new or old, are therefore subject to
minor adjustments, major revisions, or even outright removal between
now and the time that the Java SE 7 Platform Specification is
finalized. Please take these facts into account before depending upon
IcedTea.



%if %do_prep

%prep
%setup -q -n icedtea-%{icedteaver}
%setup -q -n icedtea-%{icedteaver} -T -D -a 2
%patch10 -p1
cp %{P:15} patches/icedtea-ports.patch
%patch16
xargs touch < %SOURCE4 # Needed for zero-asm builds (s390, ppc, ppc64)
aclocal
%endif
%if %do_build

%build
unset JAVA_HOME
%if %{gcjbootstrap}
%define icedteaopt --with-libgcj-jar=%_javadir/libgcj-4.3.jar --with-gcj-home=%_jvmdir/java-1.5.0-gcj
%else
%define icedteaopt --with-icedtea --with-icedtea-home=/etc/alternatives/java_sdk_icedtea
%endif
export LIBFFI_CFLAGS="-I/usr/include"
export LIBFFI_LIBS="-lffi"
./configure %{icedteaopt} --with-openjdk-src-zip=%{SOURCE1} --enable-netx-plugin
#
# configure extracts and links openjdk, now we can patch it:
#
patch_openjdk() {
  patch -l $* --input=%PATCH0
  patch -l $* --input=%PATCH1
  patch -l $* --input=%PATCH3
  patch -l $* --input=%PATCH4
  patch -l $* --input=%PATCH17
}
%if %{gcjbootstrap}
make stamps/patch-ecj.stamp; pushd openjdk-ecj; patch_openjdk -p1; popd
%endif
make stamps/patch.stamp
patch_openjdk -p0
# hack for binutils/linker issue
sed -i -e "s@-ljpeg@/%{_libdir}/libjpeg.so@" openjdk/jdk/make/sun/jpeg/Makefile
# Bootstrap icedtea fails sometimes claiming having not enough memory, retry once:
make || make
pushd java-access-bridge-%{accessver}
  export JAVA_HOME=$(pwd)/../%{buildoutputdir}/j2sdk-image
  export PATH=$JAVA_HOME/bin:$PATH
  ./configure
  make
  cp -a bridge/accessibility.properties $JAVA_HOME/jre/lib
  cp -a gnome-java-bridge.jar $JAVA_HOME/jre/lib/ext
popd
%endif
%if %do_install

%install
%define script 'use File::Spec; print File::Spec->abs2rel($ARGV[0], $ARGV[1])'
%define abs2rel %{__perl} -e %{script}
# skip /usr/lib/rpm/brp-check-bytecode-version:
export NO_BRP_CHECK_BYTECODE_VERSION=true
pushd %{buildoutputdir}/j2sdk-image
  # Assume that java-rmi.cgi is not used.
  # http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4418631
  rm -f bin/java-rmi.cgi
  # Install main files.
  install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
  cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
  install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
  cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
  # Install extension symlinks.
  install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir}
  pushd $RPM_BUILD_ROOT%{jvmjardir}
    RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir}/lib %{jvmjardir})
    ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar
    ln -sf $RELATIVE/jce.jar jce-%{version}.jar
    ln -sf $RELATIVE/rt.jar jndi-%{version}.jar
    ln -sf $RELATIVE/rt.jar jndi-ldap-%{version}.jar
    ln -sf $RELATIVE/rt.jar jndi-cos-%{version}.jar
    ln -sf $RELATIVE/rt.jar jndi-rmi-%{version}.jar
    ln -sf $RELATIVE/rt.jar jaas-%{version}.jar
    ln -sf $RELATIVE/rt.jar jdbc-stdext-%{version}.jar
    ln -sf jdbc-stdext-%{version}.jar jdbc-stdext-3.0.jar
    ln -sf $RELATIVE/rt.jar sasl-%{version}.jar
    for jar in *-%{version}.jar
    do
      if [ x%{version} != x%{javaver} ]
      then
        ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|-%{javaver}.jar|g")
      fi
      ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|.jar|g")
    done
  popd
  # Install JCE policy symlinks.
  install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{archname}/jce/vanilla
  for file in local_policy.jar US_export_policy.jar
  do
    mv -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/$file \
      $RPM_BUILD_ROOT%{_jvmprivdir}/%{archname}/jce/vanilla
    # Touch files for ghosts.
    touch $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/$file
  done
  # Install versionless 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.
  rm -f man/man1/javaws.1
  # Install man pages.
  install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
  for manpage in man/man1/*
  do
    # Convert man pages to UTF8 encoding.
    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)-%{sdkname}.1
  done
  # Install demos and samples.
  cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
  cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
popd
# Install Javadoc documentation.
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
mv %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{sdkname}
# Find JRE directories.
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \
  | grep -v jre/lib/security \
  | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
  > %{mainfilelist}
# Find JRE files.
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \
  | grep -v jre/lib/security \
  | grep -v gcjwebplugin.so \
  | sed 's|'$RPM_BUILD_ROOT'||' \
  >> %{mainfilelist}
# Find demo directories.
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample -type d \
  | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
  > %{demofilelist}
# Find non-documentation demo files.
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \
  -type f -o -type l | sort \
  | grep -v README \
  | sed 's|'$RPM_BUILD_ROOT'||' \
  >> %{demofilelist}
# Find documentation demo files.
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \
  -type f -o -type l | sort \
  | grep README \
  | sed 's|'$RPM_BUILD_ROOT'||' \
  | sed 's|^|%doc |' \
  >> %{demofilelist}
#symlink dupes
%if 0%suse_version > 1020
%fdupes %buildroot
%endif
%endif
%if %do_clean

%clean
rm -rf $RPM_BUILD_ROOT
%endif

%post
ext=.gz
update-alternatives \
  --install %{_bindir}/java java %{jrebindir}/java %{priority} \
  --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \
  --slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \
  --slave %{_bindir}/keytool keytool %{jrebindir}/keytool \
  --slave %{_bindir}/orbd orbd %{jrebindir}/orbd \
  --slave %{_bindir}/pack200 pack200 %{jrebindir}/pack200 \
  --slave %{_bindir}/policytool policytool %{jrebindir}/policytool \
  --slave %{_bindir}/rmid rmid %{jrebindir}/rmid \
  --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir}/rmiregistry \
  --slave %{_bindir}/servertool servertool %{jrebindir}/servertool \
  --slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \
  --slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \
  --slave %{_mandir}/man1/java.1$ext java.1$ext \
  %{_mandir}/man1/java-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \
  %{_mandir}/man1/keytool-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \
  %{_mandir}/man1/orbd-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \
  %{_mandir}/man1/pack200-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \
  %{_mandir}/man1/policytool-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \
  %{_mandir}/man1/rmid-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \
  %{_mandir}/man1/rmiregistry-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \
  %{_mandir}/man1/servertool-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \
  %{_mandir}/man1/tnameserv-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \
  %{_mandir}/man1/unpack200-%{sdkname}.1$ext
update-alternatives \
  --install %{_jvmdir}/jre-%{origin} \
  jre_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \
  --slave %{_jvmjardir}/jre-%{origin} \
  jre_%{origin}_exports %{_jvmjardir}/%{jrelnk}
update-alternatives \
  --install %{_jvmdir}/jre-%{javaver} \
  jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority} \
  --slave %{_jvmjardir}/jre-%{javaver} \
  jre_%{javaver}_exports %{_jvmjardir}/%{jrelnk}
update-alternatives \
  --install \
  %{_jvmdir}/%{jrelnk}/lib/security/local_policy.jar \
  %{localpolicy} \
  %{_jvmprivdir}/%{archname}/jce/vanilla/local_policy.jar \
  %{priority} \
  --slave \
  %{_jvmdir}/%{jrelnk}/lib/security/US_export_policy.jar \
  %{uspolicy} \
  %{_jvmprivdir}/%{archname}/jce/vanilla/US_export_policy.jar

%postun
if [ $1 -eq 0 ]
then
  if test -f /proc/sys/fs/binfmt_misc/jarexec
  then
    echo '-1' > /proc/sys/fs/binfmt_misc/jarexec
  fi
  update-alternatives --remove java %{jrebindir}/java
  update-alternatives --remove jre_%{origin} %{_jvmdir}/%{jrelnk}
  update-alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk}
  update-alternatives --remove \
    %{localpolicy} \
    %{_jvmprivdir}/%{archname}/jce/vanilla/local_policy.jar
fi

%pre devel
#
# In the devel packages of the openSUSE 11 Betas, jvmjarlink was a directory
# which is prevents intalling multible versions in parallel and causes certain
# important packages to fail, and in order to allow users and the build itself
# to update from these Beta rpms, we need to remove the old directory as rpm
# does not support migration from directories to links on update itself. We
# need to use paths relative to '/' if eg yast2 runs rpm with -r (w/o chroot).
# The first part of the check is true if we are running in update node:
#
# $1 is the number of packages with same name (including this installation),
# if it it's greater than 1 as needed below, we are updating an other rpm:
#
## Replace old directory by symlink, rpm can't do it, it says un update:
# "cpio: rename failed - Is a directory", so we need to help it:
#
if [ ${1:-0} -gt 1 -a -d .%{jvmjarlink} ]; then
        rm -rf .%{jvmjarlink}
	# Needed in case patchrpms are created from this package,
	# tested by patchrpmcheck at the end of each build in abuild:
        ln -sf %{sdkdir} .%{jvmjarlink}
fi

%post devel
ext=.gz
update-alternatives \
  --install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \
  --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdklnk} \
  --slave %{_jvmjardir}/java java_sdk_exports %{jvmjarlink} \
  --slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \
  --slave %{_bindir}/apt apt %{sdkbindir}/apt \
  --slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \
  --slave %{_bindir}/jar jar %{sdkbindir}/jar \
  --slave %{_bindir}/jarsigner jarsigner %{sdkbindir}/jarsigner \
  --slave %{_bindir}/javadoc javadoc %{sdkbindir}/javadoc \
  --slave %{_bindir}/javah javah %{sdkbindir}/javah \
  --slave %{_bindir}/javap javap %{sdkbindir}/javap \
  --slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \
  --slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \
  --slave %{_bindir}/jhat jhat %{sdkbindir}/jhat \
  --slave %{_bindir}/jinfo jinfo %{sdkbindir}/jinfo \
  --slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \
  --slave %{_bindir}/jps jps %{sdkbindir}/jps \
  --slave %{_bindir}/jrunscript jrunscript %{sdkbindir}/jrunscript \
  --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir}/jsadebugd \
  --slave %{_bindir}/jstack jstack %{sdkbindir}/jstack \
  --slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \
  --slave %{_bindir}/jstatd jstatd %{sdkbindir}/jstatd \
  --slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \
  --slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \
  --slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \
  --slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \
  --slave %{_bindir}/wsgen wsgen %{sdkbindir}/wsgen \
  --slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \
  --slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \
  --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \
  %{_mandir}/man1/appletviewer-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/apt.1$ext apt.1$ext \
  %{_mandir}/man1/apt-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \
  %{_mandir}/man1/extcheck-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jar.1$ext jar.1$ext \
  %{_mandir}/man1/jar-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \
  %{_mandir}/man1/jarsigner-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/javac.1$ext javac.1$ext \
  %{_mandir}/man1/javac-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \
  %{_mandir}/man1/javadoc-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/javah.1$ext javah.1$ext \
  %{_mandir}/man1/javah-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/javap.1$ext javap.1$ext \
  %{_mandir}/man1/javap-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \
  %{_mandir}/man1/jconsole-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \
  %{_mandir}/man1/jdb-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \
  %{_mandir}/man1/jhat-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \
  %{_mandir}/man1/jinfo-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \
  %{_mandir}/man1/jmap-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jps.1$ext jps.1$ext \
  %{_mandir}/man1/jps-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \
  %{_mandir}/man1/jrunscript-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \
  %{_mandir}/man1/jsadebugd-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \
  %{_mandir}/man1/jstack-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \
  %{_mandir}/man1/jstat-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \
  %{_mandir}/man1/jstatd-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \
  %{_mandir}/man1/native2ascii-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \
  %{_mandir}/man1/rmic-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \
  %{_mandir}/man1/schemagen-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \
  %{_mandir}/man1/serialver-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \
  %{_mandir}/man1/wsgen-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \
  %{_mandir}/man1/wsimport-%{sdkname}.1$ext \
  --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \
  %{_mandir}/man1/xjc-%{sdkname}.1$ext
update-alternatives \
  --install %{_jvmdir}/java-%{origin} \
  java_sdk_%{origin} %{_jvmdir}/%{sdklnk} %{priority} \
  --slave %{_jvmjardir}/java-%{origin} \
  java_sdk_%{origin}_exports %{jvmjarlink}
update-alternatives \
  --install %{_jvmdir}/java-%{javaver} \
  java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority} \
  --slave %{_jvmjardir}/java-%{javaver} \
  java_sdk_%{javaver}_exports %{jvmjarlink}

%postun devel
if [ $1 -eq 0 ]
then
  update-alternatives --remove javac %{sdkbindir}/javac
  update-alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdklnk}
  update-alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk}
fi

%post javadoc
update-alternatives \
  --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{sdkname}/api \
  %{priority}

%postun javadoc
if [ $1 -eq 0 ]
then
  update-alternatives --remove javadocdir %{_javadocdir}/%{sdkname}/api
fi

%post plugin
update-alternatives \
  --install %{_libdir}/browser-plugins/libjavaplugin.so %{javaplugin} \
  %{_jvmdir}/%{jrelnk}/lib/%{archinstall}/gcjwebplugin.so %{priority}

%postun plugin
if [ $1 -eq 0 ]
then
  update-alternatives --remove %{javaplugin} \
    %{_jvmdir}/%{jrelnk}/lib/%{archinstall}/gcjwebplugin.so
fi

%files -f %{mainfilelist}
%defattr(-,root,root,-)
%doc AUTHORS COPYING ChangeLog NEWS README
%doc openjdk/LICENSE openjdk/ASSEMBLY_EXCEPTION openjdk/THIRD_PARTY_README
%doc ./%{buildoutputdir}/j2sdk-image/jre/README.html
%dir %{_jvmdir}/%{sdkdir}
%{_jvmdir}/%{jrelnk}
%{_jvmjardir}/%{jrelnk}
%{_jvmprivdir}/*
%{jvmjardir}
%dir %{_jvmdir}/%{jredir}/lib/security
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/cacerts
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
%ghost %{_jvmdir}/%{jredir}/lib/security/local_policy.jar
%ghost %{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar
%{_mandir}/man1/java-%{sdkname}.1*
%{_mandir}/man1/keytool-%{sdkname}.1*
%{_mandir}/man1/orbd-%{sdkname}.1*
%{_mandir}/man1/pack200-%{sdkname}.1*
%{_mandir}/man1/policytool-%{sdkname}.1*
%{_mandir}/man1/rmid-%{sdkname}.1*
%{_mandir}/man1/rmiregistry-%{sdkname}.1*
%{_mandir}/man1/servertool-%{sdkname}.1*
%{_mandir}/man1/tnameserv-%{sdkname}.1*
%{_mandir}/man1/unpack200-%{sdkname}.1*

%files devel
%defattr(-,root,root,-)
%doc openjdk/jdk/LICENSE openjdk/jdk/ASSEMBLY_EXCEPTION openjdk/jdk/THIRD_PARTY_README
%doc ./%{buildoutputdir}/j2sdk-image/README.html
%dir %{_jvmdir}/%{sdkdir}/bin
%dir %{_jvmdir}/%{sdkdir}/include
%dir %{_jvmdir}/%{sdkdir}/lib
%{_jvmdir}/%{sdkdir}/bin/*
%{_jvmdir}/%{sdkdir}/include/*
%{_jvmdir}/%{sdkdir}/lib/*
%{_jvmdir}/%{sdklnk}
%{jvmjarlink}
%{_mandir}/man1/appletviewer-%{sdkname}.1*
%{_mandir}/man1/apt-%{sdkname}.1*
%{_mandir}/man1/extcheck-%{sdkname}.1*
%{_mandir}/man1/idlj-%{sdkname}.1*
%{_mandir}/man1/jar-%{sdkname}.1*
%{_mandir}/man1/jarsigner-%{sdkname}.1*
%{_mandir}/man1/javac-%{sdkname}.1*
%{_mandir}/man1/javadoc-%{sdkname}.1*
%{_mandir}/man1/javah-%{sdkname}.1*
%{_mandir}/man1/javap-%{sdkname}.1*
%{_mandir}/man1/jconsole-%{sdkname}.1*
%{_mandir}/man1/jdb-%{sdkname}.1*
%{_mandir}/man1/jhat-%{sdkname}.1*
%{_mandir}/man1/jinfo-%{sdkname}.1*
%{_mandir}/man1/jmap-%{sdkname}.1*
%{_mandir}/man1/jps-%{sdkname}.1*
%{_mandir}/man1/jrunscript-%{sdkname}.1*
%{_mandir}/man1/jsadebugd-%{sdkname}.1*
%{_mandir}/man1/jstack-%{sdkname}.1*
%{_mandir}/man1/jstat-%{sdkname}.1*
%{_mandir}/man1/jstatd-%{sdkname}.1*
%{_mandir}/man1/native2ascii-%{sdkname}.1*
%{_mandir}/man1/rmic-%{sdkname}.1*
%{_mandir}/man1/schemagen-%{sdkname}.1*
%{_mandir}/man1/serialver-%{sdkname}.1*
%{_mandir}/man1/wsgen-%{sdkname}.1*
%{_mandir}/man1/wsimport-%{sdkname}.1*
%{_mandir}/man1/xjc-%{sdkname}.1*

%files demo -f %{demofilelist}
%defattr(-,root,root,-)

%files src
%defattr(-,root,root,-)
%{_jvmdir}/%{sdkdir}/src.zip
#doc mauve_tests
#doc mauve-%{mauvedate}/mauve_output

%files javadoc
%defattr(-,root,root,-)
%doc %{_javadocdir}/%{sdkname}

%files plugin
%defattr(-,root,root,-)
%{_jvmdir}/%{jredir}/lib/%{archinstall}/gcjwebplugin.so

%changelog
* Fri Nov 21 2008 ro@suse.de
- update check-build.sh
* Wed Nov 12 2008 ro@suse.de
- use xulrunner190 instead of xulrunner181
* Thu Oct 30 2008 ro@suse.de
- reduce list of architectures for the moment
  (the used one is java-1_6_0-openjdk anyway)
* Fri Sep 26 2008 mvyskocil@suse.cz
- removed an ulimit usage.
* Thu Jul 31 2008 ro@suse.de
- fix build on i386 (patch from gcc bug)
* Sun Jun 08 2008 ro@suse.de
- changed check_build.sh
* Thu May 29 2008 bk@suse.de
- Raise ulimit for x86_64 to and add a second make attempt (handling
  races in the unstable icedtea JVM) to increase build yield for rpms
* Mon May 26 2008 bk@suse.de
- Fix typo in the %%{jvmjarlink} update (also needed to fix the build)
- Fix %%pre script for updating from older packages with wrong jvmjardir
- spec file cleanup (group definitions, improve macro usage and %%files)
* Tue May 20 2008 bk@suse.de
- decrease the update_alternatives priority of this package to 7000
  because it does not provide the future relesed Java 7 API, so it
  should be the last candidate to become the default JDK to be used,
  especially the upcoming java-1_6_0-openjdk needs to prevail over it!
- Complete migration of %%{_jvmjardir}/%%{sdklnk} to symlink (#bnc 392494)
- add checks for the amount of virtual memory available for build
* Sun May 18 2008 aj@suse.de
- Silence gcc warning about missing return value.
* Wed May 14 2008 anosek@suse.cz
- added link into jvm-exports directory (bnc#388578)
- added a missing Requires: jpackage-utils
- fixed  Icedtea support for signed applets missing (bnc#384684)
  - added --enable-netx-plugin parameter to configure
* Wed Mar 12 2008 ro@suse.de
- fix error found by rpmlint: origin used before define in specfile
* Mon Mar 03 2008 ro@suse.de
- update icedtea tarball to current mercurial for ia64 and s390
  and s390x support
* Fri Feb 29 2008 ro@suse.de
- fix build (binutils slightly changed behaviour)
* Fri Feb 08 2008 bk@suse.de
- change all uses of "1_7_0" in jvm/jre install paths to "1.7.0"
* Thu Feb 07 2008 adrian@suse.de
- use PreReq to package instead of files, to avoid problems in OBS
  and installer tools
* Tue Feb 05 2008 bk@suse.de
- use %%_libdir, fix stringcompare warning and cleanup spec file
* Fri Feb 01 2008 bkl@suse.de
- initial version: IcedTea 1.5 with JDK 7 build 24
openSUSE Build Service is sponsored by