Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37730910
en ru br
Репозитории ALT
5.1: 1.6.0.0-alt12_33.b16jpp5.M51.1
4.1: 1.6.0.0-alt0.M41.5
4.0: 1.6.0.0-alt0.M40.5
www.altlinux.org/Changes

Группа :: Разработка/Java
Пакет: java-1.6.0-openjdk

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Packager: Igor Vlasenko <viy at altlinux.ru>

Patch33: java-1.6.0-openjdk-alt-ldflag.patch
Patch34: java-1.6.0-openjdk-alt-as-needed1.patch
BuildRequires: gcc-c++ libstdc++-devel-static
BuildRequires(pre): browser-plugins-npapi-devel
# hack :(
# BuildRequires: chrpath
# todo: remove after as-needed fix
%set_verify_elf_method unresolved=relaxed

%def_enable javaws
%def_enable moz_plugin
%def_disable desktop
BuildRequires: /proc
BuildRequires: jpackage-1.6-compat
%define version 1.6.0.0
%define name java-1.6.0-openjdk
# If gcjbootstrap is 1 IcedTea is bootstrapped against
# java-1.6.0-sun-devel.  If gcjbootstrap is 0 IcedTea is built against
# java-1.6.0-openjdk-devel.
%define gcjbootstrap 0

# If runtests is 0 test suites will not be run.

%define runtests 0

%define icedteaver 1.2
%define icedteasnapshot %{nil}
%define openjdkver b09
%define openjdkdate 11_apr_2008

%define genurl http://cvs.fedoraproject.org/viewcvs/devel/java-1.6.0-openjdk/

%define accessmajorver 1.22
%define accessminorver 0
%define accessver %{accessmajorver}.%{accessminorver}
%define accessurl http://ftp.gnome.org/pub/GNOME/sources/java-access-bridge/

%define openjdkurlbase http://www.java.net/download/openjdk/jdk7/promoted/
%define openjdkurl %{openjdkurlbase}%{openjdkver}/
%define fedorazip  openjdk-6-src-%{openjdkver}-%{openjdkdate}-fedora.tar.gz

%define mauvedate 2008-03-11

%define multilib_arches ppc64 sparc64 x86_64

%define jit_arches %{ix86} x86_64

%ifarch %{ix86}
%define archbuild i586
%define archinstall i386
%endif
%ifarch x86_64
%define archbuild amd64
%define archinstall amd64
%endif
%ifnarch %{jit_arches}
%define archbuild %{_arch}
%define archinstall %{_arch}
%endif

# Reduce build time from 27 hours to 12 hours by only running test

# suites on JIT architectures.
%ifnarch %{jit_arches}
%define runtests 0
%endif

%define buildoutputdir openjdk/control/build/linux-%{archbuild}

%if %{gcjbootstrap}
%define icedteaopt %{nil}
%else
%define icedteaopt --with-openjdk
%endif

# Convert an absolute path to a relative path.  Each symbolic link is

# specified relative to the directory in which it is installed so that
# it will resolve properly within chrooted installations.
%define script 'use File::Spec; print File::Spec->abs2rel($ARGV[0], $ARGV[1])'
%define abs2rel %{__perl} -e %{script}

# Hard-code libdir on 64-bit architectures to make the 64-bit JDK

# simply be another alternative.
%ifarch %{multilib_arches}
# define syslibdir       %{_prefix}/lib64
# define _libdir         %{_prefix}/lib
%define archname        %{name}.%{_arch}
%define localpolicy     jce_%{javaver}_%{origin}_local_policy.%{_arch}
%define uspolicy        jce_%{javaver}_%{origin}_us_export_policy.%{_arch}
%define javaplugin      libjavaplugin.so.%{_arch}
%else
# define syslibdir       %{_libdir}
%define archname        %{name}
%define localpolicy     jce_%{javaver}_%{origin}_local_policy
%define uspolicy        jce_%{javaver}_%{origin}_us_export_policy
%define javaplugin      libjavaplugin.so
%endif

# Standard JPackage naming and versioning defines.

%define origin          openjdk
%define priority        16000
%define javaver         1.6.0
%define buildver        0

# Standard JPackage directories and symbolic links.

# Make 64-bit JDKs just another alternative on 64-bit architectures.
%ifarch %{multilib_arches}
%define sdklnk          java-%{javaver}-%{origin}.%{_arch}
%define jrelnk          jre-%{javaver}-%{origin}.%{_arch}
%define sdkdir          %{name}-%{version}.%{_arch}
%else
%define sdklnk          java-%{javaver}-%{origin}
%define jrelnk          jre-%{javaver}-%{origin}
%define sdkdir          %{name}-%{version}
%endif
%define jredir          %{sdkdir}/jre
%define sdkbindir       %{_jvmdir}/%{sdklnk}/bin
%define jrebindir       %{_jvmdir}/%{jrelnk}/bin
%ifarch %{multilib_arches}
%define jvmjardir       %{_jvmjardir}/%{name}-%{version}.%{_arch}
%else
%define jvmjardir       %{_jvmjardir}/%{name}-%{version}
%endif

# Prevent brp-java-repack-jars from being run.

%define __jar_repack 0

Name:    java-%{javaver}-%{origin}
Version: %{javaver}.%{buildver}
Release: alt0.M41.5
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons,
# and this change was brought into RHEL-4.  java-1.5.0-ibm packages
# also included the epoch in their virtual provides.  This created a
# situation where in-the-wild java-1.5.0-ibm packages provided "java =
# 1:1.5.0".  In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is
# interpreted as 0:1.6.0.  So the "java >= 1.6.0" requirement would be
# satisfied by the 1:1.5.0 packages.  Thus we need to set the epoch in
# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual
# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
Epoch: 0
Summary: OpenJDK Runtime Environment
Group:   Development/Java

License:  GPLv2 with exceptions
URL:      http://icedtea.classpath.org/
Source0:  %{url}download/source/icedtea6-%{icedteaver}%{icedteasnapshot}.tar.gz
Source1:  %{fedorazip}
Source2:  %{accessurl}%{accessmajorver}/java-access-bridge-%{accessver}.tar.gz
Source3:  %{genurl}generate-fedora-zip.sh
Source4:  README.src
Source5:  README.plugin
Source6:  mauve-%{mauvedate}.tar.gz
Source7:  mauve_tests
# FIXME: This patch needs to be fixed. optflags argument
# -mtune=generic is being ignored because it breaks several graphical
# applications.
Patch0:   java-1.6.0-openjdk-optflags.patch
Patch1:   java-1.6.0-openjdk-java-access-bridge-tck.patch


BuildRequires: libalsa-devel
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
BuildRequires: libungif-devel
BuildRequires: openmotif-devel
BuildRequires: libX11-devel
BuildRequires: libXi-devel
BuildRequires: libXp-devel
BuildRequires: libXt-devel
BuildRequires: libXtst-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: wget
BuildRequires: xalan-j2
BuildRequires: xerces-j2
BuildRequires: xorg-x11-proto-devel
BuildRequires: mercurial
BuildRequires: ant
BuildRequires: libXinerama-devel
%if %{gcjbootstrap}
BuildRequires: java-1.6.0-sun-devel
%else
BuildRequires: java-1.6.0-openjdk-devel
%endif
# Mauve build requirements.
BuildRequires: xorg-x11-xvfb
BuildRequires: fonts-type1-xorg
BuildRequires: fonts-bitmap-misc
BuildRequires: libfreetype-devel >= 2.3.0
BuildRequires: fontconfig
BuildRequires: eclipse-ecj
# Java Access Bridge for GNOME build requirements.
BuildRequires: libat-spi-devel
BuildRequires: gawk
BuildRequires: libbonobo-devel
BuildRequires: pkgconfig >= 0.9.0
BuildRequires: xorg-x11-utils
# gcjwebplugin build requirements.
BuildRequires: firefox-devel
BuildRequires: glib2-devel
BuildRequires: gtk2-devel
# Zero-assembler build requirement.
%ifnarch %{jit_arches}
BuildRequires: libffi-devel
%endif

Requires: libjpeg = 6b
# Require /etc/pki/java/cacerts.
Requires: ca-certificates
# Require jpackage-utils for ant.
Requires: jpackage-utils >= 1.7.3-1jpp.3
# Require zoneinfo data provided by tzdata-java subpackage.
Requires: tzdata-java
# Post requires alternatives to install tool alternatives.
Requires(post): alternatives >= 0:0.2.0-alt0.12
# Postun requires alternatives to uninstall tool alternatives.
Requires(postun): alternatives >= 0:0.2.0-alt0.12
# Post requires update-desktop-database to update desktop database
# for jnlp files.
Requires(post): %{_bindir}/update-desktop-database
# Postun requires update-desktop-database to update desktop database
# for jnlp files.
Requires(postun): %{_bindir}/update-desktop-database

# java-1.6.0-openjdk replaces java-1.7.0-icedtea.

#Provides: java-1.7.0-icedtea = 0:1.7.0.0-0.999
#Obsoletes: java-1.7.0-icedtea < 0:1.7.0.0-0.999

# Standard JPackage base provides.

Provides: jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
Provides: jre-%{origin} = %{epoch}:%{version}-%{release}
Provides: jre-%{javaver} = %{epoch}:%{version}-%{release}
Provides: java-%{javaver} = %{epoch}:%{version}-%{release}
Provides: jre = %{javaver}
Provides: java-%{origin} = %{epoch}:%{version}-%{release}
Provides: java = %{epoch}:%{javaver}
# Standard JPackage extensions provides.
Provides: jndi = %{epoch}:%{version}
Provides: jndi-ldap = %{epoch}:%{version}
Provides: jndi-cos = %{epoch}:%{version}
Provides: jndi-rmi = %{epoch}:%{version}
Provides: jndi-dns = %{epoch}:%{version}
Provides: jaas = %{epoch}:%{version}
Provides: jsse = %{epoch}:%{version}
Provides: jce = %{epoch}:%{version}
Provides: jdbc-stdext = 3.0
Provides: java-sasl = %{epoch}:%{version}
%define mozilla_java_plugin_so %{_jvmdir}/%{jrelnk}/lib/%{archinstall}/gcjwebplugin.so
%define altname %name
%define label -%{name}
%define javaws_ver      %{javaver}
Patch35: java-1.6.0-openjdk-alt-as-needed-gcjwebplugin-M40.patch

%description
The OpenJDK runtime environment.

%package devel
Summary: OpenJDK Development Environment
Group:   Development/Java

# Require base package.

Requires: %{name} = %{epoch}:%{version}-%{release}
# Post requires alternatives to install tool alternatives.
Requires(post): alternatives >= 0:0.2.0-alt0.12
# Postun requires alternatives to uninstall tool alternatives.
Requires(postun): alternatives >= 0:0.2.0-alt0.12

# java-1.6.0-openjdk-devel replaces java-1.7.0-icedtea-devel.

#Provides: java-1.7.0-icedtea-devel = 0:1.7.0.0-0.999
#Obsoletes: java-1.7.0-icedtea-devel < 0:1.7.0.0-0.999

# Standard JPackage devel provides.

Provides: java-sdk-%{javaver}-%{origin} = %{epoch}:%{version}
Provides: java-sdk-%{javaver} = %{epoch}:%{version}
Provides: java-sdk-%{origin} = %{epoch}:%{version}
Provides: java-sdk = %{epoch}:%{javaver}
Provides: java-%{javaver}-devel = %{epoch}:%{version}
Provides: java-devel-%{origin} = %{epoch}:%{version}
Provides: java-devel = %{epoch}:%{javaver}

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

%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

%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 ---

%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

%description devel
The OpenJDK development tools.

%package demo
Summary: OpenJDK Demos
Group:   Development/Java

Requires: %{name} = %{epoch}:%{version}-%{release}

# java-1.6.0-openjdk-demo replaces java-1.7.0-icedtea-demo.

#Provides: java-1.7.0-icedtea-demo = 0:1.7.0.0-0.999
#Obsoletes: java-1.7.0-icedtea-demo < 0:1.7.0.0-0.999

%description demo
The OpenJDK demos.

%package src
Summary: OpenJDK Source Bundle
Group:   Development/Java

Requires: %{name} = %{epoch}:%{version}-%{release}

# java-1.6.0-openjdk-src replaces java-1.7.0-icedtea-src.

#Provides: java-1.7.0-icedtea-src = 0:1.7.0.0-0.999
#Obsoletes: java-1.7.0-icedtea-src < 0:1.7.0.0-0.999

%description src
The OpenJDK source bundle.

%package javadoc
Summary: OpenJDK API Documentation
Group:   Development/Java

# Post requires alternatives to install javadoc alternative.

Requires(post): alternatives >= 0:0.2.0-alt0.12
# Postun requires alternatives to uninstall javadoc alternative.
Requires(postun): alternatives >= 0:0.2.0-alt0.12

# java-1.6.0-openjdk-javadoc replaces java-1.7.0-icedtea-javadoc.

#Provides: java-1.7.0-icedtea-javadoc = 0:1.7.0.0-0.999
#Obsoletes: java-1.7.0-icedtea-javadoc < 0:1.7.0.0-0.999

# Standard JPackage javadoc provides.

Provides: java-javadoc = %{epoch}:%{version}-%{release}
Provides: java-%{javaver}-javadoc = %{epoch}:%{version}-%{release}

%description javadoc
The OpenJDK API documentation.

%package -n mozilla-plugin-%name
Summary: OpenJDK Web Browser Plugin
Group:   Development/Java

Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: browser-plugins-npapi
# Post requires alternatives to install plugin alternative.
Requires(post): alternatives >= 0:0.2.0-alt0.12
# Postun requires alternatives to uninstall plugin alternative.
Requires(postun): alternatives >= 0:0.2.0-alt0.12

# java-1.6.0-openjdk-plugin replaces java-1.7.0-icedtea-plugin.

#Provides: java-1.7.0-icedtea-plugin = 0:1.7.0.0-0.999
#Obsoletes: java-1.7.0-icedtea-plugin < 0:1.7.0.0-0.999

# Standard JPackage plugin provides.

Provides: java-plugin = %{javaver}
Provides: java-%{javaver}-plugin = %{epoch}:%{version}

%description -n mozilla-plugin-%name
The OpenJDK web browser plugin.

%prep
%setup -q -n icedtea6-%{icedteaver}
%setup -q -n icedtea6-%{icedteaver} -T -D -a 6
%setup -q -n icedtea6-%{icedteaver} -T -D -a 2
%patch0
cp %{SOURCE4} .
cp %{SOURCE5} .
cp %{SOURCE7} .
%patch35 -p0

%build
unset JAVA_HOME
#autoreconf
# Build IcedTea and OpenJDK.
./configure --with-openjdk-home=/usr/lib/jvm/java %{icedteaopt} --with-openjdk-src-zip=%{SOURCE1}
%if %{gcjbootstrap}
make MEMORY_LIMIT=-J-Xmx512m stamps/patch-ecj.stamp
%endif
make MEMORY_LIMIT=-J-Xmx512m stamps/patch.stamp
patch -p1 < %{PATCH33}
patch -p1 < %{PATCH34}
make MEMORY_LIMIT=-J-Xmx512m

export JAVA_HOME=$(pwd)/%{buildoutputdir}/j2sdk-image

# Build Java Access Bridge for GNOME.

pushd java-access-bridge-%{accessver}
 patch -l -p1 < %{PATCH1}
 OLD_PATH=$PATH
 export PATH=$JAVA_HOME/bin:$OLD_PATH
 ./configure --with-openjdk-home=/usr/lib/jvm/java
make MEMORY_LIMIT=-J-Xmx512m
 export PATH=$OLD_PATH
 cp -a bridge/accessibility.properties $JAVA_HOME/jre/lib
 cp -a gnome-java-bridge.jar $JAVA_HOME/jre/lib/ext
popd

%if %{runtests}
# Run jtreg test suite.
{
 echo ====================JTREG TESTING========================
 export DISPLAY=:20
 Xvfb :20 -screen 0 1x1x24 -ac&
 echo $! > Xvfb.pid
make MEMORY_LIMIT=-J-Xmx512m jtregcheck -k | tee jtreg_output
 kill -9 `cat Xvfb.pid` || :
 unset DISPLAY
 rm -f Xvfb.pid
 echo ====================JTREG TESTING END====================
} || :

# Run Mauve test suite.

{
 pushd mauve-%{mauvedate}
   ./configure --with-openjdk-home=/usr/lib/jvm/java
make MEMORY_LIMIT=-J-Xmx512m
   echo ====================MAUVE TESTING========================
   export DISPLAY=:20
   Xvfb :20 -screen 0 1x1x24 -ac&
   echo $! > Xvfb.pid
   $JAVA_HOME/bin/java Harness -vm $JAVA_HOME/bin/java \
     -file %{SOURCE7} -timeout 30000 2>&1 | tee mauve_output
   kill -9 `cat Xvfb.pid` || :
   unset DISPLAY
   rm -f Xvfb.pid
   echo ====================MAUVE TESTING END====================
 popd
} || :
%endif

%install
unset JAVA_HOME

pushd %{buildoutputdir}/j2sdk-image

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

if /bin/false; then
 # Install cacerts symlink.
 rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/cacerts
 pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security
   RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \
     %{_jvmdir}/%{jredir}/lib/security)
   ln -sf $RELATIVE/cacerts .
 popd

fi
 # 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)-%{name}.1
 done

 # Install demos and samples.
 cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}
 mkdir -p sample/rmi
 #mv bin/java-rmi.cgi sample/rmi
 cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}

popd

# Install Javadoc documentation.

install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{name}

# Install icons and menu entries.

for s in 16 24 32 48 ; do
 install -D -p -m 644 \
   openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
   $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java.png
done

# Install desktop files.

install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
cp javaws.png $RPM_BUILD_ROOT%{_datadir}/pixmaps
install -D -m644 javaws.desktop $RPM_BUILD_ROOT%{_datadir}/applications/javaws.desktop
#desktop-file-install \
 #--dir $RPM_BUILD_ROOT%{_datadir}/applications javaws.desktop
for e in jconsole policytool ; do
install -D -m644 $e.desktop $RPM_BUILD_ROOT%{_datadir}/applications/$e.desktop
   #desktop-file-install --vendor=fedora --mode=644 \
       #--dir $RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
done

# 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

# FIXME: remove SONAME entries from demo DSOs.  See

# https://bugzilla.redhat.com/show_bug.cgi?id=436497

# 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
install -d $RPM_BUILD_ROOT/%_altdir; cat >$RPM_BUILD_ROOT/%_altdir/javadocdir_%{name}-javadoc<<EOF
%{_javadocdir}/java %{_javadocdir}/%{name}/api %{priority}
EOF

%__subst 's,^Categories=.*,Categories=Settings;Java;X-ALTLinux-Java;X-ALTLinux-Java-%javaver-%{origin};,' %buildroot/usr/share/applications/policytool.desktop

# HACK around find-requires

%define __find_requires    $RPM_BUILD_ROOT/.find-requires
cat > $RPM_BUILD_ROOT/.find-requires <<EOF
(/usr/lib/rpm/find-requires | grep -v %{_jvmdir}/%{sdkdir} | sed -e s,^/usr/lib64/lib,lib, | sed -e s,^/usr/lib/lib,lib,) || :
EOF
chmod 755 $RPM_BUILD_ROOT/.find-requires
# end HACK around find-requires

##################################################

# --- alt linux specific, shared with openjdk ---#
##################################################

install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/applications
if [ -e $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/bin/jvisualvm ]; then
 cat >> $RPM_BUILD_ROOT%{_datadir}/applications/%{name}-jvisualvm.desktop << EOF
[Desktop Entry]
Name=Java VisualVM (%{name})
Comment=Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool
Exec=jvisualvm
Icon=%{name}
Terminal=false
Type=Application
Categories=Development;Profiling;Java;X-ALTLinux-Java;X-ALTLinux-Java-%javaver-%{origin};
EOF
fi

%if_enabled moz_plugin
# ControlPanel freedesktop.org menu entry
cat >> $RPM_BUILD_ROOT%{_datadir}/applications/%{name}-control-panel.desktop << EOF
[Desktop Entry]
Name=Java Plugin Control Panel (%{name})
Comment=Java Control Panel
Exec=jcontrol
Icon=%{name}
Terminal=false
Type=Application
Categories=Settings;Java;X-ALTLinux-Java;X-ALTLinux-Java-%javaver-%{origin};
EOF

# 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}/bin/javaws %%u
Icon=%{name}
Terminal=false
Type=Application
Categories=Settings;Java;X-ALTLinux-Java;X-ALTLinux-Java-%javaver-%{origin};
EOF
%endif

# Install substitute rules for buildreq

echo java >j2se-buildreq-substitute
echo java-devel >j2se-devel-buildreq-substitute
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-java
%{_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 pack200 unpack200 \
orbd rmid rmiregistry tnameserv
do
 %__cat <<EOF >>%buildroot%_altdir/%altname-java
%_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-java
%{_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-java
%{_bindir}/ControlPanel %{jrebindir}/ControlPanel %{jrebindir}/java
%{_bindir}/jcontrol %{jrebindir}/jcontrol %{jrebindir}/java
EOF
%endif
# JPackage specific: alternatives for security policy
%__cat <<EOF >>%buildroot%_altdir/%altname-java
%{_jvmdir}/%{jrelnk}/lib/security/local_policy.jar %{_jvmprivdir}/%{name}/jce/vanilla/local_policy.jar %{priority}
%{_jvmdir}/%{jrelnk}/lib/security/US_export_policy.jar %{_jvmprivdir}/%{name}/jce/vanilla/US_export_policy.jar %{_jvmprivdir}/%{name}/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 apt jconsole jinfo jmap jps jsadebugd jstack jstat jstatd \
jhat jrunscript jvisualvm schemagen wsgen wsimport xjc
do
 if [ -e $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/bin/$i ]; then
 %__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
 fi
done
# binaries w/o manuals
for i in HtmlConverter
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/%name-mozilla
%browser_plugins_path/libjavaplugin_oji.so %mozilla_java_plugin_so %priority
EOF
%endif # enabled moz_plugin

%if_enabled javaws
# Java Web Start alternative
%__cat <<EOF >%buildroot%_altdir/%altname-javaws
%_bindir/javaws %{jrebindir}/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 %{jrebindir}/javaws %{jrebindir}/java
EOF
# ----- end: JPackage compatibility alternatives ------
%endif # enabled javaws

# 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

%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-java

# though it is useless for openjdk, it is harmless

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

%preun
%unregister_alternatives %altname-java

%post devel
%register_alternatives %altname-javac
%update_menus

%preun devel
%unregister_alternatives %altname-javac

%postun devel
%clean_menus

%if_enabled desktop
%post -n java-%{origin}-desktop
%update_mimedb
%update_desktopdb

%postun -n java-%{origin}-desktop
%clean_mimedb
%clean_desktopdb
%endif

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

%preun -n mozilla-plugin-%name
%unregister_alternatives %name-mozilla

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

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

%preun javaws
%unregister_alternatives %altname-javaws

%postun javaws
%clean_menus
%clean_desktopdb
%endif # enabled javaws

##################################################

# - END alt linux specific, shared with openjdk -#
##################################################


%post javadoc
%register_alternatives javadocdir_%{name}-javadoc

exit 0

%postun javadoc
if [ $1 -eq 0 ]
then
 %unregister_alternatives javadocdir_%{name}-javadoc
fi

exit 0

%files -f %{name}.files
%_altdir/%altname-java
%_sysconfdir/buildreqs/packages/substitute.d/%name
%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
# FIXME: The TRADEMARK file should be in j2sdk-image.
%doc openjdk/TRADEMARK
%doc AUTHORS
%doc COPYING
%doc ChangeLog
%doc NEWS
%doc README
%dir %{_jvmdir}/%{sdkdir}
%{_jvmdir}/%{jrelnk}
%{_jvmjardir}/%{jrelnk}
%{_jvmprivdir}/*
%{jvmjardir}
%dir %{_jvmdir}/%{jredir}/lib/security
%{_jvmdir}/%{jredir}/lib/security/cacerts
# FIXME: These should be replaced by symlinks into /etc.
%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
%{_datadir}/applications/*policytool.desktop
%{_datadir}/icons/hicolor/*x*/apps/java.png
%{_mandir}/man1/java-%{name}.1*
%{_mandir}/man1/keytool-%{name}.1*
%{_mandir}/man1/orbd-%{name}.1*
%{_mandir}/man1/pack200-%{name}.1*
%{_mandir}/man1/policytool-%{name}.1*
%{_mandir}/man1/rmid-%{name}.1*
%{_mandir}/man1/rmiregistry-%{name}.1*
%{_mandir}/man1/servertool-%{name}.1*
%{_mandir}/man1/tnameserv-%{name}.1*
%{_mandir}/man1/unpack200-%{name}.1*
%{_datadir}/pixmaps/javaws.png
%{_datadir}/applications/javaws.desktop

%files devel
%_altdir/%altname-javac
%_sysconfdir/buildreqs/packages/substitute.d/%name-devel
%doc %{buildoutputdir}/j2sdk-image/ASSEMBLY_EXCEPTION
%doc %{buildoutputdir}/j2sdk-image/LICENSE
%doc %{buildoutputdir}/j2sdk-image/README.html
%doc %{buildoutputdir}/j2sdk-image/THIRD_PARTY_README
# FIXME: The TRADEMARK file should be in j2sdk-image.
%doc openjdk/TRADEMARK
%dir %{_jvmdir}/%{sdkdir}/bin
%dir %{_jvmdir}/%{sdkdir}/include
%dir %{_jvmdir}/%{sdkdir}/lib
%{_jvmdir}/%{sdkdir}/bin/*
%{_jvmdir}/%{sdkdir}/include/*
%{_jvmdir}/%{sdkdir}/lib/*
%{_jvmdir}/%{sdklnk}
%{_jvmjardir}/%{sdklnk}
%{_datadir}/applications/*jconsole.desktop
%{_mandir}/man1/appletviewer-%{name}.1*
%{_mandir}/man1/apt-%{name}.1*
%{_mandir}/man1/extcheck-%{name}.1*
%{_mandir}/man1/idlj-%{name}.1*
%{_mandir}/man1/jar-%{name}.1*
%{_mandir}/man1/jarsigner-%{name}.1*
%{_mandir}/man1/javac-%{name}.1*
%{_mandir}/man1/javadoc-%{name}.1*
%{_mandir}/man1/javah-%{name}.1*
%{_mandir}/man1/javap-%{name}.1*
%{_mandir}/man1/jconsole-%{name}.1*
%{_mandir}/man1/jdb-%{name}.1*
%{_mandir}/man1/jhat-%{name}.1*
%{_mandir}/man1/jinfo-%{name}.1*
%{_mandir}/man1/jmap-%{name}.1*
%{_mandir}/man1/jps-%{name}.1*
%{_mandir}/man1/jrunscript-%{name}.1*
%{_mandir}/man1/jsadebugd-%{name}.1*
%{_mandir}/man1/jstack-%{name}.1*
%{_mandir}/man1/jstat-%{name}.1*
%{_mandir}/man1/jstatd-%{name}.1*
%{_mandir}/man1/native2ascii-%{name}.1*
%{_mandir}/man1/rmic-%{name}.1*
%{_mandir}/man1/schemagen-%{name}.1*
%{_mandir}/man1/serialver-%{name}.1*
%{_mandir}/man1/wsgen-%{name}.1*
%{_mandir}/man1/wsimport-%{name}.1*
%{_mandir}/man1/xjc-%{name}.1*

%files demo -f %{name}-demo.files

%files src
%doc README.src
%{_jvmdir}/%{sdkdir}/src.zip
%if %{runtests}
# FIXME: put these in a separate testresults subpackage.
%doc mauve_tests
%doc mauve-%{mauvedate}/mauve_output
%doc jtreg_output
%endif

%files javadoc
%_altdir/javadocdir_%{name}-javadoc
%doc %{_javadocdir}/%{name}

%files -n mozilla-plugin-%name
%_altdir/%altname-mozilla
%{_datadir}/applications/%{name}-control-panel.desktop
%doc README.plugin
%{_jvmdir}/%{jredir}/lib/%{archinstall}/gcjwebplugin.so

%files javaws
%_altdir/%altname-javaws
%{_datadir}/applications/%{name}-javaws.desktop


%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin