##
## j2se14.spec -- OpenPKG RPM Package Specification
## Copyright (c) 2000-2006 OpenPKG Foundation e.V.
## Copyright (c) 2000-2006 Ralf S. Engelschall
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## 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.
##
# package versions
%define V_sunjava 1_4_2_11
%define V_filesys 1.4.2_11
%define V_openpkg 1.4.2.11
%define V_sunsupp 1_4_2
# package information
Name: j2se14
Summary: Java 2 Platform, Standard Edition (J2SE) 1.4
URL: http://java.sun.com/j2se/
Vendor: Sun Microsystems, Inc.
Packager: OpenPKG
Distribution: OpenPKG
Class: EVAL
Group: Language
License: Commercial
Version: %{V_openpkg}
Release: 20060314
# package options
%option with_demo no
%option with_docs no
%option with_jce no
# list of sources
Source0: http://java.sun.com/j2se/::/j2sdk-%{V_sunjava}-linux-i586.bin
Source1: http://java.sun.com/j2se/::/j2sdk-%{V_sunjava}-solaris-sparc.sh
Source2: http://java.sun.com/j2se/::/j2sdk-%{V_sunjava}-solaris-sparcv9.sh
Source3: http://java.sun.com/j2se/::/j2sdk-%{V_sunjava}-solaris-i586.sh
Source4: http://java.sun.com/j2se/::/j2sdk-%{V_sunsupp}-doc.zip
Source5: http://java.sun.com/j2se/::/jce_policy-%{V_sunsupp}.zip
Source6: rc.j2se14
%NoSource 0
%NoSource 1
%NoSource 2
%NoSource 3
%NoSource 4
%NoSource 5
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20040130
PreReq: OpenPKG, openpkg >= 20040130
AutoReq: no
AutoReqProv: no
Provides: JDK, JRE
Conflicts: j2se
%description
This is the Sun Java 2 Platform, Standard Edition (J2SE) 1.4.2.
It contains the Java Development Kit (JDK) and the Java Runtime
Environment (JRE). The premier solution for rapidly developing
and deploying mission-critical, enterprise applications, J2SE
provides the essential compiler, tools, runtimes, and APIs for
writing, deploying, and running applets and applications in the Java
programming language.
%track
prog j2se14 = {
version = %{V_filesys}
url = http://java.sun.com/j2se/
regex = /j2se/(1\.4(\.\d+)+)/index.jsp
url = http://java.sun.com/j2se/__NEWVER__/download.html
regex = "J2SE v (__VER__) "
}
%prep
%setup -q -c j2se14 -T
%build
%install
rm -rf $RPM_BUILD_ROOT
# select vendor source
pkgfile=""
suppfile=""
docsfile="%{SOURCE j2sdk-%{V_sunsupp}-doc.zip}"
cryptfile="%{SOURCE jce_policy-%{V_sunsupp}.zip}"
pkgdir="j2sdk%{V_filesys}"
case "%{l_platform -t}" in
i?86-linux2.[2-6]* | i?86-freebsd[45]* )
pkgfile="%{SOURCE j2sdk-%{V_sunjava}-linux-i586.bin}"
;;
sun4u-sunos5.[6-9]* | sun4u-sunos5.10 )
pkgfile="%{SOURCE j2sdk-%{V_sunjava}-solaris-sparc.sh}"
suppfile="%{SOURCE j2sdk-%{V_sunjava}-solaris-sparcv9.sh}"
;;
i?86-sunos5.[6-9]* | i?86-sunos5.10 )
pkgfile="%{SOURCE j2sdk-%{V_sunjava}-solaris-i586.sh}"
;;
esac
if [ ".$pkgfile" = . ]; then
echo "Sorry, unsupported architecture '%{l_platform -t}'" 1>&2
exit 1
fi
# create installation tree
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/bin \
$RPM_BUILD_ROOT%{l_prefix}/cgi \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
$RPM_BUILD_ROOT%{l_prefix}/libexec \
$RPM_BUILD_ROOT%{l_prefix}/man/man1
# unpack vendor distribution
( umask 022
cd $RPM_BUILD_ROOT%{l_prefix}/libexec
HOME=$RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14
case "%{l_platform -t}" in
i?86-linux2.[2-6]* | i?86-freebsd[45]* )
echo "yes" | sh $pkgfile >COPYING.32
;;
sun4u-sunos5.[6-9]* | sun4u-sunos5.10 )
echo "yes" | sh $pkgfile >COPYING.32 && \
echo "yes" | sh $suppfile >COPYING.64
;;
i?86-sunos5.[6-9]* | i?86-sunos5.10 )
echo "yes" | sh $pkgfile >COPYING.32
;;
* ) false
;;
esac
if [ $? != 0 ]; then
echo "ERROR: unpacking failed" 1>&2
exit 1
fi
mv $pkgdir j2se14
mv COPYING.* j2se14/
) || exit $?
# fix vendor distribution
( cd $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/bin
find . -type f -print | xargs chmod u+w
cd $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/jre/bin
find . -type f -print | xargs chmod u+w
case "%{l_platform -t}" in
sun4u-sunos5.[6-9]* | sun4u-sunos5.10 )
cd $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/bin/sparcv9
find . -type f -print | xargs chmod u+w
cd $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/jre/bin/sparcv9
find . -type f -print | xargs chmod u+w
;;
esac
) || exit $?
# optionally brand ELF binaries (FreeBSD only)
case "%{l_platform -t}" in
i?86-freebsd[45]* )
brandelf -t Linux \
`find $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/bin/ -type f -print` \
>/dev/null 2>&1 || true
brandelf -t Linux \
`find $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/jre/bin/ -type f -print` \
>/dev/null 2>&1 || true
;;
esac
# move man pages to a canonical location
if [ -d $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/man/man1 ]; then
mv $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/man/man1/* \
$RPM_BUILD_ROOT%{l_prefix}/man/man1/
elif [ -d $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/man/sman1 ]; then
mv $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/man/sman1/* \
$RPM_BUILD_ROOT%{l_prefix}/man/man1/
fi
rm -rf $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/man 2>/dev/null || true
# remove man pages conflicting with Kerberos
rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/kinit.1
rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/klist.1
rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/ktab.1
# remove demos if unwanted
%if "%{with_demo}" == "no"
rm -rf $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/demo 2>/dev/null || true
%endif
# unpack docs if wanted
%if "%{with_docs}" == "yes"
unzip -q $docsfile
mv docs $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/
%endif
# install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy
# under confirmation of the US Export Administration Regulations (EAR)
%if "%{with_jce}" == "yes"
unzip -q $cryptfile
cp jce/COPYRIGHT.html $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/JCE_COPYRIGHT.html
cp jce/README.txt $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/JCE_README.txt
cp -f jce/US_export_policy.jar $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/jre/lib/security/
cp -f jce/local_policy.jar $RPM_BUILD_ROOT%{l_prefix}/libexec/j2se14/jre/lib/security/
%endif
# link developer binaries
( cd $RPM_BUILD_ROOT%{l_prefix}/bin
for bin in HtmlConverter appletviewer extcheck idlj jar jarsigner \
java javac javadoc javah javap jdb keytool native2ascii orbd \
policytool rmic rmid rmiregistry serialver servertool tnameserv; do
ln -s ../libexec/j2se14/bin/$bin .
done
) || exit $?
( cd $RPM_BUILD_ROOT%{l_prefix}/cgi
ln -s ../libexec/j2se14/bin/java-rmi.cgi java-rmi.cgi
) || exit $?
# install run-command script
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE rc.j2se14} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT