Hi.

Something went wrong. I could have noticed it earlier, but i did not
re-package with the corrected CURRENT version, because i did not have
the time. When i glanced through some cvs diffs i found that the CURRENT
version is different from mine. And that there are other problems. The
result was, that the "system" Java was used on some machines (which is a
good explanation for other problems).

This time i attach the whole .spec-file. Basically i added some checks
in the unpacking section, that should also catch the case when the
downloaded archive is corrupted. And then there was another place that
needed a check for Solaris 10.


   (mk)

-- 
Matthias Kurz; Fuldastr. 3; D-28199 Bremen; VOICE +49 421 53 600 47
  >> Im prämotorischen Cortex kann jeder ein Held sein. (bdw) <<
##
##  j2se14.spec -- OpenPKG RPM Specification
##  Copyright (c) 2000-2005 The OpenPKG Project <http://www.openpkg.org/>
##  Copyright (c) 2000-2005 Ralf S. Engelschall <[EMAIL PROTECTED]>
##  Copyright (c) 2000-2005 Cable & Wireless <http://www.cw.com/>
##
##  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_07
%define       V_filesys 1.4.2_07
%define       V_openpkg 1.4.2.07
%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:     The OpenPKG Project
Distribution: OpenPKG
Class:        EVAL
Group:        Language
License:      Commercial
Version:      %{V_openpkg}
Release:      20050315

#   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
    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__)&nbsp;"
    }

%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=%{V_filesys}
    case "%{l_platform -t}" in
        i?86-linux2.[2-6]* | i?86-freebsd[45]* )
            pkgfile="%{SOURCE j2sdk-%{V_sunjava}-linux-i586.bin}"
            pkgdir="j2sdk%{V_filesys}"
            ;;
        sun4u-sunos5.[6-9]* | sun4u-sunos5.10 )
            pkgfile="%{SOURCE j2sdk-%{V_sunjava}-solaris-sparc.sh}"
            suppfile="%{SOURCE j2sdk-%{V_sunjava}-solaris-sparcv9.sh}"
            pkgdir="j2sdk%{V_filesys}"
            ;;
        i?86-sunos5.[6-9]* | i?86-sunos5.10 )
            pkgfile="%{SOURCE j2sdk-%{V_sunjava}-solaris-i586.sh}"
            pkgdir="j2sdk%{V_filesys}"
            ;;
    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 \
        $RPM_BUILD_ROOT%{l_prefix}/share/j2se14

    #   unpack vendor distribution
    (   umask 022
        cd $RPM_BUILD_ROOT%{l_prefix}/libexec
        case "%{l_platform -t}" in
            i?86-linux2.[2-6]* | i?86-freebsd[45]* )
                echo "yes" | sh $pkgfile \
                    >$RPM_BUILD_ROOT%{l_prefix}/share/j2se14/COPYING.32
                ;;
            sun4u-sunos5.[6-9]* | sun4u-sunos5.10 )
                echo "yes" | sh $pkgfile \
                    >$RPM_BUILD_ROOT%{l_prefix}/share/j2se14/COPYING.32 \
                    &&
                echo "yes" | sh $suppfile \
                    >$RPM_BUILD_ROOT%{l_prefix}/share/j2se14/COPYING.64
                ;;
            i?86-sunos5.[6-9]* | i?86-sunos5.10 )
                echo "yes" | sh $pkgfile \
                    >$RPM_BUILD_ROOT%{l_prefix}/share/j2se14/COPYING.32
                ;;
            *) false
                ;;
        esac
        [ $? = 0 ] || { echo -e "\nUnpacking failed !\n"; exit 1; }
        mv $pkgdir 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 $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 $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

Reply via email to