File java-1_6_0-openjdk.spec of Package java-1_6_0-openjdk

#
# spec file for package java-1_6_0-openjdk (Version 0)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define origin             openjdk
%define	javaver      1.6.0

Name:           java-1_6_0-openjdk
%define obsoletes java-1_7_0-icedtea
# As 1.6.0 is stable, obsolete java-1_7_0-icedtea in openSUSE 11.0 and earlier:
%if 0%suse_version <= 1100
Obsoletes:      %obsoletes
%endif
%define         icedteaver 1.2
%define         openjdkver b09
Version:        %{icedteaver}_%{openjdkver}
Release:        1
Summary:        Java runtime environment based on OpenJDK 6 and IcedTea 6
Group:          Development/Libraries/Java
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
Url:            http://icedtea.classpath.org/
%if 0%suse_version <= 1030
%define                                                                    ext bz2
%else
%define                                                                    ext lzma
%endif
Source0:        icedtea6-1.2-7a015d5c9cb132abefb7f500852b3fef2ba7615d.tar.%ext
Source1:        openjdk-6-src-b09-11_apr_2008-fedora.tar.%ext
%define		accessmajorver 1.22
%define		accessver %{accessmajorver}.0
Source2:        http://ftp.gnome.org/pub/GNOME/sources/java-access-bridge/%{accessmajorver}/java-access-bridge-%{accessver}.tar.%ext
Source3:        http://cvs.fedoraproject.org/viewcvs/devel/java-1.7.0-icedtea/generate-fedora-zip.sh
Patch0:         java-1.6.0-openjdk-makefile.patch
Patch1:         java-1.6.0-openjdk-optflags.patch
Patch2:         java-1.6.0-openjdk-jhat.patch
Patch3:         openjdk-6-src-b09-execstack.patch 
Patch4:         openjdk-6-src-b09-gcc4-warningfixes.patch
Patch5:         openjdk-6-src-b09-s390+s390x.patch
Patch6:         openjdk-6-src-b09-s390-size_t-fixes.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
# Bootstrapping using gcj doesn't work in openSUSE so far, OpenJDK needs java-1.6:
%define gcjbootstrap 0
%ifarch ia64 s390
%define openjdk_bootstrap 1
%else
%define openjdk_bootstrap 0
%endif
#
# It may be possibe to bootstrap OpenJDK using a JDK from another architecure,
# as long as it can run on the target archtecture using kernel support or
# qemu, so BuildRequires are divided in those which need to be provided by
# the target archtecture for compilation (and linking) and tools like the JDK.
#
# Composing the build environment works by copying the target buildroot over
# the helper-buildroot which needs to provide the bootstrap JDK inside the mix:
#
# ifarch tools_arch
%if %{gcjbootstrap}
BuildRequires:  ecj-bootstrap java-1_5_0-gcj-compat-devel
%else
%if %{openjdk_bootstrap}
BuildRequires:  java-1_6_0-openjdk java-1_6_0-openjdk-devel
%else
BuildRequires:  java-1_7_0-icedtea java-1_7_0-icedtea-devel
%endif
%endif
PreReq:         update-alternatives
# endif
# These are just tools, they can be provided from any supported architecture.
# ifarch any_running_arch
BuildRequires:  ant fdupes gawk mercurial pkgconfig procps unzip wget xalan-j2 zip
# endif
# These must be provided by from the target architecture for native build:
#ifarch target_arch
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 libbonobo-devel
BuildRequires:  gcc-c++ gecko-sdk glib2-devel gtk2-devel libffi-devel
# endif
# 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)
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}

%description
This Java 6 compatible Java Runtime Environment is based on OpenJDK 6
and IcedTea 6.

It contains a Java virtual machine, runtime class libraries, and an
Java application launcher that are necessary to run programs written in
the Java progamming language. It is not a development environment and
does not contain development tools such as compilers and debuggers. For
development tools, see the java-1_6_0-openjdk-devel package.

The Java 6 Runtime Environment is intended for software developers and
vendors who wish to redistribute their applications.



%package devel
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
# As 1.6.0 is stable, obsolete java-1_7_0-icedtea in openSUSE 11.0 and earlier:
%if 0%suse_version <= 1100
Obsoletes:      %obsoletes-devel
%endif
Summary:        Java SDK based on OpenJDK 6 and IcedTea 6
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
This Java 6 compatible Java SDK is based on OpenJDK 6 and IcedTea 6.

The Java 6 SDK is a development environment for building applications,
applets, and components using the Java programming language.

The Java 6 SDK includes tools useful for developing and testing
programs written in the Java programming language and running on the
Java platform. These tools are designed to be used from the command
line. Except for the appletviewer, these tools do not provide a
graphical user interface.



%package demo
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
# As 1.6.0 is stable, obsolete java-1_7_0-icedtea in openSUSE 11.0 and earlier:
%if 0%suse_version <= 1100
Obsoletes:      %obsoletes-demo
%endif
Summary:        Java runtime environment based on OpenJDK 6 and IcedTea 6
Group:          Development/Libraries/Java
Provides:       %(echo %name|sed s/_/./g)-demo
Requires:       %{name}-devel = %{version}-%{release}

%description demo
This Java 6 compatible Java Runtime Environment is based on OpenJDK 6
and IcedTea 6.

It contains a Java virtual machine, runtime class libraries, and an
Java application launcher that are necessary to run programs written in
the Java progamming language. It is not a development environment and
does not contain development tools such as compilers and debuggers. For
development tools, see the java-1_6_0-openjdk-devel package.

The Java 6 Runtime Environment is intended for software developers and
vendors who wish to redistribute their applications.



%package src
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
# As 1.6.0 is stable, obsolete java-1_7_0-icedtea in openSUSE 11.0 and earlier:
%if 0%suse_version <= 1100
Obsoletes:      %obsoletes-src
%endif
Summary:        OpenJDK 6 Java class sources for developers
Group:          Development/Libraries/Java
Requires:       %{name}-devel = %{version}-%{release}

%description src
This package provides Java Runtime librarcy class sources of OpenJDK 6
and is intented for developers which may need them for investigating
problems.



%package javadoc
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
# As 1.6.0 is stable, obsolete java-1_7_0-icedtea in openSUSE 11.0 and earlier:
%if 0%suse_version <= 1100
Obsoletes:      %obsoletes-javadoc
%endif
Summary:        Documentation of the Java API of OpenJDK 6
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
This package provides documentation of the API provided by OpenJDK 6
and is intented for Java developers which need to which API features
are provided by OpenJDK 6.



%package plugin
License:        GPL v2 only; - with the OpenJDK Assembly Exception and the GNU Classpath Exception
# As 1.6.0 is stable, obsolete java-1_7_0-icedtea in openSUSE 11.0 and earlier:
%if 0%suse_version <= 1100
Obsoletes:      %obsoletes-plugin
%endif
Summary:        Java runtime environment based on OpenJDK 6 and IcedTea 6
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
This Java 6 compatible Java Runtime Environment is based on OpenJDK 6
and IcedTea 6.

It contains a Java virtual machine, runtime class libraries, and an
Java application launcher that are necessary to run programs written in
the Java progamming language. It is not a development environment and
does not contain development tools such as compilers and debuggers. For
development tools, see the java-1_6_0-openjdk-devel package.

The Java 6 Runtime Environment is intended for software developers and
vendors who wish to redistribute their applications.



%prep
%ifarch x86_64 ppc64
%define archsuffix      .%{_arch}
%else
%define archsuffix      %{nil}
%endif
# 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}/%{sdklnk}
%define priority        17000
%setup -q -n icedtea6-%{icedteaver}
%setup -q -n icedtea6-%{icedteaver} -T -D -a 1
mkdir stamps;touch stamps/download.stamp
touch stamps/extract.stamp
%setup -q -n icedtea6-%{icedteaver} -T -D -a 2
%patch0

%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
%if %{openjdk_bootstrap}
%define icedteaopt --with-openjdk --with-openjdk-home=/etc/alternatives/java_sdk
%else
%define icedteaopt --with-icedtea --with-icedtea-home=/etc/alternatives/java_sdk
%endif
%endif
export LIBFFI_CFLAGS="-I/usr/include"
export LIBFFI_LIBS="-lffi"
./configure %{icedteaopt}
#
# configure extracts and links openjdk, now we can patch it:
#
patch_openjdk() {
  patch -l $* --input=%PATCH2
  patch -l $* --input=%PATCH3
  patch -l $* --input=%PATCH4
  # IcedTea's openjdk patching is quite a mess, this patch should be added as
  # an IcedTea openjdk patch which is applied during the IcedTea patch orgy:
%ifarch s390 s390x # Contains a special makefile test which is only for s390(x) for now:
  patch -l $* --input=%PATCH5
%endif
%ifarch s390 # Only needed on s390 for now, could break on other archictures in theory, for review:
  patch -l $* --input=%PATCH6
%endif
}
%if %{gcjbootstrap}
make patch-ecj; pushd openjdk-ecj; patch_openjdk -p1; popd
%endif
make patch
patch_openjdk -p0
# hack for binutils/linker issue
sed -i -e "s@-ljpeg@/%{_libdir}/libjpeg.so@" openjdk/jdk/make/sun/jpeg/Makefile
# This should catch the remaining places were we used default march/mtune so far:
sed -i.orig 's/CFLAGS_REQUIRED_i586.*/& -march=i586 -mtune=i686/' openjdk/corba/make/common/Defs-linux.gmk
# Java likes to have the frame pointer to make it easy to walk the stack,
# see the comment in openjdk/corba/make/common/Defs-linux.gmk, and gcc
# complains about strict-aliasing bugs (-fno-strict-aliasing is used by Intel arch targes too):
sed -i 's/CFLAGS_REQUIRED.*ZERO_ARCHFLAG)/& -fno-strict-aliasing -fno-omit-frame-pointer/' openjdk/corba/make/common/Defs-linux.gmk
make
#
# Determine output directories of the openjdk build for later:
#
%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/control/build/linux-%{archbuild}
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

%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 |' \
  > %{name}.files
# 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'||' \
  >> %{name}.files
# Find demo directories.
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \
  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample -type d \
  | sed 's|'$RPM_BUILD_ROOT'|%dir |' \
  > %{name}-demo.files
# 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'||' \
  >> %{name}-demo.files
# 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 |' \
  >> %{name}-demo.files
#symlink dupes
%if 0%suse_version > 1020
%fdupes %buildroot
%endif

%clean
rm -rf $RPM_BUILD_ROOT

%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

%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 %{_jvmjardir}/%{sdklnk} \
  --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 %{_jvmjardir}/%{sdklnk}
update-alternatives \
  --install %{_jvmdir}/java-%{javaver} \
  java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority} \
  --slave %{_jvmjardir}/java-%{javaver} \
  java_sdk_%{javaver}_exports %{_jvmjardir}/%{sdklnk}

%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 %{name}.files
%defattr(-,root,root,-)
%doc %{buildoutputdir}/j2sdk-image/jre/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}/j2sdk-image/jre/LICENSE
%doc %{buildoutputdir}/j2sdk-image/jre/README.html
%doc %{buildoutputdir}/j2sdk-image/jre/THIRD_PARTY_README
%doc AUTHORS COPYING ChangeLog NEWS README
%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,-)
%exclude %{buildoutputdir}/j2sdk-image/ASSEMBLY_EXCEPTION
%exclude %{buildoutputdir}/j2sdk-image/LICENSE
%exclude %{buildoutputdir}/j2sdk-image/README.html
%exclude %{buildoutputdir}/j2sdk-image/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir}/bin
%dir %{_jvmdir}/%{sdkdir}/include
%dir %{_jvmdir}/%{sdkdir}/lib
%{_jvmdir}/%{sdkdir}/bin/*
%{_jvmdir}/%{sdkdir}/include/*
%{_jvmdir}/%{sdkdir}/lib/*
%{_jvmdir}/%{sdklnk}
%{_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 %{name}-demo.files
%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
* Tue Apr 22 2008 bk@suse.de
- Initial version based on java-1_7_0-icedtea, but it's a lot smaller
openSUSE Build Service is sponsored by