Sophie

Sophie

distrib > Altlinux > 4.1 > i586 > by-pkgid > 584a4e6d9f240d1a5b86ef4861626e5a > files > 3

java-1.4.2-blackdown-1.4.2.03-alt6.src.rpm

#         --- note from viy@altlinux: ---
# as an effort to build compatible portable java environment,
# the JPackage Project was chosen as a new base of ALT java subsystem.
# JPackage specs have the following disclaimer:
# ====================================================
# Copyright (c) 2000-2007, JPackage Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the
#    distribution.
# 3. Neither the name of the JPackage Project nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
%define major 1.4
%define minor 2
%define origin          blackdown
%define priority        1421
%define javaver         %major.%minor
%define buildver        03

%define jppname         java-%{javaver}-%{origin}
%define javaws_ver      %{javaver}

%define toplevel_dir    j2sdk%{javaver}
%define distversion 1.4.2-%{buildver}

%define altname  j2se%major-%origin
%define label -%{jppname}

%define sdklnk          java-%{javaver}-%{origin}
%define jrelnk          jre-%{javaver}-%{origin}
%define sdkdir          %{jppname}-%{version}
%define jredir          %{sdkdir}/jre
%define sdkbindir       %{_jvmdir}/%{sdklnk}/bin
%define sdklibdir       %{_jvmdir}/%{sdklnk}/lib
%define jrebindir       %{_jvmdir}/%{jrelnk}/bin
%define jvmjardir       %{_jvmjardir}/%{jppname}-%{version}

%define cgibindir       %{_var}/www/cgi-bin
# --- jpackage compatibility stuff ends here ---

%def_disable fonts
%ifarch x86_64
%def_enable javaws
%def_enable moz_plugin
%else
%def_enable javaws
%def_enable moz_plugin
%endif

%ifarch x86_64
%define libarch	    amd64
%else
%define libarch	    i386
%endif

#%define fontdir		%_datadir/fonts/ttf/j2se-%origin
%define fontdir		%_datadir/fonts/ttf/j2se-sun

%define mozplugindir %{_jvmdir}/%{jredir}/plugin/%libarch/mozilla

# --- jpackage compatibility stuff starts here ---
#if jpackage-utils stuff (to remove ufter upgrade)
%define _jvmdir	%{_prefix}/lib/jvm
%define _jvmjardir	%{_prefix}/lib/jvm-exports
%define _jvmprivdir	%{_prefix}/lib/jvm-private
%define _javadir        %{_datadir}/java
%define _jnidir        %{_prefix}/lib/java
#else
#Requires:       jpackage-utils >= 0:1.5.38
#BuildRequires:  jpackage-utils >= 0:1.5.38
Conflicts:      kaffe
#endif
#-----

Name:           %jppname
Version:        %{javaver}.%{buildver}
Release:        alt6
Epoch:          0
Summary:        Java 2 Runtime Environment, Standard Edition
License:        Sun Binary Code License
Group:          System/Base
URL:            http://www.blackdown.org/java-linux.html

# --- jpackage compatibility stuff starts here ---
Provides:       jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
Provides:       jre-%{origin} = %{epoch}:%{version}-%{release}
Provides:       jre-%{javaver}, java-%{javaver}, jre = %{epoch}:%{javaver}
Provides:       java-%{origin} = %{epoch}:%{version}-%{release}
Provides:       java = %{epoch}:%{javaver}
Provides:       jndi = %{epoch}:%{version}, jndi-ldap = %{epoch}:%{version}
Provides:       jndi-cos = %{epoch}:%{version}, jndi-rmi = %{epoch}:%{version}
Provides:       jndi-dns = %{epoch}:%{version}
Provides:       jaas = %{epoch}:%{version}
Provides:       jsse = %{epoch}:%{version}
Provides:       jce = %{epoch}:%{version}
Provides:       jdbc-stdext = %{epoch}:3.0, jdbc-stdext = %{epoch}:%{version}
#Provides:       java-sasl = %{epoch}:%{version}
# --- jpackage compatibility stuff ends here ---

Provides: j2se = %javaver
Provides: jre = %javaver, java2 = %javaver
Obsoletes: %altname


#Requires: fonts-ttf-j2se-%origin >= %version-%release
Requires: fonts-ttf-j2se-sun >= %version
Requires: java-common
Requires: /proc
Requires(post,preun): alternatives >= 0.2.0

Source0: j2sdk-%distversion-linux-i586.bin
Source1: j2sdk-%distversion-linux-amd64.bin

ExclusiveArch: i586 x86_64

%ifarch x86_64
%define jdksource %SOURCE1
%else
%define jdksource %SOURCE0
%endif

# jpackage use perl -p -i -e, we use subst
# BuildPreReq: perl

BuildPreReq: browser-plugins-npapi-devel
BuildRequires: libalsa
BuildRequires: libunixODBC
#BuildRequires: xorg-x11-devel
BuildRequires: libX11 libXext libXi libXp libXt libXtst libSM libICE


%set_compress_method none
%set_verify_elf_method none
############## altlinux 3.0 compatibility stuff ##############
#add_findprov_lib_path %{_jvmdir}/%{jredir}/lib/%libarch
%ifnarch x86_64
#add_findprov_lib_path %{_jvmdir}/%{jredir}/lib/%libarch/client
%endif
# it is needed for those apps which links with libjvm.so
%add_findprov_lib_path %{_jvmdir}/%{jredir}/lib/%libarch/server
#add_findprov_lib_path %{_jvmdir}/%{jredir}/lib/%libarch/native_threads
#add_findprov_lib_path %{_jvmdir}/%{jredir}/lib/%libarch/headless
#add_findprov_lib_path %{_jvmdir}/%{jredir}/lib/%libarch/motif21
#add_findprov_lib_path %{_jvmdir}/%{jredir}/lib/%libarch/xawt
##Provides: libmawt.so
##Provides: libmawt.so(SUNWprivate_1.1)
##Provides: libmlib_image.so(VER_1.1)
#################################################################

%description
This package contains the Java Runtime Environment for %{name}.
Install this package if you need to run Java applications.

The Java Runtime Environment contains the Java virtual machine, 
runtime class libraries, and Java application launcher that are 
necessary to run programs written in the Java programming language. 
It is not a development environment and does not contain development 
tools such as compilers or debuggers.  For development tools, see the 
Java SDK, Standard Edition.

%package        devel
Summary:        Java 2 SDK, Standard Edition
Group:          Development/Java
Provides: j2se-devel = %javaver
Provides: /usr/bin/javac
Provides: jdk = %javaver, j2sdk = %javaver
Requires: %name = %version-%release
Requires(post,preun): alternatives >= 0.2.0
Obsoletes: %altname-devel

# --- jpackage compatibility stuff starts here ---
Provides:       java-sdk-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
Provides:       java-sdk-%{origin} = %{epoch}:%{version}-%{release}
Provides:       java-sdk-%{javaver}, java-sdk = %{epoch}:%{javaver}
Provides:       java-devel-%{origin} = %{epoch}:%{version}-%{release}
Provides:       java-%{javaver}-devel, java-devel = %{epoch}:%{javaver}
# --- jpackage compatibility stuff ends here ---

%description    devel
The Java(tm) Development Kit (JDK(tm)) contains the software and tools that
developers need to compile, debug, and run applets and applications
written using the Java programming language.

Install this package if you need to develop and build Java applications.

%package source
Summary: Source files for the Java 2 SDK
Group: Development/Java
Obsoletes: %altname-source

%description source
Java programming language source files for all classes that make up
the Java 2 core API.

%package        demo
Summary:        Demo applets and programs for the Java 2 SDK
Group: Development/Java
AutoReqProv: no
Obsoletes:      %altname-demo

%description    demo
This package contains demonstration files for %{name}.

These include examples, with source code, of programming for the Java 
platform that use Swing and other Java Foundation Classes, and the Java
Platform Debugger Architecture.

%if_enabled moz_plugin
%package -n mozilla-plugin-%altname
Summary: Java Plug-In for Mozilla family browsers
Group: Networking/WWW
Provides: java2-plugin-mozilla = %javaver
Provides: %altname-plugin-mozilla
Obsoletes: %altname-plugin-mozilla
Requires: %name = %version-%release
Requires: browser-plugins-npapi
Requires(post,preun): alternatives >= 0.2.0
# --- jpackage compatibility stuff starts here ---
Provides:       java-plugin = %{epoch}:%{javaver}, java-%{javaver}-plugin = %{epoch}:%{version}
Conflicts:      java-%{javaver}-ibm-plugin, java-%{javaver}-blackdown-plugin
Conflicts:      java-%{javaver}-bea-plugin
Obsoletes:      java-1.3.1-plugin, java-1.4.0-plugin, java-1.4.1-plugin
# --- jpackage compatibility stuff ends here ---

%description -n mozilla-plugin-%altname
This package contains Java(TM) 2 Plug-In for Mozilla family web browsers.
%endif # enabled moz_plugin

%package        alsa
Summary:        ALSA support for %{name}
Group:          Development/Java
Requires:       %{name} = %{version}-%{release}
Obsoletes:      %altname-alsa

%description    alsa
This package contains Advanced Linux Sound Architecture (ALSA) support
libraries for %{name}.

%package        jdbc
Summary:        Native library for JDBC support in Java
Group:          Development/Databases
Provides:       j2se-jdbc = %javaver
Requires:       %name = %version-%release
Obsoletes:      %altname-jdbc

%description    jdbc
This package contains the JDBC/ODBC bridge driver for %{name}.

%if_enabled javaws
%package javaws
Summary: Java Web Start
Group: Networking/Other
Requires: %name = %version-%release
Requires(post,preun): alternatives >= 0.2.0
# --- jpackage compatibility stuff starts here ---
Provides:       javaws = %{epoch}:%{javaws_ver}
Obsoletes:      javaws-menu
# --- jpackage compatibility stuff ends here ---
Obsoletes:      %altname-javaws

%description javaws
Java Web Start is a deployment solution for Java-technology-based
applications. It is the plumbing between the computer and the Internet
that allows the user to launch and manage applications right off the
Web. Java Web Start provides easy, one-click activation of
applications, and guarantees that you are always running the latest
version of the application, eliminating complicated installation or
upgrade procedures.

This package provides the Java Web Start installation that is bundled
with %{name} J2SE Runtime Environment.
%endif # enabled javaws

%if_enabled fonts
%package -n fonts-ttf-%jppname
Summary: TrueType fonts for Java 2 Standard Edition
Group: System/Fonts/True type
BuildRequires: mkfontscale
Requires: fontconfig
Provides: java_%origin-fonts = %version-%release
Obsoletes: j2se-%origin-fonts
Obsoletes: %altname-fonts
# --- jpackage compatibility stuff starts here ---
Provides:       java-fonts = %{epoch}:%{javaver}, java-%{javaver}-fonts
Conflicts:      java-%{javaver}-ibm-fonts, java-%{javaver}-blackdown-fonts
Conflicts:      java-%{javaver}-bea-fonts
Obsoletes:      java-1.3.1-fonts, java-1.4.0-fonts, java-1.4.1-fonts
# --- jpackage compatibility stuff ends here ---

%description -n fonts-ttf-%jppname
This package contains the TrueType fonts for %{origin} JVMs.
%endif	# enabled fonts

%prep
MORE=10000 sh %jdksource <<EOF
yes
EOF
%setup -T -D -n %{toplevel_dir}
# fix perms
chmod -R u+w *

echo java >j2se-buildreq-substitute
echo java-devel >j2se-devel-buildreq-substitute

cat >README.alt <<EOF
The Java 2 Runtime Environment and SDK, Standard Edition are distributed
within this and related packages as shown below:

%name		- Java 2 Runtime Environment, Standard Edition
			  (with notable omissions listed below).
%name-devel	- Java 2 SDK, Standard Edition.
%name-source	- Java 2 Standard Edition API source files.
%name-demo	- Java 2 SDK demo applets and programs.
%name-jdbc	- JDBC provider library using ODBC.
			  This library was excluded from the
			  %name package due to outstanding dependencies.
%name-javaws	- Java Web Start software that is bundled with
			  Java 2 Runtime Environment, Standard Edition
mozilla-plugin-%altname	- Java 2 plug-in for Mozilla family browsers
fonts-ttf-%jppname		- The TrueType fonts in %fontdir
			  shared between various installations of
			  the Java 2 Runtime Environment.

See the README, LICENSE, COPYRIGHT, and THIRDPARTYLICENSEREADME.txt files
for copyright information, terms of use and redistribution covering contents
of these packages.

The packages should fullfill (most of) the requirements of JPackage 
policy (www.jpackage.org). There are some historical minor differences
which should not break the compatibility.
EOF
# # # TODO: # # # # # # # # # # # # #
# # current difference with jpackage
# man pages:
# pack200/unpack200 moved from devel -- good: that's a bug in jpackage
# devel: (no /var/www/cgi-bin...), 
# demo: 
# are in lib, should be in share/shortlink
# fonts:
# alt specific font links
# TODO(?): spring off the x11-related libraries

%if_enabled fonts
mkdir fontdoc
cat > fontdoc/README.alt <<EOF
The fonts contained in this package are part of the
Java 2 Runtime Environment, Standard Edition (J2SE).
This package is required by packages containing various versions
of J2SE.

See the LICENSE, COPYRIGHT, and THIRDPARTYLICENSEREADME.txt files
for copyright information, terms of use and redistribution covering contents
of this package.
EOF
%endif	# enabled fonts

%install
# .systemPrefs removed as they are not packaged in jpackage
#cp -a jre/.systemPrefs %buildroot%{_jvmdir}/%{jredir}
# ------------------------------------------

### jpackage ###

%if_enabled moz_plugin
# fix up ControlPanel APPHOME and bin locations
%__subst 's|APPHOME=.*|APPHOME=%{_jvmdir}/%{jredir}|' jre/bin/ControlPanel
%__subst 's|/usr/bin/||g' jre/bin/ControlPanel

# fix up (create new) HtmlConverter
cat > bin/HtmlConverter << EOF
%{jrebindir}/java -jar %{sdklibdir}/htmlconverter.jar $*
EOF

%ifnarch x86_64
# fix up java-rmi.cgi PATH
%__subst 's|PATH=.*|PATH=%{jrebindir}|' bin/java-rmi.cgi

# # install java-rmi-cgi
# install -D -m 755 bin/java-rmi.cgi $RPM_BUILD_ROOT%{cgibindir}/java-rmi-%{version}.cgi
%endif
%endif

# 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}

# extensions handling
install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir}
pushd $RPM_BUILD_ROOT%{jvmjardir}
   ln -s %{_jvmdir}/%{jredir}/lib/jsse.jar jsse-%{version}.jar
   ln -s %{_jvmdir}/%{jredir}/lib/jce.jar jce-%{version}.jar
   ln -s %{_jvmdir}/%{jredir}/lib/rt.jar jndi-%{version}.jar
   ln -s %{_jvmdir}/%{jredir}/lib/rt.jar jndi-ldap-%{version}.jar
   ln -s %{_jvmdir}/%{jredir}/lib/rt.jar jndi-cos-%{version}.jar
   ln -s %{_jvmdir}/%{jredir}/lib/rt.jar jndi-rmi-%{version}.jar
   ln -s %{_jvmdir}/%{jredir}/lib/rt.jar jaas-%{version}.jar
   ln -s %{_jvmdir}/%{jredir}/lib/rt.jar jdbc-stdext-%{version}.jar
   ln -s jdbc-stdext-%{version}.jar jdbc-stdext-3.0.jar
   ln -s %{_jvmdir}/%{jredir}/lib/rt.jar sasl-%{version}.jar
   for jar in *-%{version}.jar ; do
      if [ x%{version} != x%{javaver} ]; then
         ln -fs ${jar} $(echo $jar | sed "s|-%{version}.jar|-%{javaver}.jar|g")
      fi
      ln -fs ${jar} $(echo $jar | sed "s|-%{version}.jar|.jar|g")
   done
popd

# rest of the jre
cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
%if_enabled javaws
cp -a jre/javaws $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}
%endif
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/endorsed

# jce policy file handling
install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{jppname}/jce/vanilla
for file in local_policy.jar US_export_policy.jar; do
  mv $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/$file \
    $RPM_BUILD_ROOT%{_jvmprivdir}/%{jppname}/jce/vanilla
  # for ghosts
  touch $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/$file
done

# versionless symlinks
pushd $RPM_BUILD_ROOT%{_jvmdir}
ln -s %{jredir} %{jrelnk}
ln -s %{sdkdir} %{sdklnk}
popd

pushd $RPM_BUILD_ROOT%{_jvmjardir}
ln -s %{sdkdir} %{jrelnk}
ln -s %{sdkdir} %{sdklnk}
popd

%if_enabled moz_plugin
# ControlPanel freedesktop.org menu entry
%__subst 's|INSTALL_DIR/JRE_NAME_VERSION|%{_jvmdir}/%{jredir}|g' jre/plugin/desktop/sun_java.desktop
%__subst 's|Name=.*|Name=Java Plugin Control Panel \(%{name}\)|' jre/plugin/desktop/sun_java.desktop
%__subst 's|Icon=.*|Icon=%{name}.png|' jre/plugin/desktop/sun_java.desktop

install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
install -m 644 jre/plugin/desktop/sun_java.desktop  $RPM_BUILD_ROOT%{_datadir}/applications/%{name}-control-panel.desktop
install -m 644 jre/plugin/desktop/sun_java.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png

cp -a jre/plugin $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}

# javaws freedesktop.org menu entry
cat >> $RPM_BUILD_ROOT%{_datadir}/applications/%{name}-javaws.desktop << EOF
[Desktop Entry]
Name=Java Web Start (%{name})
Comment=Java Application Launcher
MimeType=application/x-java-jnlp-file
Exec=%{_jvmdir}/%{jredir}/javaws/javaws %%u
Icon=%{name}.png
Terminal=0
Type=Application
Categories=Application;Settings;
EOF
%endif

# man pages
install -d -m 755 $RPM_BUILD_ROOT%{_man1dir}
for manpage in man/man1/*; do
  install -m 644 -p $manpage $RPM_BUILD_ROOT%{_man1dir}/`basename $manpage .1.gz`%label.1.gz
done

# demo
# install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{jppname}
# cp -a demo $RPM_BUILD_ROOT%{_datadir}/%{jppname}
install -d -m755 %buildroot%{_jvmdir}/%{sdkdir}
cp -a demo %buildroot%{_jvmdir}/%{sdkdir}


#####################################
# ------- alt linux specific -------#
#####################################

mkinstall_java_fonts() {
local JRE_FONT_DIR=$1
local INSTALL_FONT_DIR=$2
%if_enabled fonts
install -d -m755 %buildroot$INSTALL_FONT_DIR
# move the fonts into a shared fonts directory
install -m 644 %buildroot%{_jvmdir}/%{jredir}/lib/$JRE_FONT_DIR/*.ttf %buildroot$INSTALL_FONT_DIR/
# symlink jre to common location (TODO: think of alternatives)
rm -rf %buildroot%{_jvmdir}/%{jredir}/lib/$JRE_FONT_DIR
ln -s `relative $INSTALL_FONT_DIR %{_jvmdir}/%{jredir}/lib/` %buildroot%{_jvmdir}/%{jredir}/lib/$JRE_FONT_DIR
install -d -m755 %buildroot%_sysconfdir/X11/fontpath.d/
FONTNAME=${INSTALL_FONT_DIR/\/usr\/share\/fonts\/ttf\//}
ln -s `relative $INSTALL_FONT_DIR %_sysconfdir/X11/fontpath.d/` %buildroot%_sysconfdir/X11/fontpath.d/ttf-$FONTNAME:pri=50
mkfontscale %buildroot$INSTALL_FONT_DIR
ln -s fonts.scale %buildroot$INSTALL_FONT_DIR/fonts.dir
%endif	# enabled fonts
}

mkinstall_java_fonts fonts %fontdir

# Install substitute rules for buildreq
mkdir -p %buildroot%_sysconfdir/buildreqs/packages/substitute.d
install -m644 j2se-buildreq-substitute \
    %buildroot%_sysconfdir/buildreqs/packages/substitute.d/%name
install -m644 j2se-devel-buildreq-substitute \
    %buildroot%_sysconfdir/buildreqs/packages/substitute.d/%name-devel

%__install -d %buildroot%_altdir

# J2SE alternative
%__cat <<EOF >%buildroot%_altdir/%altname-j2se
%{_bindir}/java	%{jrebindir}/java	%priority
%_man1dir/java.1.gz	%_man1dir/java%{label}.1.gz	%{jrebindir}/java
EOF
# binaries and manuals
for i in keytool policytool servertool \
orbd rmid rmiregistry tnameserv
do
  %__cat <<EOF >>%buildroot%_altdir/%altname-j2se
%_bindir/$i	%{_jvmdir}/%{jredir}/bin/$i	%{jrebindir}/java
%_man1dir/$i.1.gz	%_man1dir/${i}%{label}.1.gz	%{jrebindir}/java
EOF
done

# ----- JPackage compatibility alternatives ------
%__cat <<EOF >>%buildroot%_altdir/%altname-j2se
%{_jvmdir}/jre	%{_jvmdir}/%{jrelnk}	%{jrebindir}/java
%{_jvmjardir}/jre	%{_jvmjardir}/%{jrelnk}	%{jrebindir}/java
%{_jvmdir}/jre-%{origin}	%{_jvmdir}/%{jrelnk}	%{jrebindir}/java
%{_jvmjardir}/jre-%{origin}	%{_jvmjardir}/%{jrelnk}	%{jrebindir}/java
%{_jvmdir}/jre-%{javaver}	%{_jvmdir}/%{jrelnk}	%{jrebindir}/java
%{_jvmjardir}/jre-%{javaver}	%{_jvmjardir}/%{jrelnk}	%{jrebindir}/java
EOF
%if_enabled moz_plugin
%__cat <<EOF >>%buildroot%_altdir/%altname-j2se
%{_bindir}/ControlPanel	%{jrebindir}/ControlPanel	%{jrebindir}/java
EOF
%endif
# JPackage specific: alternatives for security policy
%__cat <<EOF >>%buildroot%_altdir/%altname-j2se
%{_jvmdir}/%{jrelnk}/lib/security/local_policy.jar	%{_jvmprivdir}/%{jppname}/jce/vanilla/local_policy.jar	%{priority}
%{_jvmdir}/%{jrelnk}/lib/security/US_export_policy.jar	%{_jvmprivdir}/%{jppname}/jce/vanilla/US_export_policy.jar	%{_jvmprivdir}/%{jppname}/jce/vanilla/local_policy.jar
EOF
# ----- end: JPackage compatibility alternatives ------


# Javac alternative
%__cat <<EOF >%buildroot%_altdir/%altname-javac
%_bindir/javac	%{_jvmdir}/%{sdkdir}/bin/javac	%priority
%_prefix/lib/jdk	%{_jvmdir}/%{sdkdir}	%{_jvmdir}/%{sdkdir}/bin/javac
%_man1dir/javac.1.gz	%_man1dir/javac%{label}.1.gz	%{_jvmdir}/%{sdkdir}/bin/javac
EOF

# binaries and manuals
for i in appletviewer extcheck idlj jar jarsigner javadoc javah javap jdb native2ascii rmic serialver
do
  %__cat <<EOF >>%buildroot%_altdir/%altname-javac
%_bindir/$i	%{_jvmdir}/%{sdkdir}/bin/$i	%{_jvmdir}/%{sdkdir}/bin/javac
%_man1dir/$i.1.gz	%_man1dir/${i}%{label}.1.gz	%{_jvmdir}/%{sdkdir}/bin/javac
EOF
done
# binaries w/o manuals
for i in HtmlConverter jmap
do
  %__cat <<EOF >>%buildroot%_altdir/%altname-javac
%_bindir/$i	%{_jvmdir}/%{sdkdir}/bin/$i	%{_jvmdir}/%{sdkdir}/bin/javac
EOF
done

# ----- JPackage compatibility alternatives ------
  %__cat <<EOF >>%buildroot%_altdir/%altname-javac
%_prefix/lib/j2se	%{_jvmdir}/%{sdkdir}	%{_jvmdir}/%{sdkdir}/bin/javac
%{_jvmdir}/java	%{_jvmdir}/%{sdklnk}	%{_jvmdir}/%{sdkdir}/bin/javac
%{_jvmjardir}/java	%{_jvmjardir}/%{sdklnk}	%{_jvmdir}/%{sdkdir}/bin/javac
%{_jvmdir}/java-%{origin}	%{_jvmdir}/%{sdklnk}	%{_jvmdir}/%{sdkdir}/bin/javac
%{_jvmjardir}/java-%{origin}	%{_jvmjardir}/%{sdklnk}	%{_jvmdir}/%{sdkdir}/bin/javac
%{_jvmdir}/java-%{javaver}	%{_jvmdir}/%{sdklnk}	%{_jvmdir}/%{sdkdir}/bin/javac
%{_jvmjardir}/java-%{javaver}	%{_jvmjardir}/%{sdklnk}	%{_jvmdir}/%{sdkdir}/bin/javac
EOF
# ----- end: JPackage compatibility alternatives ------

%if_enabled moz_plugin
# Mozilla plugin alternative
%__cat <<EOF >%buildroot%_altdir/%altname-mozilla
%browser_plugins_path/libjavaplugin_oji.so	%mozplugindir/libjavaplugin_oji.so	%priority
EOF
%endif	# enabled moz_plugin

%if_enabled javaws
# Java Web Start alternative
%__cat <<EOF >%buildroot%_altdir/%altname-javaws
%_bindir/javaws	%{_jvmdir}/%{jredir}/javaws/javaws	%{jrebindir}/java
%_man1dir/javaws.1.gz	%_man1dir/javaws%label.1.gz	%{jrebindir}/java
EOF
# ----- JPackage compatibility alternatives ------
%__cat <<EOF >>%buildroot%_altdir/%altname-javaws
%{_datadir}/javaws	%{_jvmdir}/%{jredir}/javaws/javaws	%{jrebindir}/java
EOF
# ----- end: JPackage compatibility alternatives ------
%endif	# enabled javaws

# Remove unpackaged files
%if_with gcc32_abi
%__rm -f %buildroot%{_jvmdir}/%{jredir}/lib/%libarch/*_gcc29.so
%__rm -rf %buildroot%{_jvmdir}/%{jredir}/plugin/%libarch/*-gcc29
%endif

%if_enabled moz_plugin
install -d -m 755 $RPM_BUILD_ROOT%{_niconsdir}
ln -s %{_datadir}/pixmaps/%{name}.png $RPM_BUILD_ROOT%{_niconsdir}/%{name}.png
%endif

# hack (see #11383) to enshure that all man pages will be compressed
for i in $RPM_BUILD_ROOT%_man1dir/*.1; do
    [ -f $i ] && gzip -9 $i
done

# HACK around find-requires
%define __find_requires    $RPM_BUILD_ROOT/.find-requires
cat > $RPM_BUILD_ROOT/.find-requires <<EOF
#!/bin/sh
(/usr/lib/rpm/find-requires | grep -v %{_jvmdir}/%{sdkdir}) || :
EOF
chmod 755 $RPM_BUILD_ROOT/.find-requires
# end HACK around find-requires

%post
# ----- JPackage stuff ------
if [ -d %{_jvmdir}/%{jrelnk}/lib/security ]; then
  # Need to remove the old jars in order to support upgrading, ugly :(
  # update-alternatives fails silently if the link targets exist as files.
  rm -f %{_jvmdir}/%{jrelnk}/lib/security/{local,US_export}_policy.jar
fi

# %ifnarch x86_64
# if [ -f %{_sysconfdir}/mime.types ]; then
#    %__subst 's|application/x-java-jnlp-file.*||g' %{_sysconfdir}/mailcap.bak 2>/dev/null
#    echo "type=application/x-java-jnlp-file; description=\"Java Web Start\"; exts=\"jnlp\"" >> %{_sysconfdir}/mailcap 2>/dev/null

#    %__subst 's|application/x-java-jnlp-file.*||g' %{_sysconfdir}/mime.types 2>/dev/null
#    echo "application/x-java-jnlp-file      jnlp" >> %{_sysconfdir}/mime.types 2>/dev/null
# fi
# %endif
# ----- JPackage stuff ------
%register_alternatives %altname-j2se


%pre
[ -L %{_jvmdir}/%{jredir}/lib/fonts ] || %__rm -rf %{_jvmdir}/%{jredir}/lib/fonts

%preun
%unregister_alternatives %altname-j2se

%post devel
%register_alternatives %altname-javac

%preun devel
%unregister_alternatives %altname-javac

%if_enabled moz_plugin
%post -n mozilla-plugin-%altname
if [ -d %browser_plugins_path ]; then
%register_alternatives %altname-mozilla
fi
%update_menus

%preun -n mozilla-plugin-%altname
%unregister_alternatives %altname-mozilla

%triggerpostun -n mozilla-plugin-%altname -- %altname-plugin-mozilla
if [ -d %browser_plugins_path ]; then
%register_alternatives %altname-mozilla
fi

%postun -n mozilla-plugin-%altname
%clean_menus
%endif	# enabled moz_plugin

%if_enabled javaws
%post javaws
%register_alternatives %altname-javaws
%update_menus

%preun javaws
%unregister_alternatives %altname-javaws

%postun javaws
%clean_menus
%endif # enabled javaws

%if_enabled fonts
%post -n fonts-ttf-%jppname
%_bindir/fc-cache %fontdir ||:

%triggerpostun -n fonts-ttf-%jppname -- j2se1.3-sun-fonts j2se1.4-sun-fonts j2se1.4-blackdown-fonts
# Recreate the cache removed by the font uninstall scripts
%_bindir/fc-cache %fontdir ||:

%postun -n fonts-ttf-%jppname
if [ "$1" = "0" ]; then
    %_bindir/fc-cache --system-only ||:
fi
%endif	# enabled fonts

%files
%doc jre/CHANGES jre/COPYRIGHT jre/LICENSE jre/README 
%doc jre/THIRDPARTYLICENSEREADME.txt
%doc README.alt
# jpackage links #
%{jvmjardir}
%{_jvmdir}/%{jrelnk}
%{_jvmjardir}/%{jrelnk}
# jpackage dirs
%{_jvmdir}/%{jredir}/lib/endorsed
%_altdir/%altname-j2se
%_sysconfdir/buildreqs/packages/substitute.d/%name
%dir %{_jvmdir}/%{sdkdir}
%dir %{_jvmdir}/%{jredir}
%dir %{_jvmdir}/%{jredir}/lib
%dir %{_jvmdir}/%{jredir}/lib/security
# .systemPrefs removed as they are not packaged in jpackage
#%{_jvmdir}/%{jredir}/.systemPrefs
%{_jvmdir}/%{jredir}/bin
%if_enabled javaws
%exclude %{_jvmdir}/%{jredir}/bin/javaws
%endif
%{_jvmdir}/%{jredir}/lib/%libarch
%exclude %{_jvmdir}/%{jredir}/lib/%libarch/libJdbcOdbc.so
%exclude %{_jvmdir}/%{jredir}/lib/%libarch/libjsoundalsa.so
%{_jvmdir}/%{jredir}/lib/*.jar
%{_jvmdir}/%{jredir}/lib/*.txt
%{_jvmdir}/%{jredir}/lib/applet
%{_jvmdir}/%{jredir}/lib/audio
#%{_jvmdir}/%{jredir}/lib/classlist
%{_jvmdir}/%{jredir}/lib/cmm
%{_jvmdir}/%{jredir}/lib/ext
%{_jvmdir}/%{jredir}/lib/fonts
%{_jvmdir}/%{jredir}/lib/im
%{_jvmdir}/%{jredir}/lib/images
%if_enabled moz_plugin
# common between plugin and javaws (TODO: desktop)
%{_datadir}/pixmaps/%{name}.png
%{_niconsdir}/%{name}.png
%{_jvmdir}/%{jredir}/lib/locale
%exclude %{_jvmdir}/%{jredir}/lib/locale/*/LC_MESSAGES/sunw_java_plugin.mo
%exclude %{_jvmdir}/%{jredir}/lib/%libarch/libjavaplugin_jni.so
#exclude %{_jvmdir}/%{jredir}/lib/%libarch/libjavaplugin_nscp*.so
%exclude %{_jvmdir}/%{jredir}/lib/plugin.jar
%exclude %{_jvmdir}/%{jredir}/plugin
%endif
%{_jvmdir}/%{jredir}/lib/zi
%config(noreplace) %{_jvmdir}/%{jredir}/lib/*.properties
%config(noreplace) %{_jvmdir}/%{jredir}/lib/*.properties.??
#%config(noreplace) %{_jvmdir}/%{jredir}/lib/fontconfig.bfc
#%config(noreplace) %{_jvmdir}/%{jredir}/lib/fontconfig.properties.src
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/cacerts
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
#%config(noreplace) %{_jvmdir}/%{jredir}/lib/management/*
#%{_jvmdir}/%{jredir}/lib/fontconfig.*.bfc
#%{_jvmdir}/%{jredir}/lib/fontconfig.*.properties.src
#%{_jvmdir}/%{jredir}/lib/security/*.jar
%{_jvmprivdir}/*
%ghost %{_jvmdir}/%{jredir}/lib/security/local_policy.jar
%ghost %{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar
%_man1dir/java%label.1*
%_man1dir/keytool%label.1*
%_man1dir/kinit%label.1*
%_man1dir/klist%label.1*
%_man1dir/ktab%label.1*
%_man1dir/orbd%label.1*
%_man1dir/policytool%label.1*
%_man1dir/rmid%label.1*
%_man1dir/rmiregistry%label.1*
%_man1dir/servertool%label.1*
%_man1dir/tnameserv%label.1*

%files devel
%doc *README* LICENSE COPYRIGHT
# jpackage short links #
%{_jvmdir}/%{sdklnk}
%{_jvmjardir}/%{sdklnk}
%_altdir/%altname-javac
%_sysconfdir/buildreqs/packages/substitute.d/%name-devel
%{_jvmdir}/%{sdkdir}/bin
%{_jvmdir}/%{sdkdir}/lib
%{_jvmdir}/%{sdkdir}/include
%_man1dir/appletviewer%label.1*
%_man1dir/extcheck%label.1*
%_man1dir/idlj%label.1*
%_man1dir/jar%label.1*
%_man1dir/jarsigner%label.1*
%_man1dir/javac%label.1*
%_man1dir/javadoc%label.1*
%_man1dir/javah%label.1*
%_man1dir/javap%label.1*
%_man1dir/jdb%label.1*
%_man1dir/native2ascii%label.1*
%_man1dir/rmic%label.1*
%_man1dir/serialver%label.1*

%files source
%{_jvmdir}/%{sdkdir}/src.zip

%files demo
#todo
#%dir %{_datadir}/%{jppname}
#%{_datadir}/%{jppname}/demo
%{_jvmdir}/%{sdkdir}/demo

%if_enabled moz_plugin
%files -n mozilla-plugin-%altname
%doc jre/ControlPanel.html
%_altdir/%altname-mozilla
%mozplugindir
%dir %{_jvmdir}/%{jredir}/plugin
%dir %{_jvmdir}/%{jredir}/plugin/%libarch
%{_jvmdir}/%{jredir}/lib/%libarch/libjavaplugin_jni.so
#%{_jvmdir}/%{jredir}/lib/%libarch/libjavaplugin_nscp*.so
%{_jvmdir}/%{jredir}/lib/locale/*/LC_MESSAGES/sunw_java_plugin.mo
%{_jvmdir}/%{jredir}/lib/plugin.jar
%{_jvmdir}/%{jredir}/plugin/desktop
%{_datadir}/applications/%{name}-control-panel.desktop
%endif

%files alsa
%{_jvmdir}/%{jredir}/lib/%libarch/libjsoundalsa.so

%files jdbc
%{_jvmdir}/%{jredir}/lib/%libarch/libJdbcOdbc.so

%if_enabled javaws
%files javaws
%doc README.alt
%_altdir/%altname-javaws
%dir %{_jvmdir}/%{jredir}/javaws
%{_jvmdir}/%{jredir}/bin/javaws
%{_jvmdir}/%{jredir}/javaws/javaws
%{_jvmdir}/%{jredir}/javaws/javawsbin
%{_jvmdir}/%{jredir}/javaws/*.jar
%{_jvmdir}/%{jredir}/javaws/*.gif
%doc %{_jvmdir}/%{jredir}/javaws/*.html
%{_jvmdir}/%{jredir}/javaws/resources
%config(noreplace) %{_jvmdir}/%{jredir}/javaws/javaws.policy
%config(noreplace) %{_jvmdir}/%{jredir}/javaws/cacerts
%_man1dir/javaws%label.1*
%{_datadir}/applications/%{name}-javaws.desktop
%endif

%if_enabled fonts
%files -n fonts-ttf-%jppname
%doc LICENSE COPYRIGHT
%doc fontdoc/README.alt
%_sysconfdir/X11/fontpath.d/*
%dir %fontdir
%config %fontdir/fonts.scale
%fontdir/fonts.dir
%fontdir/*.ttf
%endif	# enabled fonts


%changelog
* Thu Apr 24 2008 Igor Vlasenko <viy@altlinux.ru> 0:1.4.2.03-alt6
- javaws fixes

* Thu Apr 10 2008 Igor Vlasenko <viy@altlinux.ru> 0:1.4.2.03-alt5.qa1
- NMU (by repocop): the following fixes applied:
 * update_menus for java-1.4.2-blackdown-javaws
 * update_menus for mozilla-plugin-j2se1.4-blackdown

* Fri Sep 07 2007 Igor Vlasenko <viy@altlinux.ru> 0:1.4.2.03-alt5
- raised release for proper obsolete

* Sat Sep 01 2007 Igor Vlasenko <viy@altlinux.ru> 0:1.4.2.03-alt1
- renamed to java-version-origin
- cleaned up alternatives

* Thu Mar 29 2007 Igor Vlasenko <viy@altlinux.ru> 0:1.4.2.03-alt5
- added Provides: /usr/bin/javac to devel (at@ suggest)
- desktop fixes

* Sat Mar 17 2007 Igor Vlasenko <viy@altlinux.ru> 0:1.4.2.03-alt4.2
- add_findprov_lib_path %{_jvmdir}/%{jredir}/lib/%libarch/server
  for apps that links with libjvm.so 

* Sun Mar 11 2007 Igor Vlasenko <viy@altlinux.ru> 0:1.4.2.03-alt4.1
- fixed x86_64 build; 
- fixed unmets (added _findprov_lib_path)

* Sat Mar 10 2007 Igor Vlasenko <viy@altlinux.ru> 0:1.4.2.03-alt4
- chenged buildreq provides from j2se{,-devel} to java{,-devel}
- removed old profile scripts (they are handled in java-common)
- merged jpackage spec
- set priority 1423 (according to jpackage)
- added .desktop files
- added epoch: 0
- spawned alsa supbackage
- moved plugin-specific stuff to mozilla-plugin
- changed j2se layout in filesystem to /usr/lib/jvm;
  old locations are provided as symlinks 
  (to be compatible with both JPackage and old ALT).
- a bundle of 'Provides:' added to be JPackage compatible;
- added new JPackage compatible alternatives;
- removed support for ns4_plugin.
- removed profile symlinks from /etc/profile.d (see #9766)

* Sat Apr 08 2006 Mikhail Zabaluev <mhz@altlinux.ru> 1.4.2_03-alt3
- Fix library provides

* Tue Feb 07 2006 Mikhail Zabaluev <mhz@altlinux.ru> 1.4.2_03-alt2
- Sync with 1.5.0_06-alt2:
- Relaxed ELF symbols check
- Added soname-providing dependencies to BuildRequires
- Made sure JAVA_HOME is in /usr/lib independently of the architecture
- Moved demo and source back to %%java_home
- Adapt to the fonts package changes

* Tue Jan 17 2006 Mikhail Zabaluev <mhz@altlinux.ru> 1.4.2_03-alt1
- 1.4.2-03, fixing SA17748
- Sync with j2se1.4-sun-1.4.2_10-alt1:
- Provide the old name for mozilla-plugin-j2se1.4-blackdown

* Sun Oct 30 2005 Mikhail Zabaluev <mhz@altlinux.ru> 1.4.2_02-alt1
- 1.4.2-02
- Sync with j2se1.4-sun-1.4.2_09-alt1 and j2se1.5-sun-1.5.0_05-alt1:
- Added x86_64 architecture support
- Renamed subpackage %name-plugin-mozilla to mozilla-plugin-%name [bug 8114]
- Moved the mozilla plugin alternative symlink to browser-plugins-npapi
  [bug 7461]
- Use macros from browser-plugins-npapi-devel
- Added the bundled desktop files to the JRE package
- Fixed up javaws filelist and alternative

* Tue Jan 25 2005 Mikhail Zabaluev <mhz@altlinux.ru> 1.4.2_01-alt1
- Updated to the 1.4.2 upstream release
- Homogenized with the latest j2se1.4-sun package

* Sun Aug 29 2004 Mikhail Zabaluev <mhz@altlinux.ru> 1.4.1_01-alt5
- Move to even newer alternatives format
- Requires /proc

* Wed Jun 16 2004 Stanislav Ievlev <inger@altlinux.org> 1.4.1_01-alt4.1
- NMU: move to new alternatives scheme

* Sat Dec 20 2003 Mikhail Zabaluev <mhz@altlinux.ru> 1.4.1_01-alt4
- Added /usr/sbin/update-alternatives to install-time dependencies

* Wed Nov 12 2003 Mikhail Zabaluev <mhz@altlinux.ru> 1.4.1_01-alt3
- Obsoletes j2se1.4-blackdown-fonts (bug #3243)
- Corrected build directory
- Relaxed textrel check on ELF files

* Mon Oct 20 2003 Mikhail Zabaluev <mhz@altlinux.ru> 1.4.1_01-alt2
- Sync with the latest j2se1.4-sun
- Removed fonts package; j2se1.4-blackdown has got symlink
  to the fonts directory provided by j2se-sun-fonts
- Added locations of binary libraries to findprov lib path

* Tue Feb 18 2003 Mikhail Zabaluev <mhz@altlinux.ru> 1.4.1_01-alt1
- Ported from the j2se1.4-sun package